【发布时间】:2020-02-01 23:17:00
【问题描述】:
我正在尝试使用 ImageMagick 来模拟 Gimp 的旋转和裁剪功能,以便在一批图像上使用它。
我在 Gimp 中要做的是打开 .jpg 图像,使用具有以下选项的旋转工具:0.2°、三次插值和以原始图像比例裁剪。之后,在图像边框周围再进行一次裁剪,该过程就完成了,我可以将图像另存为 .png
我没有使用 Gimp,因为内置程序 gimp-drawable-transform-rotate-default 只接受带两位小数的弧度。我试图找到一种方法来编辑该 procudere 并创建自己的,但我无法这样做
我还建议使用 ImageMagick,因为批量非常大(50k+ 图像),因此,您能帮我使用控制台命令来模拟我对 Gimp 的操作吗?特别重要的部分是与原始图像比例的裁剪
编辑:
当您旋转图像时,如果° 不是 90-180-270 等...,图像的大小会增加,因此必须创建新的像素。以下作物必须:
- 删除在旋转过程中添加的所有像素以填充空白空间
- 最终比例必须尽可能接近初始比例
- 原始图像中出现的要裁剪的内容(裁剪必须居中)必须尽可能少
基本上,您应该无法仅通过查看原始图像和编辑后的图像来发现它们之间的差异
我为 Gimp 描述的程序已经完成了所有操作,但一次只能处理一张图像
【问题讨论】:
-
如果所有图像的旋转都相同,您可以使用 ImageMagick 中的 mogrify 对整个文件夹的文件执行此操作。它遍历文件夹中的每个图像。或者,您可以编写一个脚本来遍历每个图像并执行此操作。三次卷积将是 -filter Catrom。如果您了解 Python,那么您可以在 Python Wand 中进行脚本循环和处理。见imagemagick.org/Usage/basics/#mogrify 和docs.wand-py.org/en/0.5.7
-
是的,我确实知道 python,但我可以看到旋转和裁剪在魔杖中基本不同,例如在旋转期间我无法指定要使用的插值。另外,我认为 Gimp 裁剪经过优化,可以找出既保持图像原始比例又削减旋转添加的边框的最小裁剪。我决定不使用 PIL,因为没有办法对 50k+ 图像这样做,而不会冒着裁剪太多图像的风险。我可能会更多地研究 IM,看看我是否能找到如何更改他们的基本脚本
-
见docs.wand-py.org/en/0.5.7/wand/image.html。使用过滤器类型 Catrom。使用带有失真方法 scale_rotate_translate 的 distort 并将缩放和平移固定为 0 以进行旋转。查看crop进行裁剪并计算宽度和高度以保持输入的纵横比。
-
请说明您的裁剪要求。您可能对 imagemagick.org/discourse-server/viewtopic.php?f=4&t=35579 的 ImageMagick -trim 的内部修剪选项感兴趣
-
编辑更多关于作物的细节
标签: imagemagick