一直在写东西 , 有时候会遇到这种需求 , 就是把图片上的文字拷贝到自己的文章中 , 所以写了这个小工具 。
文章插图
配合Snipaste使用天衣无缝 , 所有的东西都在剪切板里交换 , 即Snipaste截取的图片在剪切板里面 , OCR直接识别后生成的文字也在剪切板里面 , 只要在ctrl+v就可以复制到文章里面了 。
文章插图
Snipaste 截图的快捷键是Ctrl+Q,设置这个OCR的快捷键为Ctrl+shift+O 。
文章插图
通过白嫖百度API的文字识别功能 , 具体可以参照百度API 。
文章插图
直接上程序
# 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小工具】
推荐阅读
- 收藏多年的MySQL函数大全笔记,用到的时候翻一下,百度都省了
- HTML5 标签大全笔记,用到的时候翻一下,百度都省了
- 澶渊之盟百度百科 澶渊之盟的内容和意义
- 百度用seo优化获取流量才是终网站优化的目的
- 使用 Face-api.js 在 Web 上进行人脸检测
- 2021百度网盘无限扩容操作!新手1小时学会
- 百度的精细抠图模型PP-Matting
- 如何设计一个良好的API接口?
- 百度|终于来了!百度获中国首批自动驾驶无人许可 方向盘后可无司机
- SEOer需要将百度蜘蛛抓取时间降低到1秒以下