hiroi-sora / Umi-OCR

OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

微信中直接复制的图片无法读取

xmokay opened this issue · comments

  1. 从微信聊天中直接复制有文字的图片
  2. 用剪切板查看工具确认剪切板内有图片信息
  3. 点击识别内容->剪切板读取
    期望:OCR结果
    实际:没有任何反应

哈哈,感谢你发现了这个神奇的Bug~

我调查了一下,发现事情是这样的:剪贴板里的数据有各种格式定义嘛,比如位图CF_BITMAP、文件句柄CF_HDROP、字符串CF_UNICODETEXT等。一条数据可以同时具有多种格式。我之前的代码只检测剪贴板是否为位图CF_BITMAP,是则调用OCR。

而微信复制的时候,它先把图片写入临时文件夹C:\Users\xxxx\AppData\Local\Temp\WeChat Files,再把图片字节和文件句柄同时写入剪贴板,即同时具有CF_BITMAPCF_HDROP双重属性,因此干扰了我程序的判断。

实际上,我昨天的更新已经间接解决了这个问题,能以读入临时文件的文件句柄的形式识别微信复制到剪贴板的图片了。不过还不够完美,我之后试试改成优先以位图的形式读入~

哈哈,感谢你发现了这个神奇的Bug~

我调查了一下,发现事情是这样的:剪贴板里的数据有各种格式定义嘛,比如位图CF_BITMAP、文件句柄CF_HDROP、字符串CF_UNICODETEXT等。一条数据可以同时具有多种格式。我之前的代码只检测剪贴板是否为位图CF_BITMAP,是则调用OCR。

而微信复制的时候,它先把图片写入临时文件夹C:\Users\xxxx\AppData\Local\Temp\WeChat Files,再把图片字节和文件句柄同时写入剪贴板,即同时具有CF_BITMAPCF_HDROP双重属性,因此干扰了我程序的判断。

实际上,我昨天的更新已经间接解决了这个问题,能以读入临时文件的文件句柄的形式识别微信复制到剪贴板的图片了。不过还不够完美,我之后试试改成优先以位图的形式读入~


这么快就回复,效率太高了。期待新版本。

v1.3.0 已更新并修复该Bug。