截图文字识别工具

截图文字识别工具tkinter程序源码:初识Python,如有不足请多指教。importtkinterastkimportkeyboard#安装:pipinstallkeyboardfromPILimportImageGrab#pipinstallpillowimporttimefromaipimportAipOcr#pipinstallba…

大家好,又见面了,我是你们的朋友全栈君。

tkinter程序源码:初识Python,如有不足请多指教。

import tkinter as tk
import keyboard     # 安装: pip install keyboard
from PIL import ImageGrab   # pip install pillow
import time
from aip import AipOcr  # pip install baidu-api或者下载sdk后解压执行:执行python setup.py install


def center(win):
    """窗口居中函数"""
    win.update_idletasks()
    width = win.winfo_width() + 400
    height = win.winfo_height() + 260
    x = (win.winfo_screenwidth() // 2) - (width // 2)
    y = (win.winfo_screenheight() // 2) - (height // 2)
    win.geometry('{}x{}+{}+{}'.format(width, height, x, y))


window = tk.Tk()
window.title('截图文字识别工具')
# window.geometry('600x400')
center(window)


def insert_point():
    APP_ID = '你的app_id'
    API_KEY = '你的api_key'
    SECRET_KEY = '你的secret_key'
	# 调用百度ocr的API,申请方式请自行百度。
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    
    # 截取图片(截图软件)
    keyboard.wait(hotkey='alt+a')
    keyboard.wait(hotkey='enter')
    # 防止图片还未缓存就调用
    time.sleep(0.1)
    # 保存图片到电脑
    image = ImageGrab.grabclipboard()
    image.save('WzTp.jpg')
    """ 读取图片 """
    with open('WzTp.jpg', 'rb') as file:
        image = file.read()
        text = client.basicAccurate(image)
        res = text['words_result']
        for i in res:
            print(i['words'])
            # var = e.get()
            t.insert('insert', i['words']+'\n')
    t.insert('insert', '\n-----------------------------------------------------------------\n')


b1 = tk.Button(window, text='启动程序', width=20, height=2, command=insert_point)   #光标处插入
b1.pack()
t = tk.Text(window, height=25)
t.pack()
l = tk.Label(window, text='使用方法:Alt+A截图,然后Enter结束', width=30, height=1)
l.pack(expand='yes', fill='x')
window.mainloop()

软件截图如下:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131907.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • S3C2440 之SPI

    S3C2440 之SPI概述:S3C2440有两个串行外设SPI接口,SPI具有全双工通信SPI方框图 SPI操作:通过使用SPI接口,S3C2440可以与外部器件同时发送、接收8位数据。当SPI接口为主机时,可以通过设置SPPREn寄存器来设置发送频率,当SPI为从机时,由其它主机提供时钟频率。当程序员写字节数据到SPTDATn寄存器,将同时开始发送和接受,在一些情况下,应该在写字节数据到SPT

    2022年5月2日
    40
  • Activity工作流引擎学习笔记(二)

    Activity工作流引擎学习笔记(二)核心APIProcessEngine说明:1) 在Activiti中最核心的类,其他的类都是由他而来。2) 产生方式:在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多,调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。3) 可以产生R

    2022年7月11日
    22
  • Qt 之图形(QPainter 的基本绘图)「建议收藏」

    Qt 之图形(QPainter 的基本绘图)「建议收藏」Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice和QPaintEngine这三个类。-QPainter用于执行绘图操作,其提供的API在GUI或QImage、QOpenGLPaintDevice、QWidget和QPaintDevice显示图形(线、形状、渐变等)、文本和图像。

    2025年8月2日
    5
  • 深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

    深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

    2022年6月7日
    30
  • CAN 接口测试[通俗易懂]

    CAN 接口测试[通俗易懂]CAN测试收发程序can发送测试#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<net/if.h>#include<sys/ioctl.h>#include<sys/socket…

    2022年6月29日
    28
  • 我刚刚做了一个艰难的决定「建议收藏」

    我刚刚做了一个艰难的决定「建议收藏」腾讯做了个艰难的决定,如果您电脑里安装了360软件,建议您卸载了它在运行QQ~可口可乐做出了一个非常艰难的决定,如果检测到用户胃里有百事可乐,将自动释放敌敌畏和鹤顶红中国移动做出一个非常艰难的决定,如果方圆百米内检测到有联通用户将使这些用户不间断自动拨打110迅雷做出一个非常艰难的决定,如果检测到用户电脑内安装快车,将拒绝下载教育片宝马做出了一个非常艰难的决定,如果检测到用户使用过奔驰宝马刹车将自动失灵蒙牛做了个艰难的决定,如果监测到用户胃里有伊利牛奶,将自动释放三聚氰胺麦当劳做了个艰难的决定,如果监测

    2022年7月25日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号