4

我有一组图像,大小相同,以 PNG 格式保存。

稍后,在我的程序中,我将使用这些图像并将它们叠加在一起。

然而,这些图像中的每一个的不透明部分实际上非常小。因此,为了提高性能,最好使用修剪为 alpha 的图像,以便将每个图像裁剪为包含所有非 alpha 像素的最小可能矩形。

当在另一个之上绘制每个图像时,我只需要绘制带有偏移量的裁剪图像。

很多图像,所以不应该手动完成 - 也不是我想在我的程序第一次启动时做的事情。

换句话说,我希望创建一些可以有效处理此问题的批处理作业。

ImageMagick 具有“trim”,它可以满足我的需求,除了我需要捕获偏移量。然后这个偏移量需要以某种方式伴随图像 - 通过将偏移量写入文件或将其放入文件名中(例如,如果偏移量为 34x99,overlay123.png 可能会变为 overlay123-34x99.png)。

什么是工作的最佳工具?我可以编写这样一个例程来手动完成,但似乎应该有一些我可以使用的命令行实用程序,或者用某种脚本语言在几行中完成。

4

1 回答 1

5

从简单的修剪命令开始:

convert test.png -trim +repage test2.png

您可以添加-identify运算符:

convert test.png -trim -identify +repage test2.png

此命令的输出将是:

test.png PNG 800x600=>566x483 800x600+161+52 8-bit DirectClass 0.000u 0:00.004

其中 800x600 是原始图像的大小,566x483 是结果图像的大小,+161+52 是包含图片非 alpha 部分的矩形的偏移量。使用后面的信息,您应该能够构建一个小脚本来实现您的目标。

于 2013-05-25T08:52:48.037 回答