'tuple'对象不支持项目分配

dgamma3:

我正在使用PIL库。

我正在尝试使图像看起来更红,这就是我所得到的。

from PIL import Image
image = Image.open('balloon.jpg')
pixels = list(image.getdata())
for pixel in pixels: 
    pixel[0] = pixel[0] + 20    
image.putdata(pixels)
image.save('new.bmp')

但是我得到这个错误: TypeError: 'tuple' object does not support item assignment

彼得·维克托林(Petr Viktorin):

PIL像素是元组,并且元组是不可变的。您需要构造一个新的元组。因此,代替for循环,请执行以下操作:

pixels = [(pixel[0] + 20, pixel[1], pixel[2]) for pixel in pixels]
image.putdata(pixels)

同样,如果像素已经太红,则加20将使该值溢出。您可能想要类似min(pixel[0] + 20, 255)int(255 * (pixel[0] / 255.) ** 0.9)代替的东西pixel[0] + 20

并且,为了能够处理许多不同格式image = image.convert("RGB")的图像,请在打开图像后再进行操作。转换方法将确保像素是始终(R,G,B)的元组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何修复:TypeError'tuple'对象不支持项目分配

在交换 array[i] = array[j] TypeError: 'tuple' 对象不支持项目分配

TypeError:交换值时,“ tuple”对象不支持项目分配

列表元组的突变获取“'tuple'对象不支持项目分配”

我在spyder上看到“ TypeError:'tuple'对象不支持项目分配”

在 Dict 上随机运行 del 命令会导致“del TypeError:‘tuple’对象不支持删除项目”

对象不支持项目分配错误

“'str'对象不支持项目分配”

“方法”对象不支持项目分配

TypeError:“ int”对象不支持项目分配错误

TypeError /数组索引;'int'对象不支持项目分配

错误:“str”对象不支持项目分配

Python Azure Databrick:“ DataFrame”对象不支持项目分配

Python 脚本... TypeError: 'method' 对象不支持项目分配

bluedata mlops 预测 - “NoneType”对象不支持项目分配

TypeError:“ NodeView”对象不支持项目分配-NetworkX

TypeError:'Tensor'对象不支持TensorFlow中的项目分配

TypeError:“范围”对象不支持项目分配

'str'对象不支持Python中的项目分配

'str'对象不支持Python中的项目分配

Python TypeError:“类型”对象不支持项目分配

'numpy.float64' 对象不支持项目分配

'str'对象不支持项目分配telnetlib

Python,TypeError:“ int”对象不支持项目分配”

错误:“浮动”对象不支持项目分配

Python:TypeError:'int' 对象不支持 MinMaxScaler 的项目分配

Python:TypeError:“ str”对象不支持项目分配

Word2VecKeyedVectors对象不支持项目分配

TypeError:'str'对象不支持项目分配,熊猫操作