我試圖創建一個Perlin噪聲應用程序,它隨機生成一個遊戲地圖。我正在嘗試寫入新圖像,但只有第一行正在寫入。Pillow/PIL Python - 只寫入圖像的第一行
這裏是我創建了一個存根表現出了同樣的問題:
from PIL import Image
from random import randint
height = 25
width = 25
z = randint(-1000, 1000)/100
img = Image.new('RGBA', (width, height), color=(255, 255, 255, 255))
for y in range(height):
img.putdata([(0,255,0,255) for x in range(width)]) # Logic error occurs on this line
img.save("location.png", "PNG")
什麼愚蠢的錯誤我在做這個時間呢?
'Image.putdata()'想要整個圖像的數據在一個序列中;它不支持分塊構建圖像。 – jasonharper
你可以用putpixel代替putdata,但這可能會很慢。如果您試圖將圖像的某個區域設置爲相同的值,則可以使用「ImageDraw」模塊的功能,例如, 'ImageDraw.Draw.rectangle()'。 – ahota