.bmp aus Clipboard speichern
-
Hallo,
Ich hab ein Bild in der Zwischenablage und möchte dieses gerne als *.bmp speichern lassen. Auf meiner langen Google Suche habe ich leider nichts finden können. Kann mir da jemand weiterhelfen, wie das geht, ob das überhaupt geht? Achja sollte ich vllt sagen, weil ich das oft lesen musste bei Google: Nein ich will das nicht in einem Malprogramm einfügen und dann auf Speichern unter drücken, sondern das selber Programmieren.
-
4. Googleergebnis:
http://www.chami.com/tips/delphi/121296D.html
und dann damit umändern:
http://msdn.microsoft.com/en-us/library/ms649013(VS.85).aspxgreetz KN4CK3R
-
Das ist doch kein C/C++ ... Und da das hier ein C/C++ Forum ist und man nicht erwarten kann, dass ich andere Sprachen beherrsche, hilft mir das leider nicht weiter. Außer natürlich die Funktionen sind 1:1 in C++ übertragbar.
-
sind sie
greetz KN4CK3R
-
Okay ich hab mein bestes gegeben und versucht den Code in C++ umzusetzen. Das ist mein Ergebnis:
bool SaveClipboard( string file ) { LPVOID ps1, ps2; DWORD dwLen; ofstream bitmap; HGLOBAL hMem; if( OpenClipboard( NULL ) ) { hMem = GetClipboardData( CF_BITMAP ); ps1 = GlobalLock( hMem ); dwLen = GlobalSize( hMem ); ps2 = GlobalAlloc( GMEM_DDESHARE, 1+ dwLen ); strcpy( (char*)ps2, (char*)ps1 ); GlobalUnlock( hMem ); bitmap.open( file.c_str() ); bitmap << ps2; bitmap.close(); return true; } return false; }Leider stürzt das Programm ab... Wenn mir da noch jemand helfen könnte.
-
Die Bitmap ist doch kein null terminierter String.
Da wird ein Handle geliefert!HBITMAP hBm = (HBITMAP)GetClipboardData(CF_BITMAP);Der Rest ist reichlich dokumentiert um die Bitmap zu schrieben (GetObject etc.).
-
Ja das hab ich auch bald gemerkt^^ Aber danke es klappt jetzt.