代码之家  ›  专栏  ›  技术社区  ›  Jack_P

Pillow/PIL Python-仅第一行写入图像

  •  0
  • Jack_P  · 技术社区  · 7 年前

    我试图创建一个柏林噪声应用程序,随机生成游戏地图。我试图写入一个新的图像,但是只写入了第一行。

    这是我创建的一个存根,它显示了相同的问题:

    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")
    

    这次我犯了什么愚蠢的错误?

    2 回复  |  直到 7 年前
        1
  •  0
  •   asanoop24    7 年前

    您必须以以下方式提供像素信息:

    img.putdata([(0,255,0, 255) for x in range(width) for y in range(height)])
    

        2
  •  0
  •   LeopoldVonBuschLight    7 年前

    你需要一个序列来填充整个图像。 putdata

    height = 25
    width = 25
    data = [255 * randint(-1000, 1000) / 100 for x in range(width * height)]
    

    img = Image.new('RGBA', (width, height), color=(255, 255, 255, 255))
    img.putdata(data)
    img.save("location.png", "PNG")