是否可以从画布中获取点(x / y坐标)的颜色(rgb值和透明度)?示例:我在画布上绘制一些图形和文本,之后我想获得特定坐标处的点的颜色。
无论画布是否在屏幕上可见,解决方案都应该是独立的。它应该独立于操作系统。
我没有在网上找到任何解决方案。这就是为什么我认为这是不可能的。我是对的吗?
答案 0 :(得分:2)
画布不是基于像素的,并且不提供用于执行此操作的API。
但是,如果您已安装tkimg软件包,则可以使用该软件包来执行screengrab of the canvas,然后再使用fetch the pixel value。
package require Img
# Get the data into an image
set screengrab [image create photo -format window -data $theCanvas]
# Read the pixel data out of the grabbed image
set pixeldata [$screengrab get $x $y]
# Get rid of the grabbed data once you're done
image delete $screengrab
请注意,相关坐标将是视口坐标,而不是画布内部坐标:如果您已滚动画布,则必须根据需要进行偏移。
答案 1 :(得分:1)
你是对的,tk没有提供任何方法来获取画布上特定像素的颜色。