Python:用tkinter写一个截图程序
本帖最后由 Ewan-Ahiouy 于 2024-2-4 20:02 编辑前情提要
大家好!我是EA!{:10_298:}
距离我接手了{:10_305:} 这个求贤令之后,已经过去了有6个月的时间{:10_284:}
鸽了有6个月啊!{:10_247:}
(学业紧张时间有限啊......{:10_266:} )
终于...到寒假啦!!!{:10_298:}
到了寒假,时间多了起来,终于终于,在今天,写好了!{:10_298:}
虽然......有一些功能我实在是实现不了......(长截图啊啊啊啊啊){:10_255:}
但是还是决定发出去交个差{:10_278:}
毕竟鸽了太久太久了...{:10_283:}
虽然没有长截图,但是其他功能已经完成啦!{:10_256:}
如果你喜欢的话,可以动动发财的小手,给这篇帖子一点评分哦~{:10_264:}
谢谢啦~
注:代码的长截图的那个按钮,实际的功能其实和自定义截图一样的{:10_256:}
正文
解释一下代码原理{:10_305:}
全屏截图
就是PIL模块获取全屏的图片,然后保存就可以了。
# 获取窗口图片
img = ImageGrab.grab()
# 获取文件保存位置
fileName = filedialog.asksaveasfilename()
# 未保存
if not fileName:
return
if ".jpg" not in fileName:
fileName += ".jpg"
# 保存图片
img.save(fileName)
# 展示图片
img.show()
自定义截图
这个就有一点复杂了{:10_272:}
我还借鉴了一点点小甲鱼老师的代码{:10_252:}
小甲鱼老师不会介意吧{:10_329:}
我的办法是:
按下按钮后,把窗口的所有组件全部隐藏,然后全屏并设置为半透明。
之后,检测是否按下鼠标。按下时,记住坐标。
然后,检测拖动。拖动时,会出现一个矩形,可以显示截图的区域,且中间会显示大小。(借鉴小甲鱼老师的录屏程序{:5_109:} )
待到鼠标弹起,记住坐标,获取窗口的全截屏,然后把选择的区域裁出来,再保存。
最后窗口、组件恢复原样,OK!{:5_95:}
以下是实现代码,回复获取哦{:10_305:}
PS:(原本还想放几张截图的,结果发现不行{:10_266:} )
代码实现
**** Hidden Message *****
程序界面
挺简洁的吧{:10_327:}
结束语
这就是我写出的截图程序了{:10_279:}
如果大家觉得有用,还请评分,谢谢啦{:10_281:}
球球啦!{:9_221:}
谢谢大家支持!开森{:5_109:} AT区:@python爱好者. @zhangjinxuan @学习编程中的Ben @liuhongrun2022 @sfqxx @cjjJasonchen @小甲鱼 @python爱好者. @歌者文明清理员
求支持,谢谢~{:5_109:} 很不错啊{:5_106:} liuhongrun2022 发表于 2024-2-3 14:17
很不错啊
谢谢~{:10_297:} 总有这种人才{:10_243:} 某一个“天” 发表于 2024-2-3 14:20
总有这种人才
{:9_241:}啥意思 Ewan-Ahiouy 发表于 2024-2-3 14:21
啥意思
羡慕嫉妒恨 写出来了?!我还以为你跑了{:10_256:}
陶远航 发表于 2024-2-3 14:25
写出来了?!我还以为你跑了
刚进入初中学业紧张...{:10_299:}
到了寒假有时间啦~{:10_298:} {:10_277:}{:10_256:} 为啥没有@我? {:5_106:} 终于来啦{:10_254:} zhangchenyvn 发表于 2024-2-3 16:01
为啥没有@我?
因为他刚回来,不认识你 {:5_107:} Ewan-Ahiouy 发表于 2024-2-3 14:21
啥意思
就是夸你厉害的意思 @yinda_peng @sfqxx_小 @cjjJasonchen 不错呀! zhangchenyvn 发表于 2024-2-3 16:01
为啥没有@我?
加个好友~{:10_311:} 日出之前 发表于 2024-2-3 18:07
就是夸你厉害的意思
{:10_278:}