今天教大家利用 10 行 Python 代码制作一个翻屏软件,随处翻译,高效办公。
首先,我们使用 PIL 依赖库剪切板读取图片,然后下载到本地。
#安装PIL依赖
#从剪切板读取图片
img = ImageGrab.grabclipboard()
#保存到本地
image_result = './temp.png'
img.save(image_result)
接着,使用 pytesseract 依赖库的 OCR 功能,识别图片中的英文内容。
#OCR识别
#识别图片中的英文
content_eng = pytesseract.image_to_string(Image.open(image_result), lang='eng')
然后,就是翻译上面识别的英文内容了。
为了保证英文翻译的准确性,这里利用 Google 翻译的简易依赖库:googletrans
#翻译
#Google翻译
translator = Translator(service_urls=['translate.google.cn'])
#翻译成中文
content_chinese = translator.translate(content_eng, src='en', dest='zh-cn').text
最后,使用 Python 自带的 GUI tkinker,将识别后的中文显示出来。
#初始化
root = Tk()
root.withdraw()
#显示翻译后的结果,以对话框的形式
tkinter.messagebox.showinfo('翻译结果', content_chinese)
完整代码:
import tkinter.messagebox
from tkinter import *
import pytesseract
from PIL import Image
from PIL import ImageGrab
from googletrans import Translator
#1、从剪切板获取图片,保存到本地
img = ImageGrab.grabclipboard()
#if img and isinstance(img, Image.Image):
image_result = './test.png'
img.save(image_result)
#2、OCR识别
content_eng = pytesseract.image_to_string(Image.open(image_result), lang='eng')
translator = Translator(service_urls=['translate.google.cn'])
content_chinese = translator.translate(content_eng, src='en', dest='zh-cn').text
#4、显示
root = Tk()
root.withdraw()
tkinter.messagebox.showinfo('翻译结果', content_chinese)
注意:PIL 只支持Python 2, 在python 3 中安装pillow来代替PIL。