ImageMagick 转换 旋转 裁剪

10

ImageMagick的convert工具中的旋转选项可以旋转图像,但会添加背景颜色来填补空白处。

我正在寻找一种方法来旋转并裁剪包含图像内容的最大矩形。使用convert可以吗?

由马克·塞切尔(Mark Setchell)编辑...

因此,如果您的原始矩形是像这样创建的棋盘:

convert -size 512x512 pattern:checkerboard a.png

enter image description here

然后你可以像这样将其旋转20度

convert -background fuchsia -rotate 20 a.png b.png

您想要在棋盘上找到最大的矩形,且不包含粉色部分吗?


这可能会有所帮助... https://dev59.com/V2025IYBdhLWcg3wzZT3 - Mark Setchell
是的。不要粉色。最大的正方形在中间。 - Mohammad Moghimi
2个回答

6

使用+repage替换-rotate并使用-distort ScaleRotateTranslate,您可以近似获得预期结果:

convert -background fuchsia -distort ScaleRotateTranslate 20 +repage a.png b.png

Result


5
创建完所示的图片后:
convert -size 512x512 pattern:checkerboard a.png

这似乎能够完成工作:
angle=20
ratio=`convert a.png -format \
     "%[fx:aa=$angle*pi/180; min(w,h)/(w*abs(cos(aa))+h*abs(sin(aa)))]" \
     info:`
crop="%[fx:floor(w*$ratio)]x%[fx:floor(h*$ratio)]"
crop="$crop+%[fx:ceil((w-w*$ratio)/2)]+%[fx:ceil((h-h*$ratio)/2)]"
convert a.png -set option:distort:viewport "$crop" \
          +distort SRT $angle +repage   rotate_internal.png

来源于这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接