让 Snipaste 支持 OCR
Snipaste 是我最喜欢的截图软件可惜没有 OCR 功能
依赖:Snipaste + Python + baidu-aip + pillow + clipboard + keyboard + chardet
感谢 小小 大佬,本文脚本代码基于此文章修改
百度OCR接口申请不再赘述,请参考自行有关文章
脚本
import time
import keyboard
import clipboard
from aip import AipOcr
from PIL import ImageGrab
# 等待键盘
def wait_keyboard():
keyboard.wait(hotkey="Alt+O")
# 保存剪切板图像
def save_image():
image = ImageGrab.grabclipboard()
image.save(photo)
# 百度Api
def baidu_api(client):
with open(photo, 'rb') as f:
image = f.read()
# 调用百度API通用文字识别(高精度版),提取图片中的内容
return client.basicAccurate(image)
# 解析json
def parsing_json(json):
result = ''
for i in json["words_result"]:
result = result + i["words"] + '\n'
_save_clipboard(result)
# 字符串保存至剪切板
def _save_clipboard(string):
clipboard.copy(string)
# 按压键盘
def press_keyboard():
keyboard.press('F2') # F2 是作者 Snipaste 设置的贴图键,可以将剪切板的文字贴在屏幕上
time.sleep(3)
keyboard.press('Esc')
if __name__ == '__main__':
appid = 'appid'
apikey = 'apikey'
secretkey = 'secretkey'
photo = r'C:\Users\Methanol\Scripts\Public\screen_temp.png'
client = AipOcr(appid, apikey, secretkey)
while True:
wait_keyboard()
save_image()
parsing_json(baidu_api(client))
press_keyboard()

浙公网安备 33010602011771号