Convertir un 32Bit Png à un 24bit Bitmap - Stack Overflow
Ce que je suis en train de faire est de traiter une image téléchargée à un niveau de pixel, dans une application console VB6, ce sont les étapes actuellement
BITMAPFILEHEADER
BITMAPINFOHEADER
BMPData
Je peux ensuite en boucle le BMPData et extraire et traiter de la valeur nécessaire. Si je tente de charger l'image sans avoir d'abord l'enregistrer à un bitmap 24 bits dans la peinture, je reçois une affiche l'erreur de mémoire dans VB (Run-Time Error 7) et le BMPInfoHeader.biSizeImage est très grand compaired à la taille, il est après avec a été enregistré par la peinture.
J'ai essayé de convertir avec ImageMagick-6.9.0-Q16 annonce et GraphicsMagick-1.3.21-Q8 mais ceux-ci semblent juste gâcher le fichier converti.
Quelqu'un a une idée ?
J'ai essayé tout ce que je sais pour obtenir ImageMagick pour créer une couleur 24 bits BMP à partir d'un fichier PNG 32 bits échelle de gris, y compris:
- +mat pour enlever le canal alpha
- -taper truecolor pour forcer une sortie couleur
- BMP4: output.bmp pour forcer un BMP4
- BMP3: output.bmp pour forcer un BMP3
- BMP2: output.bmp pour forcer un BMP2
- -couleurs 16 | 256 pour forcer nombre de couleurs
- -profondeur 8 | 24 pour régler la profondeur de bit
- en passant par le format PPM et le dos pour se débarrasser des paramètres PNG
- écrit par ppm2bmp / ppmtobmp de NetPBM
et tout cela en vain. Je ne peux pas ImageMagick pour créer une couleur 24 bits BMP à partir d'un PNG 32 bits gris.
Je ne sais pas si cela fonctionnera pour vous, si oui, bon, arrêtez-vous ici. Sinon, continuez.
La seule chose que je peux suggérer que vous utilisez le format PPM qui est encore plus facile que BMP pour vous de lire
Cela vous obtiendrez une image de type P6 PPM, comme décrit ici. Si vous voulez encore plus facile version P3 ASCII, utilisez cette commande
et votre image ressemblera à ceci:
Wow, merci pour tout le temps et les efforts que vous avez prises pour essayer d'obtenir une solution de travail pour moi, j'ai essayé ce qui précède et sans doute celui qui fonctionne est
convertir aucun de yourImage.png de output.ppm
Je dois faire des tests supplémentaires pour vérifier les valeurs, mais je pense que cela fonctionnerait.
J'ai trouvé une façon de le faire, j'utilise XMLHTTP pour télécharger l'image via un flux adodb et trouvé que je pouvais enregistrer l'image dans un certain nombre de formats différents autres que bmp, je regardais le format des différents formats d'image et a constaté que le format de fichier TIF semblent prometteurs et a trouvé une ligne de code utilisé l'image de Microsoft pour manipuler Acquistion Library le fichier TIF.
En chargeant le fichier TIF dans un WIA.ImageFile et l'application d'un WIA.Vector à lui, vous pouvez alors itterate les pixels de l'image et obtenir les valeurs des couleurs brutes, en additionnant les valeurs ainsi que par colonne et en tenant compte du fait que vous avez de colonne qui sont tous blancs, ceux-ci étant juste une colonne vide, je suis en mesure de générer une valeur unique par caractère.
Merci pour votre aide.