2011-02-03 62 views
5

我有一些PNG文件希望轉換爲256色(即GIF)。每個圖像都具有透明度,但是當我嘗試轉換時,總是會在生成的圖像上產生黑色背景。ImageMagick:如何減少顏色但保持透明度?

這是我目前的命令:

convert file.png -colors 255 file256.png 

我使用的是255點的顏色,因爲我讀了你需要的alpha通道一種顏色(雖然我不認爲應該適用於png格式)。我已經嘗試了許多其他選項,如-background none,-channel RGBA-matte,但沒有任何工作。

convert file.png -channel RGBA -matte -colorspace gray file256.png 

它保持在透明的背景:

有趣的是,這個命令轉換爲灰度時所做的工作。但用-colors 256代替-colorspace gray不起作用。

回答

6

使用255代替256色的原因是需要爲「二進制」/「布爾」透明度保留一種顏色,即該顏色的所有像素都被解釋爲完全透明。這裏(通常)不會像使用256色/調色板圖像的alpha通道那樣。作爲參考,您可能需要閱讀關於Color Quantization and TransparencyGIF Boolean Transparency的ImageMagick使用部分。也就是說,這應該將具有alpha通道的32位真彩色PNG轉換爲具有調色板的8位PNG,其中輸入圖像中所有完全透明的像素在輸出圖像中也完全透明:

convert file.png png8:file256.png 

png8指示ImageMagick編寫類似GIF的「8位帶可選二進制透明度索引」PNG,並暗示使用255種「真實」顏色。

0

您是否嘗試過--colorspace透明以保留Alpha通道?