Question

J'ai une image PNG avec Alpha, je dois la convertir en BMP pour être chargée à mon application OpenGL. Cependant, BMP n'a qu'une seule option pour 32 bits, c'est-à-dire XRBG où «x» n'est qu'un octet supplémentaire à des fins de rembourrage (alignement de 4 octets).

La question est de savoir comment ultiliser cet octet «x» pour contenir un canal alpha, afin que le BMP (XRGB 32 bits) puisse être chargé dans l'application GL avec des pixels transparents?

Peut-être que je dois faire mon propre outil pour faire cette conversion? Ce dont j'ai besoin, c'est RGBA, et non «xrgb» ou «argb», dois-je lire le fichier BMP XRGB et numériser le pixel par pixel pour convertir en RGBA?

Quelle est la meilleure façon de VC ++ si la conversion est indispensable? Un logiciel qui peut faire du BMP transparent?

Était-ce utile?

La solution

Pixelformer dit qu'il peut le faire http://www.qualibyte.com/pixellormer/#color_depths

Autres conseils

Vous pouvez utiliser Ormelformer.

Si tu utilises Ulw_alpha sur UpdateLayeredWindow () & LoadImage (), la fonction s'attend à ce que le fichier BMP doit être BGRA 32 bits (avec Alpha prémultiplié & Commande de rangée en bas) À part cela, la fonction ne s'affichera pas correctement Bitmap.

Vous pouvez convertir PNG en BMP 32 bits BGRA avec Pixelformer (étape 2).

  1. Ouvrez Pixelformer et cliquez sur Fichier> Nouveau:

enter image description here

  1. Puis fichier> exportation

enter image description here

PS:

Photoshop Ayez une prise en charge de la rompre lors de l'exportation de BMP avec le canal alpha (il ne peut pas faire de prémultaliment alpha, la valeur du canal alpha deviendra 0). Vous perdrez le canal alpha mais la valeur BGR se chargera correctement. Vous pouvez toujours utiliser Photoshop, mais vous devez dessiner manuellement Alpha sur l'onglet Channel Alpha.

Gimp ont également un support brisé lorsque vous exportez comme BMP. LoadImage () ne chargera rien et vous ne pouvez pas voir l'image. Je soupçonne ce problème causé par GIMP exportant BMP comme Commande de ligne de haut en bas.

Éditeur de ressources Visual Studio ont également une option pour créer / modifier 32bpp BGR mais ne prend pas en charge le canal Alpha

J'avais une fois besoin de faire la même chose et d'écrire un petit outil de ligne de commande qui peut être trouvé ici.

Softwares Opersource - Imagemagique ou Gimp Peut également être utilisé pour cette conversion d'image.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top