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)的元组。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)