2011-10-31 7 views
1

possible en double:
Convert bitmap to PNG in-memory in C++ (win32)Convertir un fichier BMP dans le fichier PNG en mémoire

J'ai un fichier BMP comme un tampon char*. Je veux convertir ce fichier BMP en un fichier PNG en mémoire. Je l'ai essayé et j'ai cherché un peu, mais je n'ai rien trouvé d'utile.

Je peux supposer Windows XP ou plus tard, pas .NET et C99.

+2

Vous avez "essayé" - * qu'est-ce que vous avez essayé? –

+0

Selon vous, quelle est la différence entre un BMP et un PNG? –

+0

Avez-vous essayé d'utiliser [libpng] (http://www.libpng.org/pub/png/libpng.html)? –

Répondre

0

En mémoire, vous devez probablement le faire vous-même. Vous devez comprendre les en-têtes des fichiers BMP et PNG. Après avoir créé l'en-tête avec succès, vous pouvez copier des données mais les données ne sont pas stockées dans le même formulaire en BMP et PNG, ce qui prend beaucoup de temps.

Une autre façon de le faire est d'utiliser un outil externe et de l'appeler à partir du code C pour effectuer la conversion. Cependant, le problème en mémoire sera en question.

+0

J'espérais qu'il y avait une bibliothèque qui pourrait faire la conversion (en partie). – orlp

+0

Je ne suis pas sûr si cela aiderait. http://libpng.org/pub/png/pngcode.html –

1

ImageMagick a une API C. Je suppose, car il vous permet d'effectuer diverses transformations sur les images, que ces images sont conservées en mémoire, vous devriez donc pouvoir le charger comme BMP et éventuellement l'enregistrer au format PNG.

Questions connexes