Я хочу нарисовать изображение программно. По сути, я говорю о настройке каждого отдельного пикселя как карты изображения, и я хотел бы сделать это с помощью PIL/подушки. Затем я хотел бы отобразить его на экране. Графический интерфейс основан на TKinter.
root = Tk()
root.wm_title("Lands - A world generator")
root.resizable(0,0)
prepare_menu()
canvas = Canvas(root, width=canvas_width, height=canvas_height)
canvas.pack()
root.mainloop()
prepare_menu
устанавливает меню и связывает одну запись с обработчиком событий, который вызывает функцию show_elevation_map
следующим образом:
def show_elevation_map(p, width, height):
hm = platec.get_heightmap(p)
img = PIL.Image.new('RGBA', (width, height))
pixels = img.load()
for y in range(0, height):
for x in range(0, width):
pixels[x, y] = (255, 0, 0, 255)
pi = ImageTk.PhotoImage(img)
sprite = canvas.create_image(100, 100, image=pi)
canvas.update()
Я пробовал так, но я ничего не вижу на экране, в то время как я ожидал увидеть все красным. Что я здесь делаю неправильно?
Спасибо.