所以我记得以前做过这件事,愚蠢的是我再也找不到我的代码了。我从png中提取数组,如下所示:
from PIL import Image, ImageDraw
im = Image.open('img1.png', 'r')
width, height = im.size
val= list(im.getdata())
但我想手动更改一些像素。
val[100] = (0,255,0,255)
我认为之前有一种方法可以简单地使用更新的列表再次创建图像。我找到了"Image.fromarray((",但它想要一个数组而不是列表,我无法让它工作。
我确信,以前,这很容易,而且有一些方法可以编辑列表中的单个像素,并使用img.save("editedimg.png")
有人知道我需要用什么吗?我真的很感激你的帮助,下次我会备份我的代码!🦄
这是一个非常好的问题。让我帮你回答。
我终于找到了这个。
您需要"putdata(("函数。在更改val列表后添加这些行:
im2 = Image.new(im.mode, im.size)
im2.putdata(val)
im2.save('new.png')