Python实现截图翻译
1、程序功能:
能够实现截图后自动进行翻译
程序界面如图
可以支持中英互译,翻译结果下图
2、思路
1、获取键盘监听事件
监听用户的键盘按下操作是否触发了我们定义的快捷键
2、抓取截屏区域
借助QQ的截屏快捷键:Ctrl+alt+a 抓取用户选好的截屏区域并且保存。
3、文字识别
对已经保存的图片进行文字识别,提取图片内的文字信息
4、翻译
将提取出来的文字进行自动翻译并且返回翻译结果
3、调用百度aip进行文字识别
1、获取 AppID API Key Secret Key
进入网址: 添加链接描述
选择文字识别
创建应用
2、将获取的AppID,APIKey,SecretKey 放入代码
APP_ID = ' 已经获取的AppID'
API_KEY = '已经获取的API Key'
SECRET_KEY = '已经获取的 Secre Key'
aipocr = AipOcr(APP_ID, API_KEY, SECRET_KEY)
4、接入有道翻译
将百度得到的文字识别接入有道翻译
网址如下:
添加链接描述
5、代码展示
1、导入库
import keyboard #监听键盘
from PIL import ImageGrab #图片抓取
import os #操作系统
from aip import AipOcr #文字识别
import requests #发动自动翻译请求
import time #线程控制工具
2、获取键盘监听事件
监听用户的键盘按下的快捷键是否触发了我们定义的快捷键
keyboard.wait("Ctrl+alt+a")
print("截屏开始")
keyboard.wait("enter")
print("截屏结束")
time.sleep(0.1)
3、保存截屏图片
抓取用户选择好的截屏区域,保存为图片
image = ImageGrab.grabclipboard()#抓取剪切板内容
image.save('img.png')
4、文字识别
对于保存的图片进行文字识别,提取图片中的文字信息
APP_ID = ' 已经获取的AppID'
API_KEY = '已经获取的API Key'
SECRET_KEY = '已经获取的 Secre Key'
aipocr = AipOcr(APP_ID, API_KEY, SECRET_KEY)
with open('img.png', 'rb') as f:
img = f.read()
result = aipocr.basicAccurate(img)
words_result = result['words_result']
for r in words_result: #遍历结果
words = r['words']
print("文字识别结果:" + words)
5、翻译
将提取出来的文字信息进行翻译
url = "http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=" + words
resp_json = requests.get(url).json()
translateResult = resp_json['translateResult']
for t in translateResult:
tgt = t[0]['tgt']
print('自动翻译结果:' + tgt)
6、将写好的.py文件转化为可执行的exe文件
1、在pycharm打开terminal
2、输入指令 pip install pyinstaller
3、输入指令pyinstaller -F -c 文件名.py
成功转成exe文件,将文件路径复制下来搜索即可找到该文件
7、小结
本文用Python实现了截图翻译功能,注意,截图是基于QQ的截图快捷键,所以使用过程需要登录电脑QQ,在控制键盘监听的代码中,可以修改快捷键设置,如设置为windows的截图快捷键windows+shift+s
程序分享
链接: https://pan.baidu.com/s/1UH-8891hl66Y5oEssaMIMA 提取码: tbqv 复制这段内容后打开百度网盘手机App,操作更方便哦