天天看點

ImageMagick 拆分透明PNG、合并JPG和Alpha Mask

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

以Bird.png圖檔進行測試:

ImageMagick 拆分透明PNG、合并JPG和Alpha Mask

拆分透明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圖檔:

ImageMagick 拆分透明PNG、合并JPG和Alpha Mask

生成的 Bird_alpha_mask.png圖檔:

ImageMagick 拆分透明PNG、合并JPG和Alpha Mask

合并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圖檔:

ImageMagick 拆分透明PNG、合并JPG和Alpha Mask

批處理: 拆分透明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"

)