2017-10-05 76 views

回答

0

所以,這是imagemagic的a buga feature。引述功能部分:

原來的ImageMagick嘗試基於圖像內容設置爲PNG8 即使文件以前PNG24或PNG32

因此,如果你想結束每個圖像3個通道,您必須設置png24格式(3通道x8位/通道)。

因此,解決辦法是:

# for a single image, with a different output 
convert input.png -type TrueColor png24:output.png 

# for a batch of images, IN_PLACE !!! BE VERY CAREFUL 
mogrify -define png:format=png24 -type TrueColor *.png 

這是強制性的認識到mogrify將修改它們到位所以一定要確保這是你想要的,因爲沒有辦法恢復原來的圖像。

+1

由於PNG僅支持sRGB(無CMYK),所以添加-colorspace RGB將使圖像成爲線性顏色而不是非線性顏色sRGB。所以除非你使用的是一個非常古老的IM版本,其中RGB和sRGB交換,我會刪除它。在提供任何設置或操作員之前,正確的IM語法也會讀取光柵輸入。所以在轉換命令中首先讀取輸入png。 – fmw42

+0

@ fmw42感謝您的建議!任何想法爲什麼'mogrify'太慢了? 18張圖像需要32秒。如果我查看文件夾,我會看到正在創建的中間文件。也許它使用一個小的內存緩衝區,如果圖像很大,它使用磁盤,儘管有可用內存 –

+0

請注意,可以通過設置'-path/some/where/else'來避免文件被原地修改。 –

相關問題