diff --git a/app/build.gradle.kts b/app/build.gradle.kts index dd5b9e3c..fe952eac 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -253,8 +253,11 @@ dependencies /* Unclassified */ { // R8 implementation(libs.r8) - // Plugin API: Paddle OCR - implementation(project(":plugin-api:paddle-ocr")) + // Plugin API: Paddle OCR API + implementation(project(":plugin-api:paddle-ocr-api")) + + // Plugin API: Paddle OCR Engine + implementation(project(":plugin-api:paddle-ocr-engine")) } dependencies /* MIME */ { diff --git a/app/src/main/assets-app/sample/OCR/PaddleOCR (内置API).js b/app/src/main/assets-app/sample/OCR/PaddleOCR (内置 API).js similarity index 100% rename from app/src/main/assets-app/sample/OCR/PaddleOCR (内置API).js rename to app/src/main/assets-app/sample/OCR/PaddleOCR (内置 API).js diff --git a/app/src/main/assets-app/sample/OCR/PaddleOCR (原始类).js b/app/src/main/assets-app/sample/OCR/PaddleOCR (原始类) [v6.7.0+].js similarity index 81% rename from app/src/main/assets-app/sample/OCR/PaddleOCR (原始类).js rename to app/src/main/assets-app/sample/OCR/PaddleOCR (原始类) [v6.7.0+].js index 068a27cd..bfc9e6c6 100644 --- a/app/src/main/assets-app/sample/OCR/PaddleOCR (原始类).js +++ b/app/src/main/assets-app/sample/OCR/PaddleOCR (原始类) [v6.7.0+].js @@ -2,6 +2,22 @@ * @author TonyJiangWJ */ !function originalClassesForPaddleOcr() { + + let hintForAutoJs670AndAbove = '自 AutoJs6 6.7.0 起, Paddle OCR 已进行功能插件化, 因此无法再使用内置原始类.\n\n' + + '如需了解插件 API 使用示例, 可参考 "PaddleOCR (内置 API).js" 示例代码.'; + + dialogs.build({ + title: R.string.text_prompt, + content: hintForAutoJs670AndAbove, + positiveText: R.string.text_exit, + stubborn: true, + }).on('positive', (d) => { + d.dismiss(); + exit(); + }).show(); + + exit(); + const Predictor = com.baidu.paddle.lite.ocr.Predictor; console.show(); diff --git a/app/src/main/assets-app/sample/OCR/PaddleOCR (截图识别) [v6.7.0+].js b/app/src/main/assets-app/sample/OCR/PaddleOCR (截图识别) [v6.7.0+].js new file mode 100644 index 00000000..dcb06c5a --- /dev/null +++ b/app/src/main/assets-app/sample/OCR/PaddleOCR (截图识别) [v6.7.0+].js @@ -0,0 +1,232 @@ +/** + * Create by TonyJiangWJ on Nov 15, 2023. + * Modified by SuperMonster003 as of Jan 18, 2026. + */ +!function sampleForPaddleOcr() { + + let currentEngine = engines.myEngine(); + let runningEngines = engines.all(); + let currentSource = `${currentEngine.getSource()}`; + if (runningEngines.length > 1) { + runningEngines.forEach(compareEngine => { + let compareSource = `${compareEngine.getSource()}`; + if (currentEngine.getId() !== compareEngine.getId() && compareSource === currentSource) { + // Force stop scripts with the same name. + // zh-CN: 强制关闭同名的脚本. + compareEngine.forceStop(); + } + }); + } + + if (!requestScreenCapture()) { + // Failed to request screenshot permission. + toastError('请求截图权限失败'); + exit(); + } + + sleep(500); + + // Use slim model for faster inference. + // zh-CN: 使用 slim 模型以获得更快速度. + let useSlim = true; + + // CPU thread count. + // zh-CN: CPU 线程数量. + let cpuThreadNum = 4; + + // Whether to request OpenCL. + // zh-CN: 是否请求 OpenCL. + let useOpenCL = false; + + // Recognition results and screenshot information. + // zh-CN: 识别结果和截图信息. + let result = []; + let img = null; + let running = true; + let capturing = false; + + // Get status bar height offset. + // zh-CN: 获取状态栏高度偏移. + let offset = /* -getStatusBarHeightCompat(); */ 0; + + // Draw OCR results. + // zh-CN: 绘制 OCR 结果. + let window = floaty.rawWindow( + , + ); + + // Set float window position. + // zh-CN: 设置悬浮窗位置. + ui.post(() => { + window.setPosition(0, offset); + window.setSize(WIDTH, HEIGHT); + window.setTouchable(false); + window.exitOnClose(); + }); + + // Operation buttons. + // zh-CN: 操作按钮. + let clickButtonWindow = floaty.rawWindow( + + {/* Screenshot OCR */} +