【问题标题】:Manipulating individual pixel colors in the Tkinter Canvas widget在 Tkinter Canvas 小部件中操作单个像素颜色
【发布时间】:2011-01-30 09:30:22
【问题描述】:

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

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

self.Ca 是我的 Canvas 小部件

sn-p:

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

有没有更好的方法?

【问题讨论】:

    标签: python tkinter widget tkinter-canvas


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      但当然不是最有效的……

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-05
        • 2011-06-18
        • 2016-12-27
        • 1970-01-01
        • 1970-01-01
        • 2016-12-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多