将图像修剪为最小的正方形

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将图像修剪为最小的正方形相关的知识,希望对你有一定的参考价值。

我有一个PNG。我想将它修剪成尽可能小的图像,同时保持画布方形。

例如,我有一个透明背景的非方形图像:

enter image description here

如果我运行convert input.png -trim +repage output.png,图像将被修剪四周:

enter image description here

我想要一个正方形图像,其中修剪图像的最长边是正方形的高度和宽度。例如:

enter image description here

我想过使用-gravity center -extent 512x512 - 但我并不总是知道大小应该是多少。

如何获得修剪图像的最长边,并根据它调整画布大小?

答案

这可以通过使用FX表达式来设置像这样的页面几何...

convert input.png -trim -background none 
   -set page "%[fx:max(w,h)]x%[fx:max(w,h)]+%[fx:(max(w,h)-w)/2]+%[fx:(max(w,h)-h)/2]" 
   -coalesce output.png

修剪输入并计算宽度或高度的最大值以确定方形的尺寸。然后,它设置几何体以将输入图像定位在正方形的中心。 “-coalesce”重新组合输入以符合画布大小和几何。

这适用于具有横向或纵向方向的图像。

要将其用作Windows命令,请将连续行反斜杠“”更改为插入符号“^”。在Windows BAT脚本中,将单个百分号“%”设置为双精度“%%”。

另一答案

你没有说你正在使用哪个版本的Imagemagick会对答案产生影响。

这是一个V7答案,你可以在V6上遵循相同的过程,但它可能会更长一点。

magick "input.png" -trim -background none -gravity center -extent %wx%w "output.png"

以上是关于将图像修剪为最小的正方形的主要内容,如果未能解决你的问题,请参考以下文章

imagemagick 在不使用 -extent 的情况下将画布更改为正方形(保留最长边)

制作 UIImage 的方形裁剪导致图像拉伸

CSS中的媒体片段URI替代方案?

如何在iOS中将方形图像屏蔽为圆角图像?

将矩形图像调整为正方形,保持比例并用黑色填充背景

将图像裁剪为正方形,然后使用纯 CSS 进行圆形?