¿Puedo convertir un mapa de bits a PNG en la memoria (es decir, sin escribir en un archivo) utilizando solo Platform SDK? (es decir, no libpng, etc.).Convertir bitmap a PNG en la memoria en C++ (win32)
También quiero ser capaz de definir un color transparente (no un canal alfa) para esta imagen.
La solución GdiPlus parece estar limitada a imágenes de ancho divisible por 4. Cualquier otra cosa falla durante la llamada a Save(). ¿Alguien sabe el motivo de esta limitación y cómo y si puedo evitarlo?
Actualización: Bounty
estoy empezando una recompensa (que realmente quiero que esto funcione). Implementé la solución GDI +, pero como dije, está limitada a imágenes con ancho cuádruple. La recompensa irá a cualquiera que pueda resolver este problema de ancho (sin cambiar las dimensiones de la imagen), o puede ofrecer una solución alternativa que no sea GDI + que funcione.
para empezar, encontré un ejemplo para guardar un mapa de bits como png con gdi +: http://dotnet-snippets.de/dns/gdi-speichern-eines-png-SID814.aspx quizás sea útil –
Esta solución funciona para mí, incluso con imágenes donde el ancho no es divisible por 4. Estoy en Windows Vista y uso de Visual C++ 2008. –
¿Por qué no quieres usar libpng? Tiene una licencia muy permisiva. –