Imagemagick: remove alpha component (replace all i

2020-02-28 03:38发布

问题:

To solve Android build issue I need to replace all intermediate alpha pixel with solid pixel (leaving transparent background as is).

How to that with ImageMagick or other-command line tool to all image in a tree?

Image bg_all_block.9.png

Image btn_bg_common_press.9.png

UPDATE: I have found that I can detect if alpha is used, as in Detect Alpha Channel with ImageMagick

Other found links

  • https://graphicdesign.stackexchange.com/questions/16120/batch-replacing-color-with-transparency
  • http://www.imagemagick.org/Usage/color_basics/#replace

回答1:

To remove the alpha channel from single image use this command:

convert input.png -alpha off output.png

To remove the alpha channel from all images inside a folder, make use find to first find all PNG files, and then run 'm through convert:

find . -name "*.png" -exec convert "{}" -alpha off "{}" \;

Please test on a COPY of your files to be sure.

...

see dialog below, and the answer is based on that "we need to remove alpha that is not 255"

convert input.png -channel A -threshold 254 output.png

and for batch

mkdir batch
FOR %G IN (*.png) DO convert %G -channel A -threshold 254 batch\%G