【发布时间】:2018-09-05 16:55:55
【问题描述】:
我正在使用以下 python 代码旋转图像:
from PIL import Image
img = Image.open('banana.jpg')
rotated = img.rotate(10)
rotated.save('banana-rotated.jpg')
这进行了以下转换:
如您所见,背景是黑色的。 This question 询问如何用特定颜色填充背景。但是,我想用图像的颜色填充背景。因为我需要旋转很多图像,所以我不想将背景设置为固定颜色。
有什么方法可以在边缘扩展图像,使用从图像外推的颜色?理想情况下,如果图像没有统一的背景,这也可以工作。
【问题讨论】:
-
正确的方法是使用单独的图像作为背景,然后将另一个图像的
transparent版本(您希望旋转)放在背景图像的顶部。前景图像的旋转不会影响背景,也不会有任何可见的边框。 -
@anekix:这听起来很有希望。但是我应该使用什么作为背景图像?因为我旋转了许多图像,所以我需要为每个图像单独设置一个背景图像。我想我可以使用我想旋转的图像作为背景图像?但也许有更好的方法?
-
这些图片是动态生成的吗?就像用户提交的一样,或者你只是有一堆你想要处理的图片?
-
您可以参考this 寻求帮助。您得到的结果是预期的,因为您的示例中没有背景和前景图像的概念。
-
如果你知道图像的类型,你可以得到4个角区域的RGB,并用它来填充新的角。这可能适用于您的图像。一般没有平面背景色,所以常用的方法是旋转+裁剪。
标签: python image colors rotation python-imaging-library