ImageMagick转换旋转裁剪

ImageMagick转换旋转裁剪,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,ImageMagick的转换工具中的旋转选项会旋转图像,但会添加背景色以填补空白 我正在寻找一种方法来旋转,然后裁剪包含图像内容的最大矩形。是否可以使用转换 马克·塞切尔编辑 因此,如果原始矩形是这样创建的棋盘: convert -size 512x512 pattern:checkerboard a.png 像这样旋转20度 convert -background fuchsia -rotate 20 a.png b.png 您想要棋盘上的最大矩形且不包含粉色?您可以使用+repage

ImageMagick的转换工具中的旋转选项会旋转图像,但会添加背景色以填补空白

我正在寻找一种方法来旋转,然后裁剪包含图像内容的最大矩形。是否可以使用转换

马克·塞切尔编辑

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

convert -size 512x512 pattern:checkerboard a.png

像这样旋转20度

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


您想要棋盘上的最大矩形且不包含粉色?

您可以使用
+repage
并将
-rotate
替换为
-cortext scaleroate translate
,以获得预期结果的近似值:

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

如图所示创建图像后:

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

来自。

这可能有助于。。。对没有粉红色的。中间最大的广场。