任务:我有一个输入png文件(实际上很多,但是我只会循环解决方案)。它是16x16 PNG,32位,边缘部分透明。
碰巧某个特定平台的工具栏需要17x17的文件。我的问题是 imagemagick 在进行简单转换时会破坏透明度。
所以: 健全性检查:
convert add.png PNG32:add_COPIED.png
创建另一个16x16 @ 32bpp文件。到目前为止一切顺利。
变形(重力很好)
convert add.png -extent 17x17 PNG32:add_17.png
创建一个纯白色背景文件。那不好。
什么不起作用:
我尝试了很多透明,透明颜色,背景,alpha和扁平化的组合。一无所获。
有效的方法:
convert address_book.png -alpha Extract address_book_MASK.png
convert address_book.png -extent 17x17 PNG32:address_book_17.png
convert address_book_MASK.png -background black -extent 17x17 address_book_MASK17.png
composite -compose CopyOpacity address_book_MASK17.png address_book_17.png PNG32:address_book_FIN.png
虽然我有一套可以使用的命令,但我可以整日完成工作,但老实说,我认为这是错误的处理方式-四个命令创建了3个中间文件,以后需要删除。当然可以用更好的方法吗?
答案 0 :(得分:1)
在更改范围之前设置背景颜色:
convert input.png -background none -extent WxH result.png