繁体   English   中英

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

[英]Using putpixel() doesn't write pixel values to image

我在一个图像( srcImage )上使用putpixel ,它是w = 134和h = 454。

这里的代码得到字体的一部分的r,g,b值为0,255,0(我通过调试,使用print选项找到)。

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')

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

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

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

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

将图像变量初始化为:

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

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

有时人们将图像初始化为:

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

然后尝试使用RGB值,这不起作用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM