Image processing Imagemagick中旋转/倾斜后的自适应背景
在我使用Imagemagick旋转或斜视图像后,旋转发生的角落中有一个白色背景。例如:Image processing Imagemagick中旋转/倾斜后的自适应背景,image-processing,imagemagick,Image Processing,Imagemagick,在我使用Imagemagick旋转或斜视图像后,旋转发生的角落中有一个白色背景。例如: convert image.png -rotate 10 out.png 输出: 有没有一种方法可以让我用一些纹理或者至少是一种与图像融合的颜色来填充这些白色角落?裁剪不是一种选择 我发现了一个很好的简单旋转解决方案: convert image.png -virtual-pixel Edge +distort SRT 10 out.png 输出: 但不幸的是,它不能与-deskew命令一起使用 那么,是
convert image.png -rotate 10 out.png
输出:
有没有一种方法可以让我用一些纹理或者至少是一种与图像融合的颜色来填充这些白色角落?裁剪不是一种选择
我发现了一个很好的简单旋转解决方案:
convert image.png -virtual-pixel Edge +distort SRT 10 out.png
输出:
但不幸的是,它不能与-deskew
命令一起使用
那么,是否有人知道如何用类似的方法填充这些角点,以便使用-deskew
(和-rotate
)命令?关键是要尽可能地掩盖图像旋转的事实。尝试以下方法:
convert image.png -background transparent -rotate 10 out.png
我会继续回答我自己的问题,但我仍然希望有更好的解决办法 您可以设置
-background
颜色,该颜色可与rotate和deskew一起使用
以下是使用平均图像颜色的解决方案:
convert image.png -background `convert image.png -resize 1x1 txt:- | tail -1 | cut -b 30-50` -rotate 10 out.png
输出:
还有一个更好的解决方案,需要一些边界像素:
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
输出:
有一些bash脚本(在背景中),因此这些解决方案仅适用于unix。Hmm,我看不到任何白色角落…只是因为浏览器窗口是白色的:)请在黑色背景上渲染好吗?:)我改变了措辞,将图片放在黑色背景上,并添加了另一张图片。希望我现在讲得通。你要么没有正确地说明你的问题,要么你忘记接受工作答案。没有比这更隐蔽的角落了。为什么这个还没有被接受?我想用尽可能最好的东西填满这个空间,而不仅仅是让它透明。第二个链接是一个示例,但它不适用于-deskew命令(和其他基本转换)。对不起,我一直在编辑和添加问题的内容,因为我学到了更多…什么是“尽可能最好”?我想,也许你想修复创建的背景。