Archiv verlassen und diese Seite im Standarddesign anzeigen : Framebuffer auslesen
Hallo,
gibt es eine Möglichkeit den Framebuffer in Windows XP auszulesen? Programmiesprache ist egal. Ich stoß immer nur auf Linux Lösungen.
Gruß Hacker
Anscheinend geht das über die GDI in der WinAPI. Hat da schon einer Erfahrung damit?
NumberFive
08.12.2007, 08:27
Welche Framebuffer willst du lesen ?
Ist dein Thema Video ?
Gruß
mit GetDC(NULL) ein handle besorgen, mit CreateBitmap() ein Pufferbild erzeugen, und mit BitBlt() rüberkopieren.
dann hast du aber im grunde nur einen screenshot deines desktops. wenn ein programm directDraw verwendet, oder openGL, sind eher diese libraries ein ansatzpunkt.
direkt aus dem grafikram zu lesen ist (vermute ich) schwieriger, weil windows die hardware verwaltet, und dich da so einfach nicht ranlässt.
gruesse
EDIT: es ist aber nicht unmöglich. es gibt programme, die zB. bei spielen im hintergrund mitlaufen können, und als framegrabber ständig den bildschirminhalt sichern, um daraus ein video zu machen.
Ich hab da ein VC - Project, in dem ich von der Kamera oder aus einer AVI-File mit den Video-daten herumwurstle.
An sich steht da alles drin, was du dazu brauchst.
Natürlich nicht sehr komfortabel, logo, is'n nur ein Prototype.
(da müßtest du schon mitdenken, um damit was anzufangen)
Würde dir sowas helfen ?
hi PicNick,
ich bin zwar gar nicht gefragt worden, aber mich würde das projekt schon interessieren. ich hatte hier schon mal code, um einen webcamstream zu öffnen, aber den finde ich nicht mehr -.-
also wenn es nichts ausmacht würde ich gern mal nen blick auf deinen code werfen.
gruesse
(Als Attachment hat's nicht geklappt)
http://www.oldformation.at/electronic/download/down.htm
Versuch mal, ob es klappt.
prima, hat funktioniert, danke! ich konnte nicht widerstehen und hab mir den hex disassembler auch mal runtergeladen. du scheinst dir da ja einiges an arbeit gemacht zu haben. sobald ich dazukomme (kann paar tagedauern), guck ich mir den code mal durch.
gruesse
...guck ich mir den code mal durch.
Fein, und laß deine Mietze schön grüssen
Hallo Hacker,
in der MSDN lib ist das alles schön dokumentiert.
Du schreibst dir einfach eine callback function und meldest sie mit capSetCallbackOnFrame an.
Deine callback function erhält dann immer einen pointer auf eine videohdr struktur und diese enthält einen pointer auf den framebuffer. Dort bedienst du dich dann nach Herzenslust.
grüsse,
vohopri
NumberFive
29.12.2007, 08:24
Aufpassen nicht alle Camera Treiber werden in der VFW Schnittstelle an gezeigt bzw. können diese. Das Interface ist Uralt.
Weiß gar nicht ob es das unter Vista überhaupt noch gibt.
http://msdn2.microsoft.com/en-us/library/ms707869(VS.85).aspx
Gruß
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.