【发布时间】:2018-10-12 04:14:15
【问题描述】:
我正在使用 ImageMagick 6 将我的图像分割成多个部分。 How to split an image with a grid and preserve transparency bounding box
dim=`convert image.png -format "%wx%h" info:`
convert \( -size $dim xc:none \) null: \( image.png -crop 10x10% \) -layers composite result.png
一切都很完美,但如果我使用这样的输入图像:
在输出时,我得到一些完全透明的空图像,因为从输入图像中 - 它的角落没有任何东西。
是的,它应该如何工作,但我正在寻找如何避免这种情况。
或者从磁盘中删除那些空白图像,因为我不需要它们。
如果没有正常的方法可以做到这一点?
我也在考虑解决方法,比如检测完全空的图像并修改它们(用颜色或任何其他填充,无论如何),所以之后我可以在 Finder 中仅按修改日期对输出文件进行排序并手动删除它们。
附言我有像那个 2000 x 2000px 大小的圆圈和 5% 切片的图像,想象一下输出中的空图像数量......手动删除它不仅仅是一种痛苦。
【问题讨论】:
-
@fmw42 你能看一下吗?提前谢谢你。
-
您能否让我更好地了解您对输出的期望?您可以手动拆分它以显示结果部分吗?
-
我使用这个问题中的代码来处理给定的图像。包含该图像和输出文件的文件夹:https://www.dropbox.com/sh/rbe3xgmenhpqv99/AADsDxiSlRXJYAMDk-sc5lyUa?dl=1 您可以看到完全空白的图像。
-
据我所知,Imagemagick -crop 中没有选项可以忽略完全透明的图块。您必须测试每个图块以查看它是否完全透明,然后将其丢弃。如果此命令的结果为 gray(0),您可以判断图块是否完全透明:
convert result-0.png -background black -alpha background -alpha extract -scale 1x1! -format "%[pixel:u.p]" info: -
@fmw42,可以检测到它很酷,但正如我所说,我至少有 2000 个这样的精灵,那么 Imagemagick 可以检测空并用黑色填充它吗?这对我很有帮助。
标签: image-processing imagemagick