使用Python Imaging Library在图像顶部叠加彩色像素

时间:2016-03-15 04:32:45

标签: python image python-imaging-library

好的,首先是第一件事。这是this question的近似副本。

但是,我面临的问题在关键方面略有不同。

在我的应用程序中,我读取了一个通用文件名,加载了所述图像并显示它。在它变得棘手的地方,我已经覆盖了被突出显示的外观'。为此,我使用Image.blend()函数,并将其与直黄色图像混合。

但是,在处理混合时,我正在解决两个图像不兼容的错误。为了解决这个问题,我打开了油漆中的样本图像,并将黄色粘贴在整个图像上,并将其保存为副本。

我刚想到,当通过文件名读入不同类型的图像时,这将失败。请记住,这需要是通用的。

所以我的问题是:不是手动复制图像,而是通过复制图像并修改图像使其生成黄色而得到python?注意:我之后不需要保存它,所以只要实现它就足够了。

不幸的是,我不允许分享我的代码,但希望以下内容能够让我知道我的需求:

from PIL import Image 

desiredWidth = 800
desiredHeight = 600

primaryImage = Image.open("first.jpg").resize((desiredWidth, desiredHeight), Image.ANTIALIAS)

# This is the thing I need fixed:
highlightImage = Image.open("highlight.jpg").resize((desiredWidth, desiredHeight), Image.ANTIALIAS)

toDisplay = Image.blend(primaryImage, highlightImage, 0.3)

感谢任何可以提供帮助的人。

1 个答案:

答案 0 :(得分:0)

听起来你想制作new图片:

fill_color = (255,255,0) #define the colour as (R,G,B) tuple

highlightImage = Image.new(primaryImage.mode, #same mode as the primary
                           primaryImage.size, #same size as the primary
                           fill_color)#and the colour defined above

这会创建一个new图像,其图像和大小与已打开的图像相同,但颜色为纯色。欢呼声。

此外,如果您使用Pillow而不是原始PIL,您甚至可以按名称获取颜色:

from PIL.ImageColor import getcolor

overlay = 'yellow'
fill_color = getcolor(overlay, primaryImage.mode)