M
TimDerVerzweifelte schrieb:
Danke für die vielen Antworten, ich habe jetzt eingesehen das ich die GDI+ verwenden muss, war ein bisschen durch den Wind
Jetzt mal mein Code der hoffentlich nicht so schrecklich ist wie der mit dem Paint-Versuch
Schön für die Einsicht - besser spät als nie.
Allerdings wurde auch bereits erwähnt, das es Bibliotheken wie LibPNG gibt, die das auch ohne Zutun von Microsoft hinbekommen.
http://de.wikipedia.org/wiki/Libpng
Leider ist Dein Code immer noch grottig.
Es wird zwar kein externes Programm mehr benötigt, dafür wird aber aber nun eine unnötige BMP-Datei erzeugt.
Ich hatte Dir bereits alle relevanten Codefragmente vorgestellt, um den Screendump DIREKT komprimiert speichern.
Leider wird bei Dir das Image erst als BMP gespeichert
HANDLE FH = CreateFileA( BmpName,GENERIC_WRITE,FILE_SHARE_WRITE,0,CREATE_ALWAYS,0,0);
WriteFile(FH,BmpFileData,FileSize,&Junk,0);
nur um es direkt wieder zu laden und umzuformen.
HBITMAP hbm = (HBITMAP)LoadImage( NULL, convertCharArrayToLPCWSTR(filenamebmp), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
TimDerVerzweifelte schrieb:
Hoffentlich ist der Code soweit inordnung
Nee, nicht wirklich.
TimDerVerzweifelte schrieb:
Was mich allerdings wundert, der Screenshot ist manchmal nur 200KB groß und manchmal ganze 1.12MB. Woran liegt das ?
Das hängt natürlich vom Inhalt ab. Ein leerer Desktop hat eben weniger Informationen, die komprimiert werden müssen.