Я хотел бы иметь возможность изменять цвет отдельных пикселей внутри виджета холста Tkinter.
Моя первая попытка в этом, я создал много объектов линии и сделал их действовать как пиксели.
self.Ca - мой виджет Canvas
сниппет:
i0 = 0
while i0 < height:
i1 = 0
while i1 < width:
pix = self.Ca.create_line(i1, i0, i1+1, i0, fill=self.Hex, width=1)
self.matrix.append(pix)
i1 = i1 + 1
i0 = i0 + 1
Хотя это работает, он пожирает ресурсы. После того, как виджет получает намного больше, чем производительность 100X100, быстро падает.
Есть ли лучший способ?
Вместо использования холста начните с чистого изображения соответствующего размера. Вы можете легко манипулировать отдельными пикселями в изображении, хотя вы теряете возможность рисовать объекты, такие как линии, круги и т.д.
Нижняя строка заключается в том, что холст не предназначен для работы с отдельными пикселями.
Вы также можете работать с прямоугольниками... рисовать прямоугольник на пикселе x, y
canvas.create_rectangle(x,y,x+1,y+1,fill="red")
Но, конечно, это не самый эффективный...