Kann ich eine Bitmap in PNG im Speicher (d. H. Ohne in eine Datei zu schreiben) nur mit dem Platform SDK konvertieren? (d. h. keine libpng usw.).Konvertieren von Bitmap zu PNG im Speicher in C++ (Win32)
Ich möchte auch eine transparente Farbe (kein Alpha-Kanal) für dieses Bild definieren können.
Die GdiPlus-Lösung scheint auf Bilder mit einer durch 4 teilbaren Breite von beschränkt zu sein. Alles andere schlägt während des Aufrufs von Save() fehl. Kennt jemand den Grund für diese Einschränkung und wie/ob ich es umgehen kann?
Update: Bounty
Ich beginne eine Prämie (ich will das wirklich arbeiten). Ich habe die GDI + -Lösung implementiert, aber wie gesagt, sie ist auf Bilder mit Quad-Breite beschränkt. Das Kopfgeld wird an jeden vergeben, der dieses Problem mit der Breite lösen kann (ohne die Bilddimensionen zu ändern) oder eine alternative nicht-GDI + -Lösung anbieten kann, die funktioniert.
um zu beginnen, habe ich ein Beispiel gefunden, um ein Bitmap als PNG mit Gdi + zu speichern: http://dotnet-snippets.de/dns/gdi-speichern-eines-png-SID814.aspx vielleicht ist es nützlich –
Diese Lösung funktioniert für mich, auch mit Bildern, deren Breite nicht durch 4 teilbar ist. Ich bin auf Windows Vista und verwende Visual C++ 2008. –
Warum willst du libpng nicht benutzen? Es hat eine sehr freizügige Lizenz. –