Screenshot

Freak2k

Erfahrenes Mitglied
Hallo,

ich wollte fragen, ob eventuell irgendwer so nett sein könnte und mir eine funktion schreibt,
die einen Screenshot des ausgewählten Bereichs (X, Y, Breite, Höhe) des Monitors machen kann und das entstandene Bild als Jpeg in einem Byte Array zurückgibt?

nach Möglichkeit soll in der Form
void createScreenCapture(int x, int y, int width, int height, byte[] result) (result enthält das Bild)
oder
byte[] createScreenCapture(int x, int y, int width, int height)

wäre sehr dankbar dafür.
 
Wenn ich nicht irre, gibt es in der MSDN ein Beispiel wie man den Screen captured. Mit einigen Modifikationen ist es möglich das auch auf bestimmt Bereiche oder sogar auch Hwnd's zu trimmen. Das ganze liegt dann in einem Array als Bitmap, müsste man dann noch in Jpeg formatieren. Habe noch nicht versucht das im Speicher zu machn. Hoffe die Hinweise helfen, wenn an einigen Stellen im MSDN Code nicht weiter kommst, frag hier wieder nach.

Der folge Link sollte dir als Anfangspunkt reichen.

MSDN Link

(Ich habe das ganze in VC++ 6.0 umgesetzt, ka obs in anderen geht)
 
Den Screenshot an sich krieg ich schon hin...
Das problem ist, dass ich die Image (liegt als HBITMAP) daten als "echtes" byte array brauche, durch das ich durchlaufen kann...
Das Format des Images ist dabei erstmal nebensaechlich.
(ich kann nicht wirklich viel C++.. die daten sollen an eine java application uebergeben werden)
 
Zuletzt bearbeitet:
Hallo,

mittels GetDIBits kann man die Rohdaten eines Bitmaps in eine beliebige Speicherstelle schreiben.

Wäre es denn nicht möglich, den Screenshot direkt mit Java zu erstellen? Von Javaseite aus wäre das nämlich kein Problem.

Grüße,
Matthias
 
Hm, also ich bin jetzte nich so beschlagen in Java, aber da sollte das eigentlich auch möglich sein. Warum denn den Umweg über C? Was genau soll denn gemacht werden?

Willst das Bitmap speichern und dann in Java laden?


MfG .x0r
 
Nein, es geht einfach um performance gruende...
Es wird nicht gespeichert, sondern direkt an das aufrufende Java programm uebergeben...

Hab es soweit auch hinbekommen....nur der Screenshot ist immer schwarz.
Es liegt aber nicht an der Uebergabe ans Java programm...
Wenn ich den screenshot aus einem C++ Console App erstelle, speichert er auch nur ein schwarzes Bitmap mit der Bildschirmaufloesung ab...
 
Zurück