zoukankan      html  css  js  c++  java
  • python,使用百度api实现复制截图中的文字

    百度云文字识别技术文档:

     跳转

    第三方模块安装:

      pip install baidu-aip

      pip install Pillow

      pip install keyboard

      pip install pywin32

    from aip import AipOcr #百度aip
    from PIL import ImageGrab #处理剪切板图片
    from PIL import Image
    import PIL
    import keyboard #监控键盘
    import sys
    import time,datetime
    import random
    
    import win32clipboard as w  # 处理剪切板
    import win32con
    
    def screenShot():
        '''监控键盘事件,并保存图片'''
    
        # 监控键盘,输入QQ默认截图快捷键时进入
        if keyboard.wait(hotkey='ctrl+alt+a') == None:                
            while True:
                time.sleep(3)  #等待截图
                im = ImageGrab.grabclipboard()  #获取剪切板中的图片
                if isinstance(im,PIL.BmpImagePlugin.DibImageFile):  #若剪切板的内容可以解析成图片
                    #文件名
                    i = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
                    r = str(random.randint(100,1000))
                    #保存图片
                    im.save(i+r+'.png')
                             
                    #百度云账号设置
                    APP_ID = ''
                    API_KEY = ''
                    SECRET_KEY = ''
                    #百度云api对象
                    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    
                    #读取图片
                    image = get_file_content(i+r+'.png')
                    #获取图片中的文字内容
                    data = client.basicGeneral(image)
                    words_result = data['words_result']
                    data = ""  # 需要保存的内容
                    for words in words_result:
                        data+=words['words']
                    
                    print(data)
                    setText(data)
            
    #读取图片
    def get_file_content(filePath):
        with open(filePath, 'rb') as fp:
            return fp.read()
    
    #写入剪切板内容
    def setText(aString):
        w.OpenClipboard()
        w.EmptyClipboard()
        w.SetClipboardText(aString)
        w.CloseClipboard()
    
    
    if __name__ == "__main__":
    #for _ in range(sys.maxsize):  #修改成在screenShot中用while循环
        screenShot()
  • 相关阅读:
    iOS截取长图,自定义截取size
    工作
    UITableView适配iOS11
    利用脚本实现build号自动加一
    iOS原生与JS互调
    CSS高级技巧
    伪元素选择器
    CSS设置过渡
    CSS文本属性 二
    css设置圆角矩形
  • 原文地址:https://www.cnblogs.com/LTEF/p/9130763.html
Copyright © 2011-2022 走看看