Imagemagick中旋转/去偏移后的自适应背景

时间:2013-01-01 17:47:35

标签: image-processing imagemagick

使用Imagemagick旋转或去歪斜图像后,角落处会出现白色背景,旋转发生在那里。例如:

convert image.png -rotate 10 out.png

输出:http://imgur.com/8bZQ6

有没有办法可以用某种纹理填充那些白色角落,或者至少是一种与图像融为一体的颜色?裁剪不是一种选择。

我找到了这个简单旋转的好方法:

convert image.png -virtual-pixel Edge +distort SRT 10 out.png

输出:http://imgur.com/edMS0

但不幸的是,它不适用于-deskew命令...

那么,有没有人知道如何以-deskew(和-rotate)命令的类似方式填补这些角落?重点是掩盖图像尽可能旋转的事实。

2 个答案:

答案 0 :(得分:2)

我会继续回答我自己的问题,但我仍然希望有更好的解决方案。

您可以设置-background颜色,该颜色适用于旋转和偏移校正。

以下是使用平均图像颜色的解决方案:

convert image.png -background `convert image.png -resize 1x1 txt:- | tail -1 | cut -b 30-50` -rotate 10 out.png

输出:http://imgur.com/YCqkC

一个更好的解决方案,需要一些边框像素:

convert image.png -background `convert image.png -resize 100x1! \( +clone -crop 1x1+0+0 \) +append -crop 2x1+99+0 -resize 1x1 txt:- | tail -1 | cut -b 30-50` -rotate 10 out.png

输出:http://imgur.com/4wDPO

有一些bash脚本(在反引号内),所以这些解决方案只是unix。

答案 1 :(得分:1)

试试这个:

convert image.png -background transparent -rotate 10 out.png