更新记录
1.0.0(2026-10-16)
- 新增 Android、iOS 本地图片去水印与局部修复,支持 uni-app、uni-app x,离线运行,无 AI、无需服务器或模型下载。
- 新增局部文字与规律重复图案的自动定位、选区修复及原图/结果对比;未可靠检出时明确提示手动调整。
- 新增原生消除笔编辑器,支持涂抹、矩形框选、擦除遮罩、缩放平移、撤销重做、清空、原图对照、预览、导出与取消。
- 新增 OpenCV Telea、NS 两种修复算法,以及矩形、顺序笔迹、灰度 PNG 遮罩等程序调用方式。
- 新增系统图片文件选择、图片信息读取、JPEG/PNG 输入输出、EXIF 方向校正、透明区域保护与处理预算控制。
- 新增任务阶段通知、取消处理、结果缓存释放、统一错误码及 success/fail/complete 回调。
- 新增 uni-app、uni-app x 完整示例,包含自动处理、手动调整、成片保存、真实阶段状态及完整诊断日志分段复制。
平台兼容性
uni-app(5.15)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | × | × | √ | √ | √ | √ | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(5.15)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | √ | √ | × | × |
图片去水印与局部修复【安卓 IOS】支持离线、无AI
介绍
lizhao-img-eraser 是面向 uni-app、uni-app x 的图片去水印与局部修复 UTS 插件。在 Android、iOS 手机内自动尝试去除局部文字和规律重复水印,效果不满意时再用消除笔涂抹或框选调整。全程离线处理,不使用 AI、云端生成式模型或在线接口,图片无需上传服务器。
功能特色
- 选图后离线定位小块文字,或从多处相同图案中定位重复斜字、细网格;原图与结果同时显示,未可靠识别时保留原图。
- 读取、识别、修复、导出显示页内旋转动画与真实阶段,取消按钮可直接点击,结束或离开页面停止动画。
- OpenCV Telea / NS 两种离线修复算法,无在线接口、账户和模型下载。
- 全屏原生编辑器:涂抹、矩形框选、擦除遮罩、双指缩放和平移、撤销重做、清空、按住查看原图、预览、导出、取消。
- 也可直接传入矩形、顺序笔迹或灰度 PNG 遮罩,便于集成已有业务界面。
- JPEG / PNG 输入输出、EXIF 方向校正、透明区域保护、处理预算、阶段事件、结果按 ID 释放。
- 图片处理与系统文件选择 API 使用一致的
success/fail/complete合同;示例附环境、原生诊断及完整保留日志的分段复制。
修复是根据附近像素推算,不能恢复被遮挡的原始信息。大面积遮挡、人脸、文字、重复纹理和复杂背景需要人工检查效果。自动定位结合局部文字和二维重复图案;不是 OCR 或通用水印语义识别,可能误选图片正文,也可能漏检。重复图案需要足够多次、两个方向的稳定重复;多块不同 Logo、单块大字或变化不规则的覆盖可直接手动调整。自然纹理与水印有时无法仅凭像素区分,输出仍需检查。贴紧图片边缘的小块文字可能未检出。不含云端生成式修复、视频去水印或批处理。
支持 Android 7.0 / API 24 及以上、iOS 12 及以上的 arm64 真机。uni-app 支持 Vue 2 / Vue 3 的 App Vue、nvue 页面调用,uni-app x 使用原生 App 页面调用;插件自带独立原生编辑器。Web、Harmony、各小程序和快应用不支持图片修复。完整边界、依赖、权限与自定义基座要求见“注意事项”。
适合哪些场景
| 业务场景 | 推荐能力 | 使用要点 |
|---|---|---|
| 本地图片快速修复 | removeImageWatermark + 自动选区 |
先比较原图与结果;未可靠识别时保留原图并手动调整 |
| 用户交互修补 | openImageEraser |
涂抹、框选、预览后再确认导出 |
| 已有标注界面 | 矩形、笔迹或灰度PNG遮罩 | 按真实图片坐标与预算提交,避免覆盖透明区域 |
| 需要离线处理的现场图片 | Telea / NS | 本地修复不上传;复杂背景需要人工检查 |
下载与导入
-
在 HBuilderX 中将本插件导入自己的 uni-app 或 uni-app x 项目;也可将作者提供的完整源码目录放入项目
uni_modules/。 -
保留完整的
uni_modules/lizhao-img-eraser/目录和插件名称,不单独复制utssdk。 -
页面只从插件根目录导入:
@/uni_modules/lizhao-img-eraser。uni-app 使用.vue页面,uni-app x 使用.uvue与 UTS;按下面的实际文件路径查看对应写法。 -
在项目
pages.json注册示例页面路径,路由不带.vue或.uvue扩展名。首次加入原生插件或原生依赖、权限、资源变化后,重新原生联编或制作并安装匹配的自定义基座;只更新页面资源无法给旧基座补入原生能力。
接入方式选择
| 方式 | 适用场景 | 调用 |
|---|---|---|
| 自动尝试 | 先看到结果,不合适再手动调整 | removeImageWatermark + selection: { kind: 'auto' } |
| 原生编辑器 | 用户自己标记区域并检查结果 | openImageEraser |
| 图片处理 API | 业务已有选区界面或固定区域 | removeImageWatermark |
将完整 uni_modules/lizhao-img-eraser 复制到项目,页面只从插件根目录 import。Android/iOS 均包含原生代码及依赖,必须重新联编或制作自定义基座;资源包不能为旧基座补入原生引擎。
完整示例路径
| 项目或资料 | 项目内完整路径 |
|---|---|
| uni-app | uni_modules/lizhao-img-eraser/example/uniapp/index.vue |
| uni-app x | uni_modules/lizhao-img-eraser/example/uniappx/index.uvue |
| 公开类型 | uni_modules/lizhao-img-eraser/utssdk/interface.uts |
两者选图后默认自动尝试修复,原图与修复后的图片上下同时显示,方便直接比较;不满意可用“手动调整”从原图重新处理。高级参数与详细日志折叠,底部始终保留一键复制日志。
从基础到进阶:按业务模块使用
基础:选图后自动尝试修复
以下代码可放入 uni-app 页面或 uni-app x 的 <script setup lang="uts">。需先使用包含本插件的匹配基座。
import { removeImageWatermark } from '@/uni_modules/lizhao-img-eraser'
function editImage(): void {
uni.chooseImage({
count: 1,
sourceType: ['album'],
sizeType: ['original'],
success: (picked) => {
if (picked.tempFilePaths.length == 0) return
removeImageWatermark({
imagePath: picked.tempFilePaths[0],
selection: { kind: 'auto' },
algorithm: 'telea',
output: { format: 'auto', allowDownscale: false },
onStart: (event) => { console.log('任务开始', event.taskId) },
success: (result) => {
// result.tempFilePath 可赋给 image.src;用户确认后再保存相册。
console.log('修复完成', result.resultId, result.width, result.height)
},
fail: (error) => { console.error(error.errSubject, error.errCode, error.errMsg) },
complete: (result) => { console.log('终态', result.state) }
})
},
fail: (error) => { console.error('选图失败', error.errMsg) }
})
}
uni-app 普通 JS 页面请去掉 : void。完整示例会展示图片、保存、取消和释放结果。
模块一:从原图手动调整
效果不满意时,把最初选中的图片路径传给编辑器,避免在已有修复结果上反复计算:
import { openImageEraser } from '@/uni_modules/lizhao-img-eraser'
function adjustImage(originalImagePath: string): void {
openImageEraser({
imagePath: originalImagePath,
success: (result) => { console.log('手动结果', result.tempFilePath, result.resultId) },
fail: (error) => { console.error(error.errCode, error.errMsg) }
})
}
自动处理未检出返回 9231015,调用方保留原图并显示“手动调整”。9231007 表示超出预算,可让用户开启缩图后重试;不默认改变原图尺寸。取消不清除已有图片。示例已完整实现这些交互。
模块二:处理已知矩形区域
import { removeImageWatermark } from '@/uni_modules/lizhao-img-eraser'
function repairRectangle(imagePath: string): void {
removeImageWatermark({
imagePath: imagePath,
selection: { kind: 'rectangles', rectangles: [{ x: 0.72, y: 0.85, width: 0.2, height: 0.08 }] },
algorithm: 'telea', radius: 3,
output: { format: 'png', allowDownscale: false },
onStage: (event) => { console.log(event.stage, event.elapsedMs) },
success: (result) => { console.log('新图片尺寸', result.width, result.height) },
fail: (error) => { console.error(error.errCode, error.stage, error.errMsg) },
complete: (result) => { console.log(result.state) }
})
}
将 uni.chooseImage 返回的真实路径传入 repairRectangle。坐标相对于方向校正后的整图,不是屏幕像素、rpx 或未经校正的原始编码尺寸;矩形必须全部落在 [0,1] 内。不能传整图、空选区或仅擦除笔迹。
模块三:接入自有笔迹或灰度遮罩
import { removeImageWatermark } from '@/uni_modules/lizhao-img-eraser'
function repairWithStroke(imagePath: string): void {
removeImageWatermark({
imagePath: imagePath,
selection: { kind: 'strokes', strokes: [{ points: [{ x: 0.3, y: 0.4 }, { x: 0.5, y: 0.4 }], diameter: 0.04, operation: 'paint' }] },
success: (result) => { console.log('新图片尺寸', result.width, result.height) },
fail: (error) => { console.error(error.errCode, error.errMsg) }
})
}
function repairWithMask(imagePath: string, maskPath: string): void {
removeImageWatermark({
imagePath: imagePath, selection: { kind: 'mask', maskPath: maskPath },
success: (result) => { console.log('新图片尺寸', result.width, result.height) },
fail: (error) => { console.error(error.errCode, error.errMsg) }
})
}
kind 四选一,auto 不携带其他选区字段,不允许同时传不同种类字段。笔迹按数组顺序叠加,erase 只擦除已有遮罩。笔刷直径相对于整图短边。外部遮罩必须为与校正后原图同尺寸的 8-bit 灰度 PNG,无 alpha,像素值 >=128 选中,其他值未选中。
模块四:取消任务与释放结果
import { cancelImageEraserTask, releaseImageEraserResult } from '@/uni_modules/lizhao-img-eraser'
function requestCancel(taskId: string): void {
cancelImageEraserTask({
taskId: taskId,
success: (result) => { console.log('取消受理', result.accepted, result.message) },
fail: (error) => { console.error(error.errCode, error.errMsg) }
})
}
function releaseResult(resultId: string): void {
releaseImageEraserResult({
resultId: resultId,
success: (result) => { console.log('已释放', result.released) },
fail: (error) => { console.error(error.errCode, error.errMsg) }
})
}
取消回执只表示请求已受理。底层计算不能强杀;原请求会在安全检查点返回 9231011,随后 complete.state='cancelled'。临时结果保留到主动释放或系统清理缓存;插件只能释放自己登记的结果,不接受任意路径删除。
API 用途速查
全部方法异步返回 void。一次请求最多一个成功或失败回调,并在其后调用一次 complete;业务回调抛出的异常被隔离。未提供的回调不影响处理。
| API | 作用 |
|---|---|
chooseImageEraserFile(options) |
打开系统文件管理器,单选可读取的 JPEG/PNG;返回本地路径、文件名与实际大小 |
getImageEraserCapabilities(options) |
查询当前安装包实际加载的引擎、限制与编辑器能力 |
getImageEraserImageInfo(options) |
读取格式、编码尺寸、校正后尺寸、EXIF、alpha 与预算 |
removeImageWatermark(options) |
按自动或显式选区生成新文件 |
openImageEraser(options) |
打开原生全屏编辑器;导出成功返回新文件 |
cancelImageEraserTask(options) |
请求取消对应任务 |
releaseImageEraserResult(options) |
按结果 ID 删除本插件登记的缓存文件 |
getImageEraserDiagnostics(options) |
获取有上限的原生及 UTS 桥接诊断快照 |
处理参数
| 参数 | 类型 | 必填 | 说明 | 默认值 | 可选参数 |
|---|---|---|---|---|---|
| imagePath | string | 是 | 已授权本地文件;支持绝对路径、file://、宿主 _doc/_www;Android 另支持 content:// | 无 | 禁止 http/https |
| selection | ImageEraserSelection | 仅直接 API | 四种互斥选区之一 | 无 | auto / rectangles / strokes / mask |
| algorithm | string | 否 | 原生修复算法 | telea | telea / ns |
| radius | number | 否 | 校正后原图像素半径,有限数值;缩图时按比例换算 | 3 | 1~15 |
| output | ImageEraserOutputOptions | 否 | 输出选项 | 见下表 | 无 |
| onStart | function | 否 | 返回 taskId 与 api;用于后续取消 | 无 | 无 |
| onStage | function | 否 | 真实阶段、耗时、选区 revision,不伪造百分比 | 无 | 无 |
| success / fail / complete | function | 否 | 结果 / 统一错误 / 终态 | 无 | 无 |
getImageEraserImageInfo 只需 imagePath 和回调。能力和诊断查询只需回调。取消必须传 taskId;释放必须传 resultId,均为对应回调返回的真实 ID。
chooseImageEraserFile 只需 success/fail/complete,不创建处理任务;用户关闭系统选择器时返回 9231011。已有处理或文件选择界面时返回 9231012;大小上限 64 MiB,不支持的图片格式返回 9231004。它使用插件原生实现,uni-app 和 uni-app x 均从插件根目录调用,不依赖传统 uni-app App 不支持的 uni.chooseFile。
import { chooseImageEraserFile, getImageEraserImageInfo } from '@/uni_modules/lizhao-img-eraser'
chooseImageEraserFile({
success: (file) => {
getImageEraserImageInfo({
imagePath: file.tempFilePath,
success: (info) => { console.log('图片尺寸', info.width, info.height) },
fail: (error) => { console.error(error.errCode, error.errMsg) }
})
},
fail: (error) => { if (error.errCode != 9231011) console.error(error.errCode, error.errMsg) }
})
返回 ImageEraserPickedFile:tempFilePath/name/size。Android 为系统授权的 content:// 路径,iOS 为应用临时缓存的 file:// 副本,均直接传给图片信息/编辑器/处理 API;应用重启或系统清缓存后的可读性不保证,不覆盖原文件。文件提供方无法取得名称时 name 为空,不从 URI 猜测。文件名与完整路径只供业务使用,日志不要直接输出。文件选择不会自动保存修复结果。iOS 导入缓存按实际磁盘内容限制最多 64 份 / 256 MiB,超限返回 9231007,旧输入保留供原图对比;它不属于可按结果 ID 释放的修复产物。
输出选项
| 参数 | 类型 | 必填 | 说明 | 默认值 | 可选参数 |
|---|---|---|---|---|---|
| format | string | 否 | auto 跟随输入格式 | auto | auto / jpeg / png |
| quality | number | 否 | JPEG 编码质量;0 也是合法值;PNG 忽略质量值 | 0.92 | 0~1 |
| backgroundColor | string | 透明图转 JPEG 时是 | 透明区域显式合成背景色 | 无 | #RRGGBB |
| allowDownscale | boolean | 否 | 超预算时允许缩图,否则明确失败 | false | true / false |
| maxPixels | number | 否 | 请求上限,正整数且不大于能力硬限制;仍受实时内存约束 | 能力上限 | 最大 4000000 |
原图不被覆盖。每次导出新文件,格式后缀与实际编码一致;只在文件完整写入后返回成功。标准 sRGB PNG 在无缩图/颜色转换条件下保留选区外像素及 alpha;JPEG 重编码是有损过程,选区外像素也可能变化。透明像素被选中时返回 9231014,不把透明区域伪装成正常修复。透明 PNG 转 JPEG 必须显式提供背景色。
返回值
ImageEraserResult:taskId、resultId、tempFilePath(file://)、输出 width/height/size/mimeType、algorithm、elapsedMs、原图 sourceWidth/sourceHeight、downscaled、colorConverted、warnings。结果路径用于当前应用读取;用户保存相册或业务长期存储需另行操作。
ImageEraserImageInfo:taskId、校正后 width/height、原始编码 encodedWidth/encodedHeight、EXIF orientation(1~8)、mimeType、size、hasAlpha、colorSpace、withinBudget。元数据读取成功不保证稍后实时内存足够。
ImageEraserCapabilities:available/reason/platform、实际 pluginVersion/engineVersion/nativeBuildId、支持的 algorithms/inputFormats/outputFormats、maxPixels/maxRectangles/maxStrokePoints、editorAvailable/autoDetectionAvailable、errSubject/errCode/errMsg。引擎加载失败时能力限制填 0,不能用预设参数冒充可用。
ImageEraserCompletion:api/taskId/state/errSubject/errCode/errMsg;state 为 succeeded/failed/cancelled,成功详细数据只在 success。
ImageEraserFail:统一 errSubject='lizhao-img-eraser'、errCode/errMsg/taskId/stage,另带脱敏的 nativeType/nativeCause/nativeStack。原生不可取得字段为空,不伪造异常内容。
诊断包含插件、引擎和原生源快照身份、平台、当前任务与阶段、带时间/级别/API/请求关联的 entries、保留条数/字符数、丢弃数、原生采集边界。原生与桥接合并后最多 200 条 / 64 Ki 字符,不上传,不记录图片内容及完整敏感路径。
自动选区的返回值与升级
自动成功除原有结果字段外,返回 autoRegionCount(1~3组)、autoMaskPixels(处理图上的实际遮罩像素数)、autoDetectionMethod。local-contrast-v1 表示局部文字;repeated-pattern-v1 表示同一二维重复图案族,跨整图的同族笔画计一组。手动结果不要求这些字段。
自动流程在 read 后报告真实 detect 阶段;未检出时不会返回原图冒充成功或生成临时结果。局部定位失败才尝试重复图案定位,不吞掉取消和其他原生错误。重复定位允许多处相同水印存在小幅位置、角度和尺寸差异,通过有界配准后提取共同笔画;副本太少、差异过大或计算预算耗尽时仍返回未识别。重复检测的分析图最长边有界缩放,输出仍按既有像素预算与原图尺寸处理;这不是默认缩小输出。autoDetectionAvailable 随原生引擎真实可用性返回;旧基座缺少该字段时不能推测支持。
大号半透明斜字即使定位成功,也可能留下笔画边缘或修补痕迹;覆盖眼睛、头发和物体轮廓时尤其需要查看对比。重复文字与单独角标不是同一个图案族,自动去除重复文字后,独立角标可能仍需手动处理。原图超过处理预算时,先明确开启“大图允许缩小处理”再重试。
本次增加 Android/iOS 原生检测与编辑器布局,需要重新原生联编或制作并安装匹配的自定义基座;仅更新页面资源无法为旧原生基座增加自动能力。手动 API 和已有三种选区的含义不变。
错误码说明
errSubject 固定为 lizhao-img-eraser。9231015 表示未可靠识别选区,不返回原图冒充处理成功。
| 错误码 | 含义 | 处理建议 |
|---|---|---|
| 9231001 | 参数无效 | 检查路径、算法、输出格式与字段类型 |
| 9231002 | 当前平台不支持图片修复 | 先查询平台支持范围 |
| 9231003 | 图片或遮罩文件不可读取 | 重新选择仍可访问的图片或遮罩 |
| 9231004 | 图片格式不支持 | 使用支持的JPEG或PNG |
| 9231005 | 图片解码失败 | 检查文件是否完整,读取解码错误 |
| 9231006 | 选区无效 | 缩小或修正选区,避免整图和越界 |
| 9231007 | 图片超过处理预算 | 按用户选择允许缩图或降低输入大小 |
| 9231008 | 原生修复引擎不可用 | 重建含OpenCV依赖的匹配基座 |
| 9231009 | 图片修复失败 | 核对原生组件注册并复制完整诊断 |
| 9231010 | 结果文件写入失败 | 检查私有缓存可写与剩余空间 |
| 9231011 | 操作已取消 | 保留原图,按用户意图决定是否重试 |
| 9231012 | 编辑器或处理任务正在使用 | 等待当前处理或编辑器结算 |
| 9231013 | 结果不存在或已释放 | 重新处理生成结果,勿复用已释放ID |
| 9231014 | 当前选区包含不支持修复的透明像素 | 调整选区,避免透明像素 |
| 9231015 | 未识别到可自动处理的水印,请手动调整 | 保留原图并打开手动编辑器 |
注意事项
平台、权限与基座
| 平台 / 宿主 | 范围 |
|---|---|
| Android / uni-app | 支持 Android 7.0 / API 24 及以上;Vue 2 / Vue 3 的 App Vue、nvue 页面可调用;OpenCV AAR 随原生构建加载 |
| Android / uni-app x | 支持 Android 7.0 / API 24 及以上;.uvue 页面调用原生 API 与编辑器 |
| iOS / uni-app | 提供 iOS 12 及以上 arm64 真机实现;支持 App Vue、nvue 页面调用;需完成匹配原生包的 Apple 联编与设备验收 |
| iOS / uni-app x | 提供 iOS 12 及以上 arm64 真机实现;.uvue 页面调用;需完成匹配原生包的 Apple 联编与设备验收 |
| iOS 模拟器 | 当前 SDK 未包含模拟器 slice,不声明支持 |
| Harmony / uni-app、uni-app x | 不支持,API 返回 9231002 |
| Web / H5 | Chrome、Safari 等浏览器不支持,API 返回 9231002 |
| 小程序 | 微信、支付宝、抖音、百度、快手、京东、鸿蒙小程序、QQ、飞书、小红书等不支持,API 返回 9231002 |
| 快应用、uniCloud 云端 | 不提供实现,不应作为图片处理运行端;客户端仅支持上述 Android/iOS App |
两宿主使用相同业务 API 和错误语义,分别提供 .vue、.uvue 示例。uni-app 完整示例采用 Options API;nvue 页面可调用插件 API,但仓库未附独立 .nvue 示例。平台声明表示插件提供的实现范围,不能代替目标宿主、系统版本和设备上的实际打包验收;iOS arm64 源码与静态框架仍需通过 Apple SDK 编译、链接及设备验证。
插件编辑器提供中文界面,未提供自动暗色主题、多语言资源或专门的平板/桌面宽屏布局;相应扩展能力不声明支持。
当前硬限制为 4000000 像素、64 个矩形、8192 个笔迹点;编辑器历史最多 256 次操作,编码源读取上限 64 MiB。实际处理还检查实时可用内存。上述是保护性配置,不是已在所有手机上验证的性能指标。
iOS 另限制原始解码输入最多 32000000 像素,并计入 ImageIO 源解码工作区;显式允许缩图也不能绕过这项内存保护。输入超限返回 9231007。
结果保存在应用私有缓存。iOS 按实际磁盘内容限制最多 64 份 / 256 MiB,应用重启后也计入已有文件;达到限制时先保存并释放不再使用的结果。持久登记允许重启后继续按原 resultId 释放;文件已被系统清除时返回 9231013。缓存不承担长期存储。
处理本地授权文件不需要网络或额外存储权限。相册选图/保存由宿主 API 处理,宿主需配置相应平台的相册用途说明;插件不会为诊断采集新增无关权限。插件 iOS 隐私清单与原生依赖配置随目录交付,需结合宿主包及目标 SDK 审核。
OpenCV 依赖和许可见 uni_modules/lizhao-img-eraser/native-dependencies.json、uni_modules/lizhao-img-eraser/licenses/。iOS 使用官方 SDK 裁出的物理 arm64 静态 framework;其体积较大,上传包大小和 Apple 链接必须以实际打包结果为准。不能通过热更新 appResource/wgt 为已安装的旧基座加入插件原生代码。
Android 文件管理器和编辑器分别需要安装包注册 uts.sdk.modules.lizhaoImgEraser.ImageEraserFilePickerActivity 与 uts.sdk.modules.lizhaoImgEraser.ImageEraserActivity。插件的 uni_modules/lizhao-img-eraser/utssdk/app-android/AndroidManifest.xml 已提供注册;首次接入或新增文件选择入口后,需要重新制作并安装自定义基座。仅热更新页面和 Kotlin 类,不能补入安装包的组件注册。若点击后返回 9231009 并提示未注册组件,请检查实际安装的基座;示例在选图按钮下显示当前状态,详细原因同时保留在底部诊断报告中。available 表示引擎实际可用,editorAvailable 还要求编辑器组件已注册并启用。
诊断与复制
两宿主示例底部提供一键复制日志。报告有编号、生成时间及时区、日志条数、正文长度、首尾标记,包含运行时环境、插件诊断和全部保留操作日志。未知 HX/编译器/安装包类型写明 unknown;页面源快照与原生 nativeBuildId 仅用于核对源码,不冒充构建或设备验收证据。
长报告按同一固定快照分段,只有剪贴板成功回调后才推进;失败显示真实错误,并可独立浏览全部分段、逐段长按复制。手动浏览不会改变自动复制进度或提示伪成功。复制不清空原日志,不默认上传。实际剪贴板和跨应用转发应在目标设备验收。
- 修复依据邻近像素估算,不能恢复被水印遮挡的真实信息;导出前检查细节。
- 自动检测不是OCR或通用语义识别;不规则覆盖、单块大字和多种Logo可直接手动处理。
- 输入文件、原图对照与输出结果各有生命周期;保存相册与释放结果分别处理。
作者系列 UTS 插件
以下为作者已在 DCloud 插件市场上架的 UTS 插件,可按业务场景组合使用。最新发布内容可查看作者主页。
| 插件 | 能力方向 | 插件市场 |
|---|---|---|
lizhao-app-keepalive |
应用保活、唤醒、自愈与报告 | 查看插件 |
lizhao-bg-audio |
背景音频播放、队列、倍速与事件 | 查看插件 |
lizhao-ble |
BLE 扫描、连接、读写、通知与自动重连 | 查看插件 |
lizhao-call-kit |
电话、短信、通讯录原生能力 | 查看插件 |
lizhao-camera-pro |
原生相机、拍照录像、水印与媒体保存 | 查看插件 |
lizhao-cast-screen |
DLNA 投屏、AirPlay 路由入口 | 查看插件 |
lizhao-choose-file |
原生文件选择、上传、进度与取消 | 查看插件 |
lizhao-device-id |
设备标识、隐私策略与诊断 | 查看插件 |
lizhao-doc-corrector |
文档扫描、矫正、增强与识别 | 查看插件 |
lizhao-emu-detect |
模拟器环境检测、风险评分与证据 | 查看插件 |
lizhao-float-window |
悬浮窗、画中画、权限与诊断 | 查看插件 |
lizhao-gallery-pro |
相册媒体分页、筛选、缩略图与导出 | 查看插件 |
lizhao-hce-card |
NFC 虚拟卡、APDU 交互与 NDEF 标签模拟 | 查看插件 |
lizhao-health |
健康数据授权、查询、统计与写入 | 查看插件 |
lizhao-icon-pro |
SVG 图标组件、多主题与缓存 | 查看插件 |
lizhao-nfc-pro |
NFC 标签读写、NDEF、IsoDep 与诊断 | 查看插件 |
lizhao-notify-pro |
本地通知、点击动作、进度与定时提醒 | 查看插件 |
lizhao-novel-reader |
原生小说阅读、仿真翻页与段落评论 | 查看插件 |
lizhao-pdf-pro |
PDF 阅读、签批、真实写回与页面处理 | 查看插件 |
lizhao-scan-pro |
原生扫码、连续扫码、相册识别 | 查看插件 |
lizhao-serial-port |
路径串口、USB 串口、多会话收发与诊断 | 查看插件 |
lizhao-share-plus |
系统分享、远程文件下载后分享 | 查看插件 |
lizhao-smart-tts |
系统 TTS、云端合成、听书方案 | 查看插件 |
lizhao-sqlite-pro |
原生 SQLite、迁移、备份与诊断 | 查看插件 |
lizhao-sse-pro |
SSE、Line、JSONL 与 Raw 流式请求 | 查看插件 |
lizhao-tcp-pro |
TCP 客户端、服务端、多连接与诊断 | 查看插件 |
lizhao-usb-storage |
U 盘、移动硬盘文件浏览、读写与批量复制 | 查看插件 |
lizhao-video-editor |
视频裁剪、压缩、取帧与 FFmpeg/FFprobe | 查看插件 |
lizhao-video-feed |
短视频上下滑、短剧选集与分页加载 | 查看插件 |
lizhao-video-thumb |
视频封面、批量取帧与 Base64 返回 | 查看插件 |
lizhao-vpn-pro |
企业 VPN、IKEv2、安全接入与脱敏诊断 | 查看插件 |
lizhao-wechat-kit |
微信登录、分享、支付、小程序与客服 | 查看插件 |

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 6486
赞赏 5
下载 12684558
赞赏 1956
赞赏
京公网安备:11010802035340号