如何在python中使用PIL将像素数组直接转换为图像



所以我记得以前做过这件事,愚蠢的是我再也找不到我的代码了。我从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')

相关内容

  • 没有找到相关文章

最新更新