瀏覽分類:

ImageMagick

imagemagick 批次轉換影像為 PNG8

由於通用電子地圖位元深度為 24bit 而客戶的 GIS 軟體只吃 8bit png 檔案,幾番折騰後發現可以用 imagemagick 這神器轉換。需要特別注意的是使用預設的 PNG8 會出現圖片有莫名其妙的粉紅雜點,故需要加上 -colors 256 參數。

粉紅雜點錯誤

另外在執行 windows 需要寫 magick convert ,而 ubuntu 則直接寫 convert。

windows

for /R %x in (*.png) do magick convert "%x" -colors 256 PNG8:"%x"

linux

首先查看 png 資訊,可以確認為 24 bit

file 0.png

0.png: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96×96, segment length 16, baseline, precision 8, 256×256, frames 3

安裝 imagemagick 並執行遞迴批次轉換

sudo apt-get install imagemagick
find -name "*.png" -exec convert {} -colors 256 PNG8:{} \;

最後確認檔案是否轉換成功,最後輸出 8-bit 成功轉換

file 0.png

0.png: PNG image data, 256 x 256, 8-bit colormap, non-interlaced