6.7.0 - Alpha - 修复打包应用无法正常使用 Paddle OCR 与 Rapid OCR 功能的问题
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
"使用 XML 语法将 JavaScript 表达式作为属性值时, this 对象可能出现指向错误的问题",
|
||||
"调用 images.requestScreenCapture 时用户取消授权可能导致应用崩溃的问题",
|
||||
"images 部分相关方法出现异常时 oneShot 标记功能失效的问题 _[`issue #372`](http://issues.autojs6.com/372)_",
|
||||
"打包应用无法正常使用 Paddle OCR 与 Rapid OCR 功能的问题",
|
||||
"版本历史页面部分系统因字体差别导致统计数据显示不完整的问题"
|
||||
],
|
||||
"improvement": [],
|
||||
|
||||
@@ -501,9 +501,6 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File
|
||||
"libc++_shared.so",
|
||||
"libpaddle_light_api_shared.so",
|
||||
"libNative.so",
|
||||
"libhiai.so",
|
||||
"libhiai_ir.so",
|
||||
"libhiai_ir_build.so",
|
||||
),
|
||||
assetDirsToExclude = listOf(
|
||||
"models",
|
||||
@@ -515,6 +512,7 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File
|
||||
aliases = listOf("rapid", "rapidocr", "rapid-ocr", "rapid_ocr"),
|
||||
libsToInclude = listOf(
|
||||
"libRapidOcr.so",
|
||||
"libonnxruntime.so",
|
||||
),
|
||||
assetDirsToExclude = listOf(
|
||||
"labels",
|
||||
@@ -578,6 +576,7 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File
|
||||
if (!isInrt) return
|
||||
val nativeLibraryDir = File(globalContext.applicationInfo.nativeLibraryDir)
|
||||
val primaryNativeLibraries = nativeLibraryDir.list()?.toList() ?: emptyList()
|
||||
Log.d(TAG, "Native libraries: [ ${primaryNativeLibraries.joinToString(", ")} ]")
|
||||
if (!primaryNativeLibraries.containsAll(libsToInclude)) {
|
||||
throw Exception(globalContext.getString(R.string.error_module_does_not_work_due_to_the_lack_of_necessary_library_files, moduleName))
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ import org.autojs.autojs.runtime.api.augment.Invokable
|
||||
import org.autojs.autojs.runtime.api.augment.ocr.Ocr.Companion.OcrMode
|
||||
import org.autojs.autojs.util.RhinoUtils.coerceBoolean
|
||||
import org.autojs.autojs.util.RhinoUtils.coerceIntNumber
|
||||
import org.autojs.autojs.util.RhinoUtils.newNativeObject
|
||||
import org.mozilla.javascript.NativeArray
|
||||
import org.mozilla.javascript.NativeObject
|
||||
|
||||
@@ -45,22 +44,21 @@ class OcrPaddle(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRu
|
||||
|
||||
fun recognizeTextInternal(scriptRuntime: ScriptRuntime, image: ImageWrapper, options: NativeObject): List<String> {
|
||||
ApkBuilder.Libs.PADDLE_OCR.ensureLibFiles(OcrMode.PADDLE.value)
|
||||
val (cpuThreadNum, useSlim) = getOptions(options)
|
||||
val (cpuThreadNum, useSlim) = getOcrOptions(options)
|
||||
return scriptRuntime.ocrPaddle.recognizeText(image, cpuThreadNum, useSlim)
|
||||
}
|
||||
|
||||
fun detectInternal(scriptRuntime: ScriptRuntime, image: ImageWrapper, options: NativeObject): List<OcrResult> {
|
||||
ApkBuilder.Libs.PADDLE_OCR.ensureLibFiles(OcrMode.PADDLE.value)
|
||||
val (cpuThreadNum, useSlim) = getOptions(options)
|
||||
val (cpuThreadNum, useSlim) = getOcrOptions(options)
|
||||
return scriptRuntime.ocrPaddle.detect(image, cpuThreadNum, useSlim).map { result ->
|
||||
OcrResult(result.label, result.confidence, result.bounds)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getOptions(options: NativeObject): OcrOptions {
|
||||
val opt = options as? NativeObject ?: newNativeObject()
|
||||
val cpuThreadNum = opt.inquire("cpuThreadNum", ::coerceIntNumber, DEFAULT_CPU_THREAD_NUM)
|
||||
val useSlim = opt.inquire("useSlim", ::coerceBoolean, DEFAULT_USE_SLIM)
|
||||
private fun getOcrOptions(options: NativeObject): OcrOptions {
|
||||
val cpuThreadNum = options.inquire("cpuThreadNum", ::coerceIntNumber, DEFAULT_CPU_THREAD_NUM)
|
||||
val useSlim = options.inquire("useSlim", ::coerceBoolean, DEFAULT_USE_SLIM)
|
||||
return OcrOptions(cpuThreadNum, useSlim)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user