Closed Gavin1937 closed 5 months ago
其他软件可能也在用着这个功能
没错,这是一个历史遗留问题。 Umi-OCR v1 版本中,是靠引擎本身去获取剪贴板数据的。
不过在现在的 Umi-OCR v2.x ,管理剪贴板的工作已经交给了前端,不依赖引擎本身读剪贴板了。
服务端去读剪贴板确实是不必要,且不安全的行为。后续版本,我认为可以移除该功能了。
确实,移除这个功能会更好。
该功能相关的代码可以保留,但弄个flag
这个简单,我下个PR给加上。
Linux版本,则无需开发剪贴板功能。
Linux不像Windows或者Mac,它的“剪贴板”设计得很复杂。把全部的剪贴板读取功能交由其他的跨平台library会更方便。
像Umi-OCR可以直接用Qt的QClipboard去跨平台支持剪贴板。
嗯,Umi v2 已经考虑到了剪贴板等机制的跨平台。
我这两天会研究一下Umi的linux环境部署
剪贴板的移除已经做好了,不过更改的内容比较多,所以暂时先不发PR。我把所有的更改都放在下面这个branch里,方便cherry pick。麻烦作者检查一下看看有哪些是不需要或者要更改的吧。完了没问题我再整理发PR
https://github.com/Gavin1937/PaddleOCR-json/commits/clipboard/
具体的更改:
-DENABLE_CLIPBOARD
"OCR clipboard enbaled."
,添加在 OCR single image mode
之前。这样方便其他程序识别剪贴板是否启用(只在Windows下有效)。runClipboard()
是否能用。如果剪贴板禁用则抛一个异常isClipboardEnabled()
来告诉用户剪贴板启用情况runClipboard()
是否能用。如果剪贴板禁用则抛一个异常isClipboardEnabled()
来告诉用户剪贴板启用情况image_path
设置为 null 的时候用剪贴板,我就直接把它换成抛一个异常了。除了node.js我这边没法测试以外其他所有的更改(C++、python、powershell)都测试过能用了(Windows和Linux双平台)。
OK,我看过了,没有可见的问题。
v1.3 版暂时保留剪贴板相关代码。未来的 v1.4 或更高的版本,我会跟进 PaddleOCR 官方 v2.7 或最新的版本,那时候可能完全移除剪贴板相关的代码。
已经发PR了
1.
PaddleOCR-json的剪切板读取文件的功能是建立在ocr引擎与前端软件在同一个文件系统的前提下的。
不过如果把PaddleOCR-json跑在另一个服务器上,这个剪贴板的功能就变得不太合理了。
我觉得应该新增一个新的配置参数来开启/关闭剪切板。
比如说
-enable_clipboard=true
,默认是 true ,然后用户可以将其设置成 false接着只需要在
imread_u8()
里面检查一下这个参数就行了:2.
我不太理解:
既然PaddleOCR-json是一个OCR引擎,那它真的需要去做读取剪贴板的工作吗?
如果把读取剪贴板的工作全部放在引擎的前端(比如Umi-OCR)会不会更合理一些呢?
当然,现在也不应该直接删除剪贴板相关的功能,其他软件可能也在用着这个功能。
我只想带起这个讨论。