将图像调整大小并裁剪为 6x4,宽度为 1024

将图像调整大小并裁剪为 6x4,宽度为 1024

我有一组混合图像,每个图像的分辨率略有不同,并且纵横比与其他图像略有不同。

我尝试过使用如下命令:

convert -resize

和:

convert -crop

然而,我似乎无法找出正确的命令来使所有图像的宽度为 1024 且纵横比为 6x4,而不会导致图像拉伸或挤压。

答案1

请注意,1024 不能被 3 整除,因此您无法获得精确的 6x4 宽高比。我将其近似为 1024x682。

你想要的命令是

convert in.jpg -resize '1024x682^' -gravity Center -crop 1024x682+0+0 out.jpg

-resize '1024x682^'在保持宽高比的同时缩放图像,以便:

  • 宽度 = 1024 且高度 >= 682,或
  • 高度 = 682 且宽度 >= 1024

在不改变纵横比的情况下,只能实现其中一个标准(除非图像已经是 6x4)。

-gravity Center -crop 1024x682+0+0剪切图像中心的 1024x682 区域。您可以-gravity根据想要的图像裁剪方式使用不同的方法。

您还可以包含一个-filter选项来控制用于调整图像大小的算法。

答案2

我猜你正在使用 Imagemagick。这个问题与任何软件都无关,只是你需要调整大小并保持每张照片的比例,然后使用其他比例进行裁剪(你需要丢失部分图像,然后在其他情况下在底部添加一块纯黑色,等等)。我倾向于使用某些免费软件来做到这一点,伊凡维尤. 使用批处理选项(只需使用 irfanview 打开文件夹中的一个图像,然后按 b 键),我将高级选项设置为已选中,然后使用那里的选项调整大小和裁剪,它提供了相当大的灵活性。

但是,使用 Imagemagick 什么都做不了,当然您可以让它拉伸,但您可以在不改变比例的情况下强制裁剪……

另一种方法是使用 Photoshop 自动菜单,结合您之前完成的操作(宏)。

答案3

原始图像:798x591

目标图像:

$ convert /var/tmp/eid0.png -crop 798x450-10+50 /var/tmp/eid.png

798 = width  (keep original)
450 = height (customize original to total height)

-10 = x horizontally
+50 = y vertically

它运行良好。

相关内容