百度API OCR小工具

一直在写东西 , 有时候会遇到这种需求 , 就是把图片上的文字拷贝到自己的文章中 , 所以写了这个小工具 。

百度API OCR小工具

文章插图
 
配合Snipaste使用天衣无缝 , 所有的东西都在剪切板里交换 , 即Snipaste截取的图片在剪切板里面 , OCR直接识别后生成的文字也在剪切板里面 , 只要在ctrl+v就可以复制到文章里面了 。
百度API OCR小工具

文章插图
 
Snipaste 截图的快捷键是Ctrl+Q,设置这个OCR的快捷键为Ctrl+shift+O 。
百度API OCR小工具

文章插图
 
通过白嫖百度API的文字识别功能 , 具体可以参照百度API 。
百度API OCR小工具

文章插图
 
直接上程序
# encoding:utf-8import requestsimport base64from PIL import Imagefrom PIL import ImageGrabimport pyperclipfrom io import BytesIOimport sysimport win32clipboard as wimport win32con'''通用文字识别(高精度版)'''request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"# 二进制方式打开图片文件def get_token():# client_id 为官网获取的AK ,  client_secret 为官网获取的SKhost = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=xxxxxxxxxx&client_secret=xxxxxxxxxxxxxxxx'response = requests.get(host)if response:return response.json()['access_token']def encode_image_from_clip():picture_format = 'png'image = ImageGrab.grabclipboard()if not isinstance(image, Image.Image):# tkinter.messagebox.showinfo("picture2base64", "not a image in clipboard.")print("not a image in clipboard.")sys.exit(1)img_buffer = BytesIO()image.save(img_buffer, format=picture_format, optimize=True, quality=40)byte_data = https://www.isolves.com/it/cxkf/bk/2021-08-30/img_buffer.getvalue()base64_byte = base64.b64encode(byte_data)return base64_bytedef setClipboard(Str):w.OpenClipboard()w.EmptyClipboard()w.SetClipboardData(win32con.CF_UNICODETEXT, Str)w.CloseClipboard()img = encode_image_from_clip()params = {"image":img}access_token = get_token()request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'Application/x-www-form-urlencoded'}response = requests.post(request_url, data=params, headers=headers)if response: results = response.json()['words_result']results_display = ''for result in results: results_display = results_display + result['words'] + 'n' print(results_display)setClipboard(results_display)然后通过pyinstaller 打包成exe就可以了 。

【百度API OCR小工具】


    推荐阅读