2011-01-30 2 views
1

Я хотел бы иметь возможность изменять цвет отдельных пикселей внутри виджета холста Tkinter.Манипулирование отдельными цветами пикселей в виджете Tkinter Canvas

Моя первая попытка в этом, я создал много объектов линии и заставил их действовать как пиксели.

self.Ca мой холст виджет

фрагмент кода:

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, быстро падает.

Есть ли лучший способ?

ответ

1

Вместо того, чтобы использовать холст, начните с чистого изображения соответствующего размера. Вы можете легко манипулировать отдельными пикселями в изображении, хотя вы теряете возможность рисовать объекты, такие как линии, круги и т. Д.

Нижняя линия заключается в том, что холст не предназначен для работы с отдельными пикселями.

0

Вы также можете работать с прямоугольниками ... нарисовать прямоугольник на пиксельной х, у

canvas.create_rectangle(x,y,x+1,y+1,fill="red") 

Но, конечно, это не самый эффективный ...