gpt4 book ai didi

python - 如何将 Canvas 内容转换为图像?

转载 作者:IT老高 更新时间:2023-10-28 21:08:22 35 4
gpt4 key购买 nike

from Tkinter import *
root = Tk()
cv = Canvas(root)
cv.create_rectangle(10,10,50,50)
cv.pack()
root.mainloop()

我想将 Canvas 内容转换为位图或其他图像,然后进行其他操作,例如旋转或缩放图像,或更改其坐标。

如果我不再绘图,位图可以提高显示效率。

我该怎么办?

最佳答案

我找到了一种非常有用的方法。为此,您需要 PIL 模块。代码如下:

from PIL import ImageGrab

def getter(widget):
x=root.winfo_rootx()+widget.winfo_x()
y=root.winfo_rooty()+widget.winfo_y()
x1=x+widget.winfo_width()
y1=y+widget.winfo_height()
ImageGrab.grab().crop((x,y,x1,y1)).save("file path here")

它的作用是将小部件名称传递给函数。命令 root.winfo_rootx()root.winfo_rooty() 获取整个 root 窗口左上角的像素位置。

然后,添加widget.winfo_x()widget.winfo_y(),基本上就是得到widget左上角像素的像素坐标您要捕获的内容(在屏幕的像素 (x,y) 处)。

然后我找到了 (x1,y1),它是小部件的左下角像素。 ImageGrab.grab() 制作了一个打印屏幕,然后我裁剪它以仅获取包含小部件的位。虽然不完美,也不会制作出最好的图像,但它是一个很好的工具,可以获取任何小部件的图像并保存它。

如果您有任何问题,请发表评论!希望这有帮助!

关于python - 如何将 Canvas 内容转换为图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9886274/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com