GDI+ Bitmap Speichern problem
Bitmap bff(L"1.jpg");
bff.Save(L"2.jpg", &Gdiplus::ImageFormatJPEG, NULL);
Dies erstellt eine neue Datei 2.jpg mit null-bytes Länge.
Ist es nicht eigentlich zum schreiben einer image-Datei, die identisch ist mit 1.jpg?
Warum ich mich mit null-bytes Länge der Dateien?
Ich mache diesen test, weil das schreiben andere Bitmaps in Dateien, das Ergebnis in der gleichen Ausgabe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine schnelle Möglichkeit, es zu speichern, da
GetEncoderClsid
ist eine benutzerdefinierte Funktion:und hier die IDs für andere Formate:
&Gdiplus::ImageFormatJPEG
ist der falsche Wert zu senden, die als zweiter parameter (also warum die neue Datei null Byte groß). Werfen Sie einen Blick auf das code-Beispiel unten auf derImage::Save()
Referenz-Seite, die zeigt die die ordnungsgemäße Verwendung vonSave()
.GetEncoderClsid()
noch Sie noch am Ende vorbei&Gdiplus::...
zuSave()
. Sie sollte stattdessen übergeben Sie die CLSID, die gegeben wurde durchGetEncoderClsid()
Save()
läuft wunderbar auf JPEGs mit einem NULL-Dritte parameterAFAIK, Sie können nicht einfach übergeben Sie das image-format GUID ('ImageFormatJPEG' in deinem Fall) zu "Image::Save" - Methode. Das zweite argument soll, halten Sie die encoder-GUID, nicht die GUID-format. Ein Beispiel hier