python+tkinter+pyautogui 自制截屏软件

目标:虽然类似QQ等软件带有截屏功能,但还是感觉自造的好

使用说明:将以下代码保存为如:截屏.pyw    并发送到 桌面快捷方式  然后修改快捷方式的属性 增加快捷键。

现在可以用快捷键启动脚本截屏了。

然而:win10自带的  “Win+Shift+S”组合键便可进入截屏模式

代码:

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import tkinter as tk
import pyautogui

root = tk.Tk()
root.overrideredirect(True)         # 隐藏窗口的标题栏
# root.attributes("-alpha", 0.3)    # 窗口透明度70 %
root.attributes("-alpha", 0.4)      # 窗口透明度60 %
#root.geometry("300x200+10+10")      # 设置窗口大小与位置
root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight()))
root.configure(bg="blue")

#当工具条
canvas = tk.Canvas(root)
canvas.configure(width=300)
canvas.configure(height=100)
canvas.configure(bg="yellow")
canvas.configure(highlightthickness=0)  # 高亮厚度
canvas.place(x=(root.winfo_screenwidth()-500),y=(root.winfo_screenheight()-300))
canvas.create_text(150, 50,font=‘Arial -20 bold‘,text=‘ESC退出,假装工具条‘)

# 再创建1个Canvas用于圈选
cv = tk.Canvas(root)
x, y = 0, 0
xstart,ystart = 0 ,0

def move(event):
    global x, y ,xstart,ystart
    new_x = (event.x-x)+canvas.winfo_x()
    new_y = (event.y-y)+canvas.winfo_y()
    s = "300x200+" + str(new_x)+"+" + str(new_y)
    canvas.place(x = new_x - xstart,y = new_y -ystart)
    print("s = ", s)
    print(root.winfo_x(), root.winfo_y())
    print(event.x, event.y)

#鼠标左键按下
def button_1(event):
    global x, y ,xstart,ystart
    x, y = event.x, event.y
    xstart,ystart = event.x, event.y
    print("event.x, event.y = ", event.x, event.y)
    xstart,ystart = event.x, event.y
    cv.configure(height=1)
    cv.configure(width=1)
    cv.place(x=event.x, y=event.y)

#鼠标左键按下并移动
def b1_Motion(event):
    global x, y
    x, y = event.x, event.y
    print("event.x, event.y = ", event.x, event.y)
    cv.configure(height = event.y - ystart)
    cv.configure(width = event.x - xstart)

#鼠标左键松开
def buttonRelease_1(event):
    global x, y,xstart,ystart
    x, y = event.x, event.y
    print("event.x, event.y = ", event.x, event.y)
    Pstart=[0,0]
    cv.place_forget()
    img = pyautogui.screenshot(region=[xstart,ystart,x-xstart,y-ystart]) # x,y,w,h
    img.save(‘screenshot.png‘)

 # 退出
def sys_out(even):
    #from tkinter import messagebox
    #if messagebox.askokcancel(‘Exit‘,‘Confirm to exit?‘):
    root.destroy()

# 绑定事件
canvas.bind("<B1-Motion>", move)
# 绑定事件到Esc键,当按下Esc键就会调用sys_out函数,弹出对话框
root.bind(‘<Escape>‘,sys_out)
root.bind("<Button-1>", button_1)
root.bind("<B1-Motion>", b1_Motion)
root.bind("<ButtonRelease-1>", buttonRelease_1)
root.mainloop()

原文地址:https://www.cnblogs.com/pu369/p/12700781.html

时间: 2024-10-28 09:48:45

python+tkinter+pyautogui 自制截屏软件的相关文章

ubuntu系统使用之6:截屏软件KSnapshot

KSnapshot是KDE集成桌面环境自带的截图工具,不过在GNOME集成桌面环境下也可以安装和使用它.可以使用apt-get命令来安装它.假设使用命令行方式来安装,打开一个GNOME终端窗口,在终端窗口中输入如下命令: 1) sudo apt-get install ksnapshot 命令执行后,将在线下载并安装KSnapshot.安装完毕后,在菜单"应用程序"→"图像"下找到"KSnapshot"项,即可使用这个功能强大的截屏软件了 2)K

Snipaste强大离线/在线截屏软件的下载、安装和使用

步骤一: https://zh.snipaste.com/  ,去此官网下载. 步骤二:由于此是个绿色软件,直接解压即可. 步骤三:使用,见官网.ttps://zh.snipaste.com  按F1开始截屏 感谢下面哥的精彩微信文章 http://mp.weixin.qq.com/s?__biz=MzIwNzYwODYwMw==&mid=2247483903&idx=1&sn=02121fe920320bbe7b2fae012a18e70a&chksm=970e8f8ba

用C#实现的小截屏软件

第一次写博客,文笔较差,将就看吧 日常生活中会经常使用到截屏功能,使用最多的无非就是Windows自带的截图工具.QQ截图和PrintScreen键,但要达到截图到word或保存到文件,需要鼠标选择多次.比如我们想截图并将图插入到Word中,不需要保存图片,我们希望直接点击截图按钮,选择截图区域,Ctrl+V简单三步就行了(感觉说了好多废话),切入正题. 1.基本功能 选择屏幕区域后提醒你保存所截的图片,或直接将所截图片放到剪切板里(以便用Ctrl+V粘贴). 2.界面设计 界面很简单,无非就是

团队软件开发_基于windows下截屏软件关于NABC框架的特点

经过我们小组数次的激烈讨论,就自己的能力和时间而言,我们小组的初步的计划是开发一款基于windows下的截图软件. 关于这个软件的功能,我们初步的想法如下: 1.能在windows下后台运行,有相应的快捷键,以便随时随地的截取用户所需要的信息: 2.在截屏开始钱前有一个关于形状的选择(如矩形,圆形等),当然,还有我们小组自认为比较好的随意形状的截图: 3.当随意形状截屏时,此软件还有磁性吸附轮廓的功能,以避免鼠标使用时截屏的轮廓不合理情况:

Python Tkinter 学习成果:点歌软件music

笔者工作业余时间也没什么爱好,社交圈子也小,主要娱乐就是背着自己带电瓶的卖唱音响到住地附近找个人多的位置唱唱KtV. 硬件上点歌就用笔记本电脑,歌曲都是网上下载的mkv格式的含有两个音轨的视频.因此点歌软件成了笔者的需求. 点歌软件需求极简单: 读磁盘上的目录取全部music,双击则调用播放器播放music. 自己常唱的歌曲可以选到自选歌曲列表. 支持按简拼搜索music 之前已经用多种开发工具写过,这次逢学习python的机会用它再写一个python版. 软件界面如下: 双击启动播放器. 就代

IMAC双系统WIN下截屏快捷键

一.Mac下有自带的截图功能 新Mac用户根本不必麻烦去寻找截屏软件,默认快捷键是 全屏幕截图:Command+Shift+3 区域截图:Command+Shift+4 随后按 Space(空格) 可以选定窗口截图 Mac下屏幕快照快捷键可以自定义设置: 系统偏好设置——键盘——键盘快捷键 Mac下截图默认保存在桌面上,格式为PNG: 二.苹果电脑在Win系统中,由于Macbook键盘上是没有Print Screen按键的 大家可以用如下方法截图: 全屏截图:fn+shift+F11 窗口截图:

如何在Windows7下截屏。

看到大家经常用手机拍电脑桌面,当然这不是不可以,但是电脑本身自己就有截屏的操作,为什么还要用手机拍照呢?手机拍照的缺点:一.上班用手机拍照,心里是不是有点慌?怕被抓住?二.手机拍照,手机像素先不论,一般拍的也不清楚,有的时候还会出现残影,看你照片的人眼睛都瞎了呢.三.用手机拍照会让人认为是电脑小白,因此要高端起来.希望大家心里能有个Balance.以上纯属个人观点,欢迎指正交流. 那么如何截屏呢?截屏首推截屏软件,这个话自行百度即可.(像自带截屏功能的QQ等也算在里面)如果不能装软件的话,也有办

Python写一个像QQ可快捷键唤起区域截屏的应用

1.截屏应用功能拆解 先把要实现哪些功能罗列一下,功能拆解好了,程序设计时就比较清晰. 1).首先要能响应快捷键调起截屏程序,像QQ使用Ctrl+shift+B可以截屏一样: 2).然后就是截图功能,可以用鼠标选取截取的区域: 3).最后是要把截屏保存为本地图片. 2.做一下技术调研 功能拆解出来了,就开始调查下实现难度,有没有现成的第三方库可用,Python是出了名的库多,多找一找总会找到的. 搜寻了一下Python有截图功能的库,基本都是全屏截图和程序输入坐标来区域截图,没办法用鼠标选择可视

自己制作精美的App Store 软件截屏

当用户搜索到App的时候,一般都会先看截图,如果截图效果不好,可能用户就不会下载. 不想自己辛苦写的认为还不错的软件,因为截图的原因,而降低了很多下载量吧. 轻轻松松做出这样高大上的截屏效果来. Screenshot Maker Pro (iOS – Free to Try) Promotee (OSX – $4.99 USD) PlaceIt (Website – Free/Paid) Adobe Photoshop CC (OSX/PC – Free Trial/$9.99-$19.99 p