透明PNG圖檔占用空間較大,可以拆分為JPG圖檔和隻帶Alpha的PNG圖檔。這裡使用ImageMagick進行拆分和合并實驗。 ImageMagick版本:6.9.0-Q16
以Bird.png圖檔進行測試:

拆分透明PNG為JPG和隻帶Alpha的PNG
1 2 | "D:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" Bird.png -background black -alpha remove Bird.jpg "D:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" Bird.png -alpha extract Bird_alpha_mask.png |
生成的Bird.jpg圖檔:
生成的 Bird_alpha_mask.png圖檔:
合并JPG和隻帶Alpha的PNG為透明PNG
1 | "D:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" Bird.jpg Bird_alpha_mask.png -compose copyopacity -composite Bird_with_alpha.png |
生成的Bird_with_alpha.png圖檔:
批處理: 拆分透明PNG為JPG和隻帶Alpha的PNG
1 2 3 4 5 6 7 | @echo off set exevar= "D:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" for /f "usebackq tokens=*" %%d in (` dir /s /b *.png`) do ( %exevar% "%%d" -background black -alpha remove "%%~dpnd.jpg" %exevar% "%%d" -alpha extract "%%~dpnd_alpha_mask.png" ) |
合并JPG和隻帶Alpha的PNG為透明PNG
1 2 3 4 5 6 | @echo off set exevar= "D:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" for /f "usebackq tokens=*" %%d in (` dir /s /b *.jpg`) do ( %exevar% "%%d" "%%~dpnd_alpha_mask.png" -alpha off -compose copyopacity -composite "%%~dpnd_with_alpha.png" ) |