目录

用到的库

1
2
3
4
5
from pynput import keyboard  #包含控制和监控键盘的类
from PIL import ImageGrab  #用于从剪切板获取图片并保存
from aip import AipOcr  #识别图片中文字接口库
import pyperclip  #用于将文本复制到剪贴板
import time  #基础时间库

创建图片识别函数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
def distinguish():
    #ImageGrab从剪切板读取图片i,可以配合微信QQ快捷键截图使用
    img1 = ImageGrab.grabclipboard()
    # 文件保存的名字
    img_path = '1.png'
    # 保存图片
    img1.save(img_path)
    # 百度api执行所需数据,运行需换成自己的APP_ID,API_KEY,SECRET_KEY
    APP_ID = '23897148'
    API_KEY = 'CwMkZ83NaE05h2wOQKnxZod9'
    SECRET_KEY = 'ZLGaqweSDEuX3DMEYZQ40a1zGXATOdhV'
    # 初始化AipOcr
    aipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    with open(img_path, 'rb') as f:
        img2 = f.read()
    # 识别图片并返回结果
    data = aipOcr.basicAccurate(img2)
    result = ''.join([i['words']+'\n' for i in data['words_result']])
    print(result)
    pyperclip.copy(result)

创建键盘监听函数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def on_press(key):
    # 如果按下了 <Esc> 键,停止监听
    if key == keyboard.Key.esc:
        global is_stopped
        is_stopped = True
        listener.stop()
    elif key == keyboard.Key.ctrl_l:
    #如果按下了 <ctrl_left> 键,读取图片并将复制到剪贴板
        try:
            distinguish()
        except:
            pass

调用函数运行程序

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
if __name__ == '__main__':
    is_stopped = False
    listener = keyboard.Listener(on_press=on_press)
    listener.start()
    print('''
    按下 <ctrl_left> 复制图片文字到剪贴板~
    按下 <esc> 关闭程序~

        ''')
    while True:
        time.sleep(1)
        # 如果停止了监听则退出死循环
        if is_stopped:
            print("程序已退出")
            exit()

脚本下载链接

点击下载脚本