ImageMagick -fuzz 或重心裁剪适合可缩放纵横比框的内容
ImageMagick -fuzz OR gravity center cropping with things that fit in a scalable aspect ratio box
首先,此任务的目标是通过去除边缘周围的多余部分,使图像在视觉上尽可能大。
我已经尝试了 fuzz 和 -gravity center,虽然我觉得我更喜欢重力,但它们都做得很好。
不过有一个小问题,那就是裁剪会导致图像不保持纵横比,因此在视觉上与要显示的位置不一致。
我会用图片来演示:
我开始这个输入图像(800x800),注意edges:
当我应用命令时 magick "${file}" -gravity center -trim "${out}"
我得到以下输出 (696x656),您可以在其中看到顶部和底部边缘的空白。这在这里还可以,但是,图像位于另一个图像旁边,并且高度差异非常令人讨厌。这可能没问题,但还有更糟糕的例子。
而不是,宽高比应该保持,在这种情况下,之前的图像应该保留部分 [=49] =]白色 周围的边缘。
解决这个问题的一个相当复杂的尝试是将高度重新计算为 696,这确实可以得到额外的像素 ,但是它们 白色像素而不是底层图像像素:
magick "${file}" -gravity center -trim -extent "696x696" "${out}"
这个白色边缘现在实际上是图像的一部分,其中第一个边缘不是这样,所以纵横比保持不变,但以一种相当笨拙的方式。
所以唯一的问题是如何告诉重心保留那些部分。
理想情况下,任何重力操作都应使用纵横比来执行,并且重力操作应找到最佳比例的纵横比正方形以用于裁剪。
另一方面,return 值 widthxheight+something+something 的信息是什么?什么东西?
所以我想我明白了:
magick "${file}" -gravity center -trim -extent "800x800" "${out}"
会给我
和
magick "${file}" -gravity center -trim -extent "800:800" "${out}"
会给我:
所以 x 将被切换为 :
注意:
magick "${file}" -gravity center -trim -extent "696x696" "${out}"
会给
因此 ImageMagick 没有放回高度,而是更进一步并尝试从实际需要的宽度裁剪更多,尽管看起来有点 snails tail图二要剪
我想应该有一个选项可以说明在扩展高度和进食宽度之间行走有多激进。
不过我已经很满意了。谢谢@fm42!
编辑
这并不总是理想的,它用于宽度而不是填充空白:
这个:
现在导致:
首先,此任务的目标是通过去除边缘周围的多余部分,使图像在视觉上尽可能大。
我已经尝试了 fuzz 和 -gravity center,虽然我觉得我更喜欢重力,但它们都做得很好。
不过有一个小问题,那就是裁剪会导致图像不保持纵横比,因此在视觉上与要显示的位置不一致。
我会用图片来演示:
我开始这个输入图像(800x800),注意edges:
当我应用命令时 magick "${file}" -gravity center -trim "${out}"
我得到以下输出 (696x656),您可以在其中看到顶部和底部边缘的空白。这在这里还可以,但是,图像位于另一个图像旁边,并且高度差异非常令人讨厌。这可能没问题,但还有更糟糕的例子。
而不是,宽高比应该保持,在这种情况下,之前的图像应该保留部分 [=49] =]白色 周围的边缘。
解决这个问题的一个相当复杂的尝试是将高度重新计算为 696,这确实可以得到额外的像素 ,但是它们 白色像素而不是底层图像像素:
magick "${file}" -gravity center -trim -extent "696x696" "${out}"
这个白色边缘现在实际上是图像的一部分,其中第一个边缘不是这样,所以纵横比保持不变,但以一种相当笨拙的方式。
所以唯一的问题是如何告诉重心保留那些部分。
理想情况下,任何重力操作都应使用纵横比来执行,并且重力操作应找到最佳比例的纵横比正方形以用于裁剪。
另一方面,return 值 widthxheight+something+something 的信息是什么?什么东西?
所以我想我明白了:
magick "${file}" -gravity center -trim -extent "800x800" "${out}"
会给我
和
magick "${file}" -gravity center -trim -extent "800:800" "${out}"
会给我:
所以 x 将被切换为 :
注意:
magick "${file}" -gravity center -trim -extent "696x696" "${out}"
会给
因此 ImageMagick 没有放回高度,而是更进一步并尝试从实际需要的宽度裁剪更多,尽管看起来有点 snails tail图二要剪
我想应该有一个选项可以说明在扩展高度和进食宽度之间行走有多激进。
不过我已经很满意了。谢谢@fm42!
编辑
这并不总是理想的,它用于宽度而不是填充空白:
这个:
现在导致: