python-3.x - 获取 tkinter Canvas 的像素颜色

标签 python-3.x colors get tkinter pixel

我希望能够创建 Tkinter Canvas 并与之交互,并且在任何时候都能够迭代它的每个像素并获取它们的 RGB 值。 不需要逐个像素地设置,只是获取。但是,类似于 Canvas 的 create_polygon()、create_line()、create_text() 和 create_oval() 的方法也必须可用,以便与整体图像进行交互。

有很多限制:

  • 必须使用 Python 3
  • 必须使用 Linux、Mac 和 Windows
  • 必须使用 Python 附带的库(无需下载)

第二个限制主要是我在 getting the color of pixels on the screen in Python3.x 时发布这个问题的原因。以及其他几个类似的问题已经存在。

如果这是不可能的,我能得到的最接近的是什么?

最佳答案

尝试一下。但是很慢:/

from util.color import Color


class ImageUtils:

    @staticmethod
    def get_pixels_of(canvas):
        width = int(canvas["width"])
        height = int(canvas["height"])
        colors = []

        for x in range(width):
            column = []
            for y in range(height):
                column.append(ImageUtils.get_pixel_color(canvas, x, y))
            colors.append(column)

        return colors

    @staticmethod
    def get_pixel_color(canvas, x, y):
        ids = canvas.find_overlapping(x, y, x, y)

        if len(ids) > 0:
            index = ids[-1]
            color = canvas.itemcget(index, "fill")
            color = color.upper()
            if color != '':
                return Color[color.upper()]

        return "WHITE"

关于python-3.x - 获取 tkinter Canvas 的像素颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28014347/

相关文章:

python - 删除 Pandas DataFrame 中的每 n 列

java - 如何更改 JTable 中文本段落的颜色?

css - 更改显示标题的字体颜色

java - 使用 Java 套接字获取请求

c++ - QT:没有百分比编码的 QUrl

python - Django - 在管理界面中向内联表单添加一个额外字段

python - 如何在Python中仅获取最近2天的文章?

拆分字符串并解压缩为变量的 Pythonic 方法?

vim - 如何保持vim的折叠线​​突出显示为段落第一行的语法

java - HttpUrlConnection Get 方法返回状态代码 405