当前位置: 首页 > news >正文

实时翻译屏幕插件

程序插件的功能是:点击按钮,将获取屏幕截图,然后翻译输出图片。(目前只支持翻译英语)

要实现这个功能,我们可以使用Python编程语言,结合一些库来完成。以下是一个简单的实现方案:

  1. 使用pywin32库创建置顶窗口并添加按钮。
  2. 使用pyautogui库获取屏幕截图。
  3. 使用opencv-python库进行图片处理。
  4. 使用pytesseract库识别截图中的英语文字。
  5. 使用googletrans库将英语翻译成中文。
  6. 使用PIL库将翻译后的中文添加到截图上,并在屏幕上显示。

首先,请确保已安装所需库:

pip install pywin32 pyautogui opencv-python pytesseract googletrans==4.0.0-rc1 pillow

 然后,您可以使用以下代码实现插件功能:

import cv2
import pytesseract
from googletrans import Translator
from PIL import Image
import pyautogui
import win32gui
import win32con
import win32ui
from ctypes import windll
import sys
import osdef create_top_button():wnd = win32gui.CreateWindowEx(win32con.WS_EX_TOPMOST,win32gui.RegisterClass(win32gui.WNDCLASS()),'Translate Button',win32con.WS_OVERLAPPEDWINDOW | win32con.WS_VISIBLE,100,100,150,50,None,None,win32gui.GetModuleHandle(None),None)btn_translate = win32gui.CreateWindow('BUTTON','Translate',win32con.WS_CHILD | win32con.WS_VISIBLE,30,10,80,25,wnd,1000,win32gui.GetModuleHandle(None),None)def on_click(hwnd, msg, wparam, lparam):if wparam == 1000:capture_and_translate()win32gui.SetWindowLong(wnd, win32con.GWL_WNDPROC, on_click)win32gui.ShowWindow(wnd, win32con.SW_SHOW)win32gui.UpdateWindow(wnd)win32gui.PumpMessages()def capture_and_translate():screenshot = pyautogui.screenshot()screenshot.save('screenshot.png')img = cv2.imread('screenshot.png')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)text = pytesseract.image_to_string(gray, lang='eng')translator = Translator(service_urls=['translate.google.com'])translated_text = translator.translate(text, dest='zh-CN').textimg_pil = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))draw = ImageDraw.Draw(img_pil)draw.text((10, 10), translated_text, font=ImageFont.truetype('arial.ttf', 20), fill=(0, 0, 255, 0))img_pil.show()os.remove('screenshot.png')if __name__ == '__main__':pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'  # 请根据您的tesseract安装路径进行修改create_top_button()

注意:请确保将tesseract_cmd变量设置为Tesseract-OCR安装 在您的系统上的正确路径。运行此代码后,将在屏幕上创建一个置顶的“Translate”按钮。当您点击此按钮时,代码将执行以下操作:

  1. 使用pyautogui库获取屏幕截图并将其保存为screenshot.png
  2. 使用opencv-python库将截图转换为灰度图像以优化文字识别。
  3. 使用pytesseract库识别截图中的英语文字。
  4. 使用googletrans库将英语文字翻译成中文。
  5. 使用PIL库将翻译后的中文文本添加到截图上,并显示。

当不再需要插件时,可以通过关闭“Translate Button”窗口来终止程序。此代码仅提供了一个基本实现,还需需要对其进行优化和完善。

http://www.lryc.cn/news/48348.html

相关文章:

  • 代码随想录算法训练营第二天| 977,209,59
  • echarts 地图板块点击着色,移除着色
  • Visual Studio Code (vscode)自定义用户代码段快速打出for循环等
  • RocketMQ客户端配置详解
  • STM32基于STM32CubeMX DMA + EXTI读取DS1307数据
  • C#中的枚举器和迭代器
  • 中山大学人工智能学院——考研上岸经验贴
  • ThreeJS-圣诞节表白3D贺卡(三十)
  • 040:cesium加载World Terrain地形图
  • 逻辑运算和位移指令
  • 大家现在都去做Linux运维了吗?
  • Webpack的编译流程是怎么样的?webpack是如何工作的?
  • 【ZOJ 1151】Word Reversal 题解(字符串+模拟)
  • Dart语言操作符?和!的用法
  • 聚类 kmeans | 机器学习
  • 求职咨询Job Information
  • 怎么去除pdf文件的水印?好用软件说明
  • 1-ELK+ Elasticsearch+head+kibana、企业内部日志分析系统
  • ctfshow愚人杯web复现
  • 商品推荐Promoting Products
  • 整懵了,蚂蚁金服4面成功拿下测开offer,涨薪6k,突然觉得跳槽也不是那么难
  • 《扬帆优配》个人养老金投资最新成绩出炉 七成养老FOF跑输基准
  • 用Qt编写STM32烧录软件(ISP模式)代码
  • Excel技能之美观排版
  • 兆芯最新X86 CPU曝光:性能与英特尔/AMD相比,没落后10年
  • 【Go自学】一文搞懂Go的strconv模块
  • SpringBoot整合Admin服务监控(图文详细)
  • 设计模式-结构型模式-组合模式
  • VScode开发工具总结
  • opencv 解码视频流,c++ 代码写法