Você descobriu um bug no ImageMagick. Isso será corrigido no ImageMagick 6.8.7-9. Eu sou um dos desenvolvedores do ImageMagick e acabei de confirmar o nosso repositório SVN ( link ).
Eu tenho uma imagem armazenada no formato BMP e gostaria de convertê-la em PNG usando imagemagick.
Eu olhei para os pixels em um visualizador hexadecimal e notei que eles são armazenados em 32bpp, então existe um canal alfa. Os pixels transparentes têm o valor RGBA (255, 255, 255, 0) e o Paint.NET os seleciona como pixels brancos, provavelmente porque não espera que os BMPs tenham pixels transparentes?
De qualquer forma, o comando que usei é
convert -alpha on -quality 95 in.bmp out.png
No entanto, quando abri a imagem resultante no Paint.NET (que geralmente interpreta pixels transparentes corretamente), esses pixels transparentes ainda eram brancos.
Estou convertendo as imagens incorretamente? Eu gostaria que os pixels com um valor alfa de 0 aparecessem transparentes no editor de imagens que eu geralmente uso.
Você descobriu um bug no ImageMagick. Isso será corrigido no ImageMagick 6.8.7-9. Eu sou um dos desenvolvedores do ImageMagick e acabei de confirmar o nosso repositório SVN ( link ).
Pode não ser um canal alfa. Se for um arquivo de formato bitmap v4, ele pode ter um canal alfa. Para versões anteriores, ainda é possível armazenar os pixels como 32 bits, mas o bit superior é reservado e sempre zero .
Veja um exemplo de um bmp de 32 bits com alfa Aqui está um exemplo de um bmp de 32 bits com sem alfa
A imagem de exemplo nos comentários não tem canal alfa de acordo com o GIMP e identify -verbose
. O melhor que você pode fazer é tornar o plano de fundo branco transparente com
convert sample.bmp -transparent white alpha.png
Tags images imagemagick