截图文字识别工具

截图文字识别工具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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 操作系统之——银行家算法C语言实现

    操作系统之——银行家算法C语言实现//银行家算法.cpp:定义控制台应用程序的入口点。//#include”stdafx.h”#include”string.h”#include”stdlib.h”#defineMAX_PROCESS10//进程数上限#defineMAX_RESOURCE_KIND10//资源种类上限#defineMAX_RESOURCE_NUM20 //每种资源可用

    2022年6月2日
    30
  • android toast防重_如何解决android Toast重复显示

    android toast防重_如何解决android Toast重复显示Toast是一种简易的消息提示框,它无法获取焦点,按设置的时间来显示完以后会自动消失,一般用于帮助或提示。先给大家分享下我的解决思路:不用计算Toast的时间之类的,就是定义一个全局的成员变量Toast,这个Toast不为null的时候才去make,否则直接setText.为了按返回键后立即使Toast不再显示,重写父类Activity的onBackPressed()方法里面去cancel你的T…

    2022年9月13日
    0
  • DNS负载均衡与CDN内容分发技术

    DNS负载均衡与CDN内容分发技术负载均衡:负载均衡技术能平衡服务器及群众所有的服务器和请求应用之间的通信负载,根据实时响应时间进行判断,将任务交由负载最轻的服务器来处理,以实现真正的智能通信管理和最佳的服务器群性能,从而使网站始终保持运行和保证其可访问性。DNS负载均衡:为了充分利用现有服务器软件的种种优势,负载均衡最好是在服务器软件之外来完成。而最早使用的负载均衡技术是通过DNS服务中的随即名字解析来实现的。这就是

    2022年7月14日
    30
  • jdk1.8下载与安装教程(win10)超详细[通俗易懂]

    jdk1.8下载与安装教程(win10)超详细[通俗易懂]一、前言虽然现在jdk已经升级到JDK11版本了,但是JDK1.8(JDK8)仍然有很多小伙伴在使用,这里也记录一下jdk1.8的下载及安装过程,对于刚学习java的小伙伴可以参考,熟手可忽略,呵呵~二、下载安装步骤一、首先是去jdk官网下载,如果大家不怕麻烦的话可以去官网下载,需要注册账号,此外下载速度也是龟速,我也是花了好长时间才下载下来,大家可以可以点击我的网盘目录jdk目录下载…

    2022年6月14日
    109
  • ideavim怎么用_intellij idea使用教程2020

    ideavim怎么用_intellij idea使用教程2020IdeaVim-常用操作IdeaVim简介IdeaVim是IntelliJIDEA的一款插件,他提高了我们写代码的速度,对代码的跳转,查找也很友好。安装之后它在Tools>VimEmulator具体操作i模式i模式即为编辑模式,按下字母i开启就可以打字。Esc从i模式切换为Vim,按下键盘的Esc键切

    2022年9月30日
    1
  • oc和js交互_js调用api

    oc和js交互_js调用apiiOSJS与OC交互1、UIWebView与JS交互UIWebView在iOS12中已经被废弃,同时WKWebView在iOS8中已经出现。所以无特殊情况的话,我们一般应该也是用不到前者了!UIWebView初始化:self.webView=[[UIWebViewalloc]initWithFrame:self.view.bounds];self.webView.delegate=self;[self.viewaddSubview:self.

    2022年10月24日
    1

发表回复

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

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