SaveScreen V1.0更新,界面来了

先给你们看看属性,里面含有打包版。

SaveScreen V1.0更新,界面来了

接下来大家可以看看演示,详见下面的动图

SaveScreen V1.0更新,界面来了

 

 本次更新了

  • 界面(像右键菜单那样)
  • 界面动画(淡入)
  • 启动界面
  • 截图路径区分(按时间,格式为“YYYYMMDD HHMMSS”)

下载

打包版

由于人在学校,没法登录GitHub或者网盘,所以打包版发不了,预计这个周末发

Python版

#运行启动界面必须导入的内容
import win32api,win32con
import tkinter as tk
import tkinter.ttk as ttk
import time
from PIL import Image,ImageTk

#获取屏幕尺寸
scr_w=win32api.GetSystemMetrics(win32con.SM_CXSCREEN)
scr_h=win32api.GetSystemMetrics(win32con.SM_CYSCREEN)

#启动界面
swin=tk.Tk()
swin.geometry('500x200+'+str(int(scr_w/2-500/2))+'+'+str(int(scr_h/2-200/2)))
swin.title('SaveScreen V1.0 (Starting...)')
swin.overrideredirect(True)

img_open = Image.open("./icon4swin.png")
icon_img = ImageTk.PhotoImage(img_open)
tk.Label(swin,image=icon_img).pack(side=tk.LEFT,padx=30)

tk.Label(swin,text='SaveScreen',font=('微软雅黑',40)).pack(fill=tk.X,pady=20)
tk.Label(swin,text='Version 1.0').pack(fill=tk.X)
tk.Label(swin,text='2022 By 人工智障').pack(fill=tk.X)

alpha=0
for i in range(0,50+1):
    swin.attributes('-alpha', alpha)
    alpha+=0.02
    time.sleep(0.02)
    swin.update()

swin.update()#此处只更新一次窗口内容,以免卡死后面的内容

import pyautogui
import cv2
import os
import webbrowser
from system_hotkey import SystemHotkey

nowtime = time.strftime("%Y%m%d %H%M%S", time.localtime()) 

if not os.path.exists("./截图/"): #创建截图目录
    os.mkdir("./截图/")

if not os.path.exists("./截图/"+nowtime+"/"): #创建当前截图目录
    os.mkdir("./截图/"+nowtime+"/")

#图像计数器
img_count=0

#通知
def toast(msg='通知(内容未知)'):
    print(msg)
    

#保存图片的函数
def save_screen(event=''):
    global img_count
    print(event)
    img_count+=1
    img = pyautogui.screenshot(region=[0,0,scr_w,scr_h]) # x,y,w,h
    img.save('./截图/'+nowtime+"/"+str(img_count)+'.png')
    #toaster.show_toast('已保存第 '+str(img_count)+' 张截图', '已保存截图至 '+'./截图/'+str(img_count)+'.png', duration=1)
    toast('已保存第 '+str(img_count)+' 张截图')

def quit(event=''):
    win.destroy()
    exit()

#显示菜单
def menu(event='',middle=False):
    global scr_w,scr_h
    x,y=pyautogui.position()
    win.deiconify()
    if middle:
        pos='200x200+'+str((int((scr_w-200)/2)))+'+'+str((int((scr_h-200)/2)))
    elif not middle:
        pos='200x200+'+str(x+15)+'+'+str(y+15)
    win.geometry(pos)
    alpha=0
    for i in range(0,5+1):
        win.attributes('-alpha', alpha)
        alpha+=0.2
        time.sleep(0.03)
        win.update()


#热键
hk = SystemHotkey()
hk.register(('control', 'alt', 's'), callback=save_screen)

hk_esc = SystemHotkey()
hk_esc.register(('control', 'alt', 'q'), callback=quit)

hk_esc = SystemHotkey()
hk_esc.register(('control', 'alt', 'm'), callback=menu)


time.sleep(1)#等待一秒,让启动界面有点存在感

swin.destroy()#准备工作完成后,销毁启动界面


win=tk.Tk()
win.title('SaveScreen V1.0')
win.overrideredirect(True)
#win.geometry('200x100')

#菜单界面部分
tk.Label(win,text='菜单').pack(fill=tk.X)
tk.Button(text='立即截图(Ctrl+Alt+S)', bg='lightgrey',bd=0, command=save_screen).pack(fill=tk.X)
tk.Button(text='退出(Ctrl+Alt+Q)', bg='lightgrey',bd=0, command=quit).pack(fill=tk.X)
tk.Button(text='隐藏菜单', bg='lightgrey',bd=0, command=win.withdraw).pack(fill=tk.X)
tk.Button(text='显示菜单(Ctrl+Alt+M)', bg='lightgrey',bd=0, command=menu,state=tk.DISABLED).pack(fill=tk.X)
ttk.Separator(win,orient=tk.HORIZONTAL).pack(fill=tk.X)
tk.Button(text='关于作者', bg='lightgrey',bd=0, command=lambda:webbrowser.open("https://www.cnblogs.com/totowang/")).pack(fill=tk.X)
tk.Label(win,text='SaveScreen V1.0',fg='grey').pack(fill=tk.X)
tk.Label(win,text='2022 By 人工智障',fg='grey').pack(fill=tk.X)

menu(middle=True)

#toaster.show_toast('按Ctrl+Alt+S来快速保存截图', '完美!快捷键注册成功!通知消失后就可以按下Ctrl+alt+S来快速保存截图了。(按Ctrl+Alt+Q来退出程序)')
toast('完美!快捷键注册成功!可以按下Ctrl+alt+S来快速保存截图了。(按Ctrl+Alt+Q来退出程序)')

win.mainloop()

 

上一篇:avcodec_decode_video2使用参数picture注意点


下一篇:如何下载浏览器中的flash 视频