在Tkinter Canvas小部件中处理单个像素颜色

时间:2011-01-30 09:30:23

标签: python tkinter widget tkinter-canvas

我希望能够在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大得多,性能迅速下降。

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

不是使用画布,而是从适当大小的空白图像开始。您可以非常轻松地操作图像中的单个像素,但是您无法绘制线条,圆圈等对象。

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

答案 1 :(得分:0)

您也可以使用矩形...在像素x,y

上绘制一个矩形
canvas.create_rectangle(x,y,x+1,y+1,fill="red")

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