鱼C论坛

 找回密码
 立即注册
查看: 1849|回复: 15

[已解决]Tkinter & 截图问题

[复制链接]
发表于 2019-8-31 15:30:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zltzlt 于 2019-8-31 16:26 编辑

请问大家,假设我有一个 Tkinter 窗口,我要用 Python 截取如下图所示的那一块地方并把它保存到一张图片里,该怎么做?


搜狗截图20190831153026.png
最佳答案
2019-8-31 17:55:16
先安装(就用pip就可以了):pip install Pillow
然后导入PIL包中的ImageGrab模块
from PIL import ImageGrab#注意一定是大写
import time
time.sleep(5)#加个倒计时,好退出窗口截图
image = ImageGrab.grab()
image.show()#显示图片
image.save(路径)
#如果不传入参数,grab()默认全屏截图
#传入参数为一个元组
#参数为(左上角x,左上角y,右上角x,右上角y)
#save()指定一个保存路径
(还有一个问题,你必须确定你的tk程序的xy坐标)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-31 16:16:53 | 显示全部楼层
是360浏览器吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-31 16:17:22 | 显示全部楼层

我用的 Google Chrome
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-31 16:23:16 | 显示全部楼层
总共分三步
1 运行程序
2 把浏览器最小化
3 快捷键Shift+Ctrl+X就可以截图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-31 16:23:38 | 显示全部楼层
_2_ 发表于 2019-8-31 16:23
总共分三步
1 运行程序
2 把浏览器最小化

用 Python 截图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-31 17:32:53 | 显示全部楼层

做不到~
(还得啃文档去,好麻烦)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-31 17:39:03 | 显示全部楼层

这次啃文档很顺利
URL:https://baijiahao.baidu.com/s?id=1616570351356996878&wfr=spider&for=pc
(就是有个叫PIL,是Python的一个优秀的图片处理库)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-31 17:39:53 | 显示全部楼层
_2_ 发表于 2019-8-31 17:39
这次啃文档很顺利
URL:https://baijiahao.baidu.com/s?id=1616570351356996878&wfr=spider&for=pc
( ...

我怎么截到中间那块地方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-31 17:55:16 | 显示全部楼层    本楼为最佳答案   
先安装(就用pip就可以了):pip install Pillow
然后导入PIL包中的ImageGrab模块
from PIL import ImageGrab#注意一定是大写
import time
time.sleep(5)#加个倒计时,好退出窗口截图
image = ImageGrab.grab()
image.show()#显示图片
image.save(路径)
#如果不传入参数,grab()默认全屏截图
#传入参数为一个元组
#参数为(左上角x,左上角y,右上角x,右上角y)
#save()指定一个保存路径
(还有一个问题,你必须确定你的tk程序的xy坐标)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-31 17:56:00 | 显示全部楼层
_2_ 发表于 2019-8-31 17:55
先安装(就用pip就可以了):pip install Pillow
然后导入PIL包中的ImageGrab模块

好吧,勉强给你一个最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-31 17:57:14 | 显示全部楼层
zltzlt 发表于 2019-8-31 17:56
好吧,勉强给你一个最佳

我也很无奈啊,毕竟最好的只有这一个了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-31 18:00:46 | 显示全部楼层
zltzlt 发表于 2019-8-31 17:56
好吧,勉强给你一个最佳

可以把它放在tkinter主程序里,画好后直接截图保存,在IDLE上有个反馈就不错了

点评

我很赞同!: 5.0
我很赞同!: 5
  发表于 2019-8-31 18:01
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-31 18:00:58 | 显示全部楼层
_2_ 发表于 2019-8-31 18:00
可以把它放在tkinter主程序里,画好后直接截图保存,在IDLE上有个反馈就不错了

ok
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-31 18:06:36 | 显示全部楼层
from tkinter import *
from PIL import ImageGrab
root=Tk()
w=Canvas(root,height=400,width=400)
w.create_line(100,100,300,300)
w.pack()
def f():
    im=ImageGrab.grab((w.winfo_rootx(),w.winfo_rooty(),w.winfo_rootx()+w.winfo_width(),w.winfo_rooty()+w.winfo_height()))
    im.save('1.png')
Button(root,text='screengrab',command=f).pack()


mainloop()

点评

Thank you very much, too.(机会用完了,不能评分)  发表于 2019-8-31 18:08

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
zltzlt + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-26 10:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表