将 PNG 图像预修剪为 alpha 并获得偏移量

Nuo*_*oji 4 image imagemagick image-processing

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

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

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

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

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

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

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

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

And*_*rea 5

从简单的修剪命令开始:

convert test.png -trim +repage test2.png
Run Code Online (Sandbox Code Playgroud)

您可以添加-identify运算符:

convert test.png -trim -identify +repage test2.png
Run Code Online (Sandbox Code Playgroud)

此命令的输出将是:

test.png PNG 800x600=>566x483 800x600+161+52 8-bit DirectClass 0.000u 0:00.004
Run Code Online (Sandbox Code Playgroud)

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