![](/img/trans.png)
[英]I got float RGB values, but PIL method 'putpixel' doesn't accept float type numbers
[英]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)
。 它应该工作相同,但它更快。 这里的pixels
是image.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.