ImageMagick的转换工具中的旋转选项会旋转图像,但会添加背景颜色以填补空白。
我正在寻找一种旋转的方法,然后裁剪包含图像内容的最大矩形。是否可以使用转换?
Mark Setchell编辑......
所以,如果您的原始矩形是这样创建的棋盘:
convert -size 512x512 pattern:checkerboard a.png
然后像这样将它旋转20度
convert -background fuchsia -rotate 20 a.png b.png
你想要最大的矩形适合棋盘并且不包含粉红色?
答案 0 :(得分:3)
您可以使用+repage
并将-rotate
替换为-distort ScaleRotateTranslate
来获得预期结果的近似值:
convert -background fuchsia -distort ScaleRotateTranslate 20 +repage a.png b.png
答案 1 :(得分:2)
按照指示创建图像后:
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
来自here。