使用putpixel()不会将像素值写入图像

时间:2010-08-25 23:00:17

标签: python python-imaging-library

我在图片(putpixel)上使用srcImage,其中w = 134且h = 454.

此处的代码获取字体部分的r,g,b值为0,255,0(我通过调试,使用打印选项找到)。

image = letters['H']  
r,g,b = image.getpixel((1,1)) #Note r g b values are 0, 255,0
srcImage.putpixel((10,15),(r,g,b))   
srcImage.save('lolmini2.jpg')

此代码不会引发任何错误。但是,当我检查保存的图像时,我无法看到纯绿色像素。

2 个答案:

答案 0 :(得分:6)

不应使用putpixel()getpixel(),而应使用索引。对于getpixel(),您可以使用pixesl[1, 1],对于putpixel,您可以使用pixels[1, 1] = (r, g, b)。它应该工作相同,但它更快。 pixels这里是image.load()

但是,我不明白为什么它不起作用。它应该没有问题。也许jpeg压缩在这里杀了你。您是否尝试将其另存为png / gif文件?或者设置超过1个像素。

答案 1 :(得分:0)

我知道这是一篇非常古老的帖子,但对于那些想要坚持putpixels()一段时间的初学者来说,这就是解决方案:

将图像变量初始化为:

from PIL import Image
img = Image.new('RGB', [200,200], 0x000000)

如果要操作RGB值,请确保将其初始化为“RGB”。

有时人们会将图片初始化为:

img = Image.new('I', [200, 200], 0x000000)

然后尝试使用RGB不起作用