簡體   English   中英

如何在python中使用PIL直接將像素數組轉換為圖像?

[英]How do I directly turn an array of pixels into an image with PIL in python?

所以我記得以前這樣做過,愚蠢的是我再也找不到我的代碼了。 我從一個 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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM