0
因此,我想將許多PNG從灰度轉換爲RGB,類似於this question如何將原始PNG批量從灰度轉換爲RGB?
但是,給定的命令不適用於PNG。此外,這是convert
和我讀到,以處理圖像就地人必須使用mogrify
。我怎樣才能使用它?
因此,我想將許多PNG從灰度轉換爲RGB,類似於this question如何將原始PNG批量從灰度轉換爲RGB?
但是,給定的命令不適用於PNG。此外,這是convert
和我讀到,以處理圖像就地人必須使用mogrify
。我怎樣才能使用它?
所以,這是imagemagic的a bug和a feature。引述功能部分:
原來的ImageMagick嘗試基於圖像內容設置爲PNG8 即使文件以前PNG24或PNG32
因此,如果你想結束每個圖像3個通道,您必須設置png24
格式(3
通道x
8
位/通道)。
因此,解決辦法是:
# 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
將修改它們到位所以一定要確保這是你想要的,因爲沒有辦法恢復原來的圖像。
由於PNG僅支持sRGB(無CMYK),所以添加-colorspace RGB將使圖像成爲線性顏色而不是非線性顏色sRGB。所以除非你使用的是一個非常古老的IM版本,其中RGB和sRGB交換,我會刪除它。在提供任何設置或操作員之前,正確的IM語法也會讀取光柵輸入。所以在轉換命令中首先讀取輸入png。 – fmw42
@ fmw42感謝您的建議!任何想法爲什麼'mogrify'太慢了? 18張圖像需要32秒。如果我查看文件夾,我會看到正在創建的中間文件。也許它使用一個小的內存緩衝區,如果圖像很大,它使用磁盤,儘管有可用內存 –
請注意,可以通過設置'-path/some/where/else'來避免文件被原地修改。 –