1

我希望能够更改 Tkinter 画布小部件中单个像素的颜色。

我的第一次尝试是,我创建了许多线条对象并将它们用作像素。

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 大得多后,性能迅速下降。

有没有更好的办法?

4

2 回答 2

1

不要使用画布,而是从适当大小的空白图像开始。你可以很容易地操纵图像中的单个像素,尽管你失去了绘制线条、圆圈等对象的能力。

底线是画布不是为处理单个像素而设计的。

于 2011-01-30T20:53:09.187 回答
0

您还可以使用矩形...在像素 x,y 上绘制矩形

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

但当然它不是最有效的......

于 2017-09-08T20:43:41.630 回答