【发布时间】:2019-07-04 21:42:03
【问题描述】:
我对 Tkinter Canvas 有疑问,将其保存到图像中,但更重要的是,获取 Tkinter Canvas 的特定像素。我只需要那个特定的 X、Y 坐标,我想要它的颜色值。通过“颜色值”,我可以使用 python 成像库绘制像素的任何值都可以使用。
这是我尝试做的事情:
- 我首先尝试使用 python 图像库的图像抓取类来获取 Canvas 图像,但没有按预期工作。
- 然后我尝试使用“eps”文件将 Tkinter Canvas 转换为图像,但这不起作用,GhostScript 也不起作用。
- 接下来,我搜索了是否有任何方法可以获取 Tkinter 画布上某个坐标处的像素,但无济于事。这就是我发布此内容的地方。
接下来,这是我为第 2 步尝试的代码:
screen = w
@staticmethod
def image():
w.postscript(file=".canvas_script.eps")
img = Image.open(".canvas_script.eps")
return img
# GhostScript Error
预期结果:我的预期结果是获得任何特定点的颜色,或者至少获得可以转换为另一种颜色元组或值的点的颜色。然后,将其绘制在 python 图像库图像上。
实际结果:我在网上研究的时候没有找到解决我问题的方法,文档中也没有找到方法。
如果有人可以帮我从 Tkinter 画布的特定坐标中获取颜色,比如 (0, 0),请执行。谢谢!
【问题讨论】:
-
Tkinter 画布不是由像素组成的 - 它由绘图对象组成,只有当这些对象被渲染到屏幕上时,像素才会发挥作用。导出到 .eps,然后加载该图像,应该可以工作(我想不出任何更直接的方法来获得您想要的像素颜色) - 也许如果您显示了导致的实际错误,而不是无用地说“它不起作用”,我们可以帮助您。
-
我的错误是
OSError: Unable to locate Ghostscript on paths
标签: python python-3.x tkinter python-imaging-library tkinter-canvas