ms-vite-plugin 1.4.59 → 1.4.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/luaBundle.js +1 -1
- package/dist/luaObfuscator/addVararg.d.ts +2 -0
- package/dist/luaObfuscator/addVararg.js +1 -0
- package/dist/luaObfuscator/antiTamper.d.ts +2 -0
- package/dist/luaObfuscator/antiTamper.js +26 -0
- package/dist/luaObfuscator/ast.d.ts +191 -0
- package/dist/luaObfuscator/ast.js +1 -0
- package/dist/luaObfuscator/cipher.d.ts +10 -0
- package/dist/luaObfuscator/cipher.js +28 -0
- package/dist/luaObfuscator/compiler.d.ts +31 -0
- package/dist/luaObfuscator/compiler.js +1 -0
- package/dist/luaObfuscator/constantArray.d.ts +5 -0
- package/dist/luaObfuscator/constantArray.js +1 -0
- package/dist/luaObfuscator/flatten.d.ts +2 -0
- package/dist/luaObfuscator/flatten.js +1 -0
- package/dist/luaObfuscator/index.d.ts +6 -0
- package/dist/luaObfuscator/index.js +1 -0
- package/dist/luaObfuscator/lexer.d.ts +14 -0
- package/dist/luaObfuscator/lexer.js +10 -0
- package/dist/luaObfuscator/minify.d.ts +3 -0
- package/dist/luaObfuscator/minify.js +1 -0
- package/dist/luaObfuscator/numbers.d.ts +2 -0
- package/dist/luaObfuscator/numbers.js +1 -0
- package/dist/luaObfuscator/opcodes.d.ts +3 -0
- package/dist/luaObfuscator/opcodes.js +1 -0
- package/dist/luaObfuscator/parser.d.ts +8 -0
- package/dist/luaObfuscator/parser.js +1 -0
- package/dist/luaObfuscator/rename.d.ts +3 -0
- package/dist/luaObfuscator/rename.js +1 -0
- package/dist/luaObfuscator/reserved.d.ts +5 -0
- package/dist/luaObfuscator/reserved.js +1 -0
- package/dist/luaObfuscator/scope.d.ts +11 -0
- package/dist/luaObfuscator/scope.js +1 -0
- package/dist/luaObfuscator/selftest.d.ts +1 -0
- package/dist/luaObfuscator/selftest.js +39 -0
- package/dist/luaObfuscator/splitStrings.d.ts +2 -0
- package/dist/luaObfuscator/splitStrings.js +1 -0
- package/dist/luaObfuscator/strings.d.ts +4 -0
- package/dist/luaObfuscator/strings.js +1 -0
- package/dist/luaObfuscator/visit.d.ts +5 -0
- package/dist/luaObfuscator/visit.js +1 -0
- package/dist/luaObfuscator/vmEmit.d.ts +2 -0
- package/dist/luaObfuscator/vmEmit.js +281 -0
- package/dist/luaObfuscator/wrapInFunction.d.ts +2 -0
- package/dist/luaObfuscator/wrapInFunction.js +1 -0
- package/docs/AGENTS.md +1 -1
- package/docs/SKILL.md +1 -1
- package/docs/api/hid.md +21 -0
- package/docs/apicn/hid.md +21 -0
- package/docs/apilua/action.md +2 -27
- package/docs/apilua/appleocr.md +2 -6
- package/docs/apilua/cloud.md +2 -6
- package/docs/apilua/config.md +2 -6
- package/docs/apilua/cryptoUtils.md +2 -7
- package/docs/apilua/device.md +2 -19
- package/docs/apilua/dotocr.md +2 -5
- package/docs/apilua/file.md +2 -17
- package/docs/apilua/global.md +1 -1
- package/docs/apilua/hid.md +25 -44
- package/docs/apilua/hotUpdate.md +2 -3
- package/docs/apilua/http.md +2 -7
- package/docs/apilua/image.md +2 -20
- package/docs/apilua/ime.md +2 -10
- package/docs/apilua/logger.md +3 -9
- package/docs/apilua/media.md +2 -9
- package/docs/apilua/mysql.md +2 -10
- package/docs/apilua/netCard.md +2 -6
- package/docs/apilua/node.md +2 -3
- package/docs/apilua/opencv.md +1 -27
- package/docs/apilua/paddleocr.md +2 -7
- package/docs/apilua/pip.md +2 -12
- package/docs/apilua/system.md +2 -23
- package/docs/apilua/tomatoocr.md +2 -16
- package/docs/apilua/tts.md +2 -9
- package/docs/apilua/ui.md +3 -9
- package/docs/apilua/utils.md +2 -9
- package/docs/apilua/yolo.md +2 -4
- package/docs/apilua/yolocls.md +2 -5
- package/docs/apipython/hid.md +22 -0
- package/docs/mcp-agent-description.md +1 -1
- package/docs/quick/vscode/createProject.md +1 -1
- package/docs/quick/vscode/packProject.md +1 -1
- package/package.json +1 -1
package/docs/apilua/logger.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 日志模块 (Logger)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `logger`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
日志模块提供了完整的日志记录功能,支持不同的日志级别、文件输出、日志管理等。
|
|
4
6
|
|
|
5
7
|
- **日志级别** 开发环境默认 `debug`,打包环境默认 `info`。如需自定义日志级别,可使用 `setLoggerLevel` 方法。
|
|
@@ -14,7 +16,7 @@
|
|
|
14
16
|
|
|
15
17
|
- **关闭存储日志** 可使用 `setLogToFile(false)` 关闭将日志输出到文件的功能。
|
|
16
18
|
|
|
17
|
-
- **全局别名** `logd` / `logi` / `logw` / `loge` 是裸全局,分别等同 `logger.debug` / `logger.info` / `logger.warn` / `logger.error
|
|
19
|
+
- **全局别名** `logd` / `logi` / `logw` / `loge` 是裸全局,分别等同 `logger.debug` / `logger.info` / `logger.warn` / `logger.error`,无需再取模块表。
|
|
18
20
|
|
|
19
21
|
## 日志级别
|
|
20
22
|
|
|
@@ -49,7 +51,6 @@ function setLoggerLevel(level) end
|
|
|
49
51
|
**示例:**
|
|
50
52
|
|
|
51
53
|
```lua
|
|
52
|
-
local logger = require("logger")
|
|
53
54
|
-- 设置为调试级别(输出所有日志)
|
|
54
55
|
logger.setLoggerLevel("debug")
|
|
55
56
|
-- 设置为信息级别(不输出调试日志)
|
|
@@ -79,7 +80,6 @@ function setLogToFile(enabled) end
|
|
|
79
80
|
**示例:**
|
|
80
81
|
|
|
81
82
|
```lua
|
|
82
|
-
local logger = require("logger")
|
|
83
83
|
-- 启用文件日志(默认)
|
|
84
84
|
logger.setLogToFile(true)
|
|
85
85
|
-- 禁用文件日志(只在控制台输出)
|
|
@@ -110,7 +110,6 @@ function setMaxLogFileCount(count) end
|
|
|
110
110
|
**示例:**
|
|
111
111
|
|
|
112
112
|
```lua
|
|
113
|
-
local logger = require("logger")
|
|
114
113
|
-- 设置最大日志文件数量为 5 个文件
|
|
115
114
|
logger.setMaxLogFileCount(5)
|
|
116
115
|
```
|
|
@@ -136,7 +135,6 @@ function setMaxLogFileSize(size) end
|
|
|
136
135
|
**示例:**
|
|
137
136
|
|
|
138
137
|
```lua
|
|
139
|
-
local logger = require("logger")
|
|
140
138
|
-- 设置最大日志文件大小为 5MB
|
|
141
139
|
logger.setMaxLogFileSize(5)
|
|
142
140
|
```
|
|
@@ -156,7 +154,6 @@ function resetLogFile() end
|
|
|
156
154
|
**示例:**
|
|
157
155
|
|
|
158
156
|
```lua
|
|
159
|
-
local logger = require("logger")
|
|
160
157
|
logger.resetLogFile()
|
|
161
158
|
logger.info("日志文件已重置")
|
|
162
159
|
|
|
@@ -244,8 +241,6 @@ function warn(...args) end
|
|
|
244
241
|
**示例:**
|
|
245
242
|
|
|
246
243
|
```lua
|
|
247
|
-
local logger = require("logger")
|
|
248
|
-
local device = require("device")
|
|
249
244
|
logger.warn("电池电量低于 20%")
|
|
250
245
|
logger.warn("网络连接不稳定")
|
|
251
246
|
logger.warn("使用了已废弃的 API")
|
|
@@ -288,7 +283,6 @@ function error(...args) end
|
|
|
288
283
|
**示例:**
|
|
289
284
|
|
|
290
285
|
```lua
|
|
291
|
-
local logger = require("logger")
|
|
292
286
|
logger.error("网络请求失败")
|
|
293
287
|
logger.error("文件读取错误")
|
|
294
288
|
logger.error("数据库连接失败")
|
package/docs/apilua/media.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 媒体模块 (Media)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `media`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
媒体模块提供了丰富的媒体操作功能,包括图片和视频的相册管理,以及音频播放控制等功能。
|
|
4
6
|
|
|
5
7
|
## 功能概览
|
|
@@ -35,7 +37,6 @@ function saveImageToAlbum(imageId) end
|
|
|
35
37
|
**示例:**
|
|
36
38
|
|
|
37
39
|
```lua
|
|
38
|
-
local media = require("media")
|
|
39
40
|
-- 保存截图到相册
|
|
40
41
|
media.saveImageToAlbum("screen")
|
|
41
42
|
|
|
@@ -75,7 +76,6 @@ function saveVideoToAlbumPath(path) end
|
|
|
75
76
|
**示例:**
|
|
76
77
|
|
|
77
78
|
```lua
|
|
78
|
-
local media = require("media")
|
|
79
79
|
-- 保存视频到相册 (从 documents 目录读取)
|
|
80
80
|
local documentsDir = file.getInternalDir("documents")
|
|
81
81
|
local videoName = "video.mp4"
|
|
@@ -104,7 +104,6 @@ function deleteAllPhotos() end
|
|
|
104
104
|
**示例:**
|
|
105
105
|
|
|
106
106
|
```lua
|
|
107
|
-
local media = require("media")
|
|
108
107
|
-- 清空相册图片
|
|
109
108
|
local deleted = media.deleteAllPhotos()
|
|
110
109
|
if deleted then
|
|
@@ -130,7 +129,6 @@ function deleteAllVideos() end
|
|
|
130
129
|
**示例:**
|
|
131
130
|
|
|
132
131
|
```lua
|
|
133
|
-
local media = require("media")
|
|
134
132
|
-- 清空相册视频
|
|
135
133
|
local deleted = media.deleteAllVideos()
|
|
136
134
|
if deleted then
|
|
@@ -150,7 +148,6 @@ function deleteAllScreenshots() end
|
|
|
150
148
|
**示例:**
|
|
151
149
|
|
|
152
150
|
```lua
|
|
153
|
-
local media = require("media")
|
|
154
151
|
local deleted = media.deleteAllScreenshots()
|
|
155
152
|
if deleted then
|
|
156
153
|
print("相册截图已清空")
|
|
@@ -184,7 +181,6 @@ function playMp3(path, loop) end
|
|
|
184
181
|
**示例:**
|
|
185
182
|
|
|
186
183
|
```lua
|
|
187
|
-
local media = require("media")
|
|
188
184
|
-- 播放背景音乐(循环)
|
|
189
185
|
local played = media.playMp3("/path/to/background.mp3", true)
|
|
190
186
|
if played then
|
|
@@ -213,7 +209,6 @@ function stopMp3() end
|
|
|
213
209
|
**示例:**
|
|
214
210
|
|
|
215
211
|
```lua
|
|
216
|
-
local media = require("media")
|
|
217
212
|
-- 停止音乐播放
|
|
218
213
|
local stopped = media.stopMp3()
|
|
219
214
|
if stopped then
|
|
@@ -246,7 +241,6 @@ function playMp3WaitEnd(path) end
|
|
|
246
241
|
**示例:**
|
|
247
242
|
|
|
248
243
|
```lua
|
|
249
|
-
local media = require("media")
|
|
250
244
|
-- 同步播放音频,等待播放完成
|
|
251
245
|
print("开始播放音频...")
|
|
252
246
|
local played = media.playMp3WaitEnd("/path/to/notification.mp3")
|
|
@@ -274,7 +268,6 @@ function isMp3Playing() end
|
|
|
274
268
|
**示例:**
|
|
275
269
|
|
|
276
270
|
```lua
|
|
277
|
-
local media = require("media")
|
|
278
271
|
if media.isMp3Playing() then
|
|
279
272
|
print("正在播放")
|
|
280
273
|
else
|
package/docs/apilua/mysql.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# MySQL 数据库模块 (MySQL)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `mysql`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
MySQL 模块提供了完整的 MySQL 数据库连接和操作功能,支持连接管理、查询执行、事务处理等核心数据库操作。
|
|
4
6
|
|
|
5
7
|
## 功能概览
|
|
@@ -91,7 +93,6 @@ function connect(config) end
|
|
|
91
93
|
**示例:**
|
|
92
94
|
|
|
93
95
|
```lua
|
|
94
|
-
local mysql = require("mysql")
|
|
95
96
|
local success = mysql.connect({
|
|
96
97
|
host = "localhost",
|
|
97
98
|
port = 3306,
|
|
@@ -119,7 +120,6 @@ function disconnect() end
|
|
|
119
120
|
**示例:**
|
|
120
121
|
|
|
121
122
|
```lua
|
|
122
|
-
local mysql = require("mysql")
|
|
123
123
|
mysql.disconnect()
|
|
124
124
|
print("数据库连接已断开")
|
|
125
125
|
```
|
|
@@ -140,7 +140,6 @@ function isConnected() end
|
|
|
140
140
|
**示例:**
|
|
141
141
|
|
|
142
142
|
```lua
|
|
143
|
-
local mysql = require("mysql")
|
|
144
143
|
if mysql.isConnected() then
|
|
145
144
|
print("数据库已连接")
|
|
146
145
|
else
|
|
@@ -177,7 +176,6 @@ function query(sql, params) end
|
|
|
177
176
|
**示例:**
|
|
178
177
|
|
|
179
178
|
```lua
|
|
180
|
-
local mysql = require("mysql")
|
|
181
179
|
-- 简单查询
|
|
182
180
|
local result1 = mysql.query("SELECT * FROM users")
|
|
183
181
|
if result1.success then
|
|
@@ -225,7 +223,6 @@ function execute(sql, params) end
|
|
|
225
223
|
**示例:**
|
|
226
224
|
|
|
227
225
|
```lua
|
|
228
|
-
local mysql = require("mysql")
|
|
229
226
|
-- 创建表
|
|
230
227
|
local createTableResult = mysql.execute("
|
|
231
228
|
CREATE TABLE IF NOT EXISTS users (
|
|
@@ -284,7 +281,6 @@ function beginTransaction() end
|
|
|
284
281
|
**示例:**
|
|
285
282
|
|
|
286
283
|
```lua
|
|
287
|
-
local mysql = require("mysql")
|
|
288
284
|
if mysql.beginTransaction() then
|
|
289
285
|
print("事务开始")
|
|
290
286
|
else
|
|
@@ -308,7 +304,6 @@ function commit() end
|
|
|
308
304
|
**示例:**
|
|
309
305
|
|
|
310
306
|
```lua
|
|
311
|
-
local mysql = require("mysql")
|
|
312
307
|
if mysql.commit() then
|
|
313
308
|
print("事务提交成功")
|
|
314
309
|
else
|
|
@@ -332,7 +327,6 @@ function rollback() end
|
|
|
332
327
|
**示例:**
|
|
333
328
|
|
|
334
329
|
```lua
|
|
335
|
-
local mysql = require("mysql")
|
|
336
330
|
if mysql.rollback() then
|
|
337
331
|
print("事务回滚成功")
|
|
338
332
|
else
|
|
@@ -345,7 +339,6 @@ end
|
|
|
345
339
|
### 基本数据库操作
|
|
346
340
|
|
|
347
341
|
```lua
|
|
348
|
-
local mysql = require("mysql")
|
|
349
342
|
-- 1. 创建连接配置
|
|
350
343
|
local dbConfig = {
|
|
351
344
|
host = "localhost",
|
|
@@ -381,7 +374,6 @@ end
|
|
|
381
374
|
### 事务处理示例
|
|
382
375
|
|
|
383
376
|
```lua
|
|
384
|
-
local mysql = require("mysql")
|
|
385
377
|
-- 转账操作示例
|
|
386
378
|
local function transferMoney(fromUserId, toUserId, amount)
|
|
387
379
|
if not mysql.beginTransaction() then
|
package/docs/apilua/netCard.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 卡密模块 (NetCard)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `netcard`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
卡密模块提供了卡密验证、备注设置以及键值对存储功能,用于管理网络卡密相关的操作。
|
|
4
6
|
|
|
5
7
|
## 功能概览
|
|
@@ -29,7 +31,6 @@ function isAuthCardMode() end
|
|
|
29
31
|
**示例:**
|
|
30
32
|
|
|
31
33
|
```lua
|
|
32
|
-
local netcard = require("netcard")
|
|
33
34
|
if netcard.isAuthCardMode() then
|
|
34
35
|
print("当前为授权卡密模式,不需要重复调用 verify")
|
|
35
36
|
end
|
|
@@ -64,7 +65,6 @@ function verify(cardNo) end
|
|
|
64
65
|
**示例 1:普通卡密模式**
|
|
65
66
|
|
|
66
67
|
```lua
|
|
67
|
-
local netcard = require("netcard")
|
|
68
68
|
-- 验证卡密
|
|
69
69
|
local cardNo = "ABC123456789"
|
|
70
70
|
local isValid = netcard.verify(cardNo)
|
|
@@ -105,7 +105,6 @@ function getCardInfo() end
|
|
|
105
105
|
**示例:**
|
|
106
106
|
|
|
107
107
|
```lua
|
|
108
|
-
local netcard = require("netcard")
|
|
109
108
|
-- 获取卡密信息
|
|
110
109
|
local cardInfo = netcard.getCardInfo()
|
|
111
110
|
print(ToJsonString(cardInfo))
|
|
@@ -136,7 +135,6 @@ function setCardRemark(remark) end
|
|
|
136
135
|
**示例:**
|
|
137
136
|
|
|
138
137
|
```lua
|
|
139
|
-
local netcard = require("netcard")
|
|
140
138
|
-- 设置卡密备注
|
|
141
139
|
local remark = "测试用户卡密"
|
|
142
140
|
local success = netcard.setCardRemark(remark)
|
|
@@ -175,7 +173,6 @@ function setValue(key, value) end
|
|
|
175
173
|
**示例:**
|
|
176
174
|
|
|
177
175
|
```lua
|
|
178
|
-
local netcard = require("netcard")
|
|
179
176
|
-- 设置键值对
|
|
180
177
|
local key = "userConfig"
|
|
181
178
|
local value = "enableNotification"
|
|
@@ -211,7 +208,6 @@ function getValue(key) end
|
|
|
211
208
|
**示例:**
|
|
212
209
|
|
|
213
210
|
```lua
|
|
214
|
-
local netcard = require("netcard")
|
|
215
211
|
-- 获取键值对
|
|
216
212
|
local key = "userConfig"
|
|
217
213
|
local value = netcard.getValue(key)
|
package/docs/apilua/node.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 节点模块 (Node)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `node`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
用于查找和操作当前界面上的控件节点。
|
|
4
6
|
|
|
5
7
|
**注意**
|
|
@@ -203,7 +205,6 @@ btn:setValue("hello")
|
|
|
203
205
|
| `clickRandom()` | 范围内随机点,不自动滚动 |
|
|
204
206
|
|
|
205
207
|
```lua
|
|
206
|
-
local node = require("node")
|
|
207
208
|
local selector <close> = node.createNodeSelector()
|
|
208
209
|
local btn = selector:label("确定"):type("XCUIElementTypeButton"):getOneNodeInfo(3000)
|
|
209
210
|
|
|
@@ -267,7 +268,6 @@ end
|
|
|
267
268
|
### 登录
|
|
268
269
|
|
|
269
270
|
```lua
|
|
270
|
-
local node = require("node")
|
|
271
271
|
local selector <close> = node.createNodeSelector()
|
|
272
272
|
|
|
273
273
|
local user = selector:type("XCUIElementTypeTextField"):getOneNodeInfo(5000)
|
|
@@ -298,7 +298,6 @@ end
|
|
|
298
298
|
### 列表里靠后的项
|
|
299
299
|
|
|
300
300
|
```lua
|
|
301
|
-
local node = require("node")
|
|
302
301
|
local selector <close> = node.createNodeSelector({ mode = 2 })
|
|
303
302
|
local item = selector:label("第 30 项"):getOneNodeInfo(5000)
|
|
304
303
|
if item then
|
package/docs/apilua/opencv.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# OpenCV 模块 (cv)
|
|
2
2
|
|
|
3
3
|
提供图像读写、颜色与阈值、滤波、几何变换、绘制、模板/特征匹配、轮廓、形态学、直方图、霍夫、扫码等能力。
|
|
4
|
-
|
|
4
|
+
模块表是内置全局 `cv`,直接调用即可。不要 `require` 宿主模块。无中文别名。方法与常量对齐 JS `cv`。
|
|
5
5
|
|
|
6
6
|
注意:
|
|
7
7
|
|
|
@@ -51,8 +51,6 @@ Mat:`Mat` · `zeros` · `ones` · `clone` · `empty` · `isRelease` · `releas
|
|
|
51
51
|
霍夫/连通域/直方图/扫码:`HoughLinesP` · `HoughCircles` · `connectedComponents` · `connectedComponentsWithStats` · `distanceTransform` · `floodFill` · `goodFeaturesToTrack` · `cornerHarris` · `cornerSubPix` · `calcHist` · `compareHist` · `calcBackProject` · `encodeQRCode` · `detectQRCode` · `detectBarcode`
|
|
52
52
|
|
|
53
53
|
```lua
|
|
54
|
-
local cv = require("cv")
|
|
55
|
-
local file = require("file")
|
|
56
54
|
|
|
57
55
|
local src = cv.capture()
|
|
58
56
|
local gray = cv.cvtColor(src, { code = cv.COLOR_BGR2GRAY })
|
|
@@ -97,7 +95,6 @@ function capture(x, y, ex, ey) end
|
|
|
97
95
|
**示例:**
|
|
98
96
|
|
|
99
97
|
```lua
|
|
100
|
-
local cv = require("cv")
|
|
101
98
|
local full = cv.capture()
|
|
102
99
|
local roi = cv.capture(100, 100, 300, 300)
|
|
103
100
|
cv.release(full)
|
|
@@ -142,9 +139,6 @@ function imread(path) end
|
|
|
142
139
|
**示例:**
|
|
143
140
|
|
|
144
141
|
```lua
|
|
145
|
-
local cv = require("cv")
|
|
146
|
-
local file = require("file")
|
|
147
|
-
local image = require("image")
|
|
148
142
|
local a = cv.imread("template.png")
|
|
149
143
|
local dir = file.getInternalDir("documents")
|
|
150
144
|
local b = cv.imread(dir .. "/shot.jpg")
|
|
@@ -177,7 +171,6 @@ function imdecode(data) end
|
|
|
177
171
|
**示例:**
|
|
178
172
|
|
|
179
173
|
```lua
|
|
180
|
-
local cv = require("cv")
|
|
181
174
|
local m = cv.imread("template.png")
|
|
182
175
|
local b64 = cv.imencode(".png", m)
|
|
183
176
|
local again = cv.imdecode(b64)
|
|
@@ -206,8 +199,6 @@ function imwrite(path, mat) end
|
|
|
206
199
|
**示例:**
|
|
207
200
|
|
|
208
201
|
```lua
|
|
209
|
-
local cv = require("cv")
|
|
210
|
-
local file = require("file")
|
|
211
202
|
local src = cv.capture()
|
|
212
203
|
cv.imwrite(file.getInternalDir("documents") .. "/out.png", src)
|
|
213
204
|
cv.release(src)
|
|
@@ -236,7 +227,6 @@ function imencode(ext, mat, quality) end
|
|
|
236
227
|
**示例:**
|
|
237
228
|
|
|
238
229
|
```lua
|
|
239
|
-
local cv = require("cv")
|
|
240
230
|
local b64 = cv.imencode(".jpg", mat, { quality = 85 })
|
|
241
231
|
```
|
|
242
232
|
|
|
@@ -260,7 +250,6 @@ function fromImageId(imageId) end
|
|
|
260
250
|
**示例:**
|
|
261
251
|
|
|
262
252
|
```lua
|
|
263
|
-
local cv = require("cv")
|
|
264
253
|
local imageId = image.captureScreen()
|
|
265
254
|
local mat = cv.fromImageId(imageId)
|
|
266
255
|
image.release(imageId)
|
|
@@ -288,7 +277,6 @@ function Mat(options) end
|
|
|
288
277
|
**示例:**
|
|
289
278
|
|
|
290
279
|
```lua
|
|
291
|
-
local cv = require("cv")
|
|
292
280
|
local z = cv.zeros({ rows = 100, cols = 100, type = cv.CV_8UC3 })
|
|
293
281
|
local filled = cv.Mat({ rows = 10, cols = 10, type = cv.CV_8UC1, scalar = [255] })
|
|
294
282
|
cv.release(z)
|
|
@@ -313,7 +301,6 @@ function clone(mat) end
|
|
|
313
301
|
**示例:**
|
|
314
302
|
|
|
315
303
|
```lua
|
|
316
|
-
local cv = require("cv")
|
|
317
304
|
local a = cv.capture()
|
|
318
305
|
local b = cv.clone(a)
|
|
319
306
|
cv.release(a)
|
|
@@ -360,7 +347,6 @@ function threshold(mat, options) end
|
|
|
360
347
|
**示例:**
|
|
361
348
|
|
|
362
349
|
```lua
|
|
363
|
-
local cv = require("cv")
|
|
364
350
|
local bin = cv.threshold(gray, { thresh = 127, maxval = 255, type = cv.THRESH_BINARY })
|
|
365
351
|
local otsu = cv.threshold(gray, { type = cv.THRESH_BINARY | cv.THRESH_OTSU })
|
|
366
352
|
```
|
|
@@ -387,7 +373,6 @@ function adaptiveThreshold(mat, options) end
|
|
|
387
373
|
**示例:**
|
|
388
374
|
|
|
389
375
|
```lua
|
|
390
|
-
local cv = require("cv")
|
|
391
376
|
local bin = cv.adaptiveThreshold(gray, {
|
|
392
377
|
maxValue = 255,
|
|
393
378
|
adaptiveMethod = cv.ADAPTIVE_THRESH_GAUSSIAN_C,
|
|
@@ -411,7 +396,6 @@ function inRange(mat, options) end
|
|
|
411
396
|
**示例:**
|
|
412
397
|
|
|
413
398
|
```lua
|
|
414
|
-
local cv = require("cv")
|
|
415
399
|
local hsv = cv.cvtColor(src, { code = cv.COLOR_BGR2HSV })
|
|
416
400
|
local mask = cv.inRange(hsv, { lower = [0, 80, 80], upper = [20, 255, 255] })
|
|
417
401
|
```
|
|
@@ -440,7 +424,6 @@ function GaussianBlur(mat, options) end
|
|
|
440
424
|
**示例:**
|
|
441
425
|
|
|
442
426
|
```lua
|
|
443
|
-
local cv = require("cv")
|
|
444
427
|
local g = cv.GaussianBlur(src, { ksize = 5, sigmaX = 1.5 })
|
|
445
428
|
local m = cv.medianBlur(src, { ksize = 5 })
|
|
446
429
|
local b = cv.bilateralFilter(src, { d = 9, sigmaColor = 75, sigmaSpace = 75 })
|
|
@@ -467,7 +450,6 @@ function Canny(mat, options) end
|
|
|
467
450
|
**示例:**
|
|
468
451
|
|
|
469
452
|
```lua
|
|
470
|
-
local cv = require("cv")
|
|
471
453
|
local edges = cv.Canny(gray, { threshold1 = 50, threshold2 = 150 })
|
|
472
454
|
local sx = cv.Sobel(gray, { dx = 1, dy = 0, ksize = 3 })
|
|
473
455
|
local histEq = cv.equalizeHist(gray)
|
|
@@ -487,7 +469,6 @@ function resize(mat, options) end
|
|
|
487
469
|
**示例:**
|
|
488
470
|
|
|
489
471
|
```lua
|
|
490
|
-
local cv = require("cv")
|
|
491
472
|
local small = cv.resize(src, { width = 360, height = 640 })
|
|
492
473
|
local half = cv.resize(src, { fx = 0.5, fy = 0.5, interpolation = cv.INTER_AREA })
|
|
493
474
|
```
|
|
@@ -508,7 +489,6 @@ function crop(mat, options) end
|
|
|
508
489
|
**示例:**
|
|
509
490
|
|
|
510
491
|
```lua
|
|
511
|
-
local cv = require("cv")
|
|
512
492
|
local roi = cv.crop(src, { x = 10, y = 10, ex = 110, ey = 110 })
|
|
513
493
|
```
|
|
514
494
|
|
|
@@ -532,7 +512,6 @@ function getRotationMatrix2D(options) end
|
|
|
532
512
|
**示例:**
|
|
533
513
|
|
|
534
514
|
```lua
|
|
535
|
-
local cv = require("cv")
|
|
536
515
|
local M = cv.getRotationMatrix2D({ center = { x = 100, y = 100 }, angle = 30, scale = 1 })
|
|
537
516
|
local out = cv.warpAffine(src, { M, width = 200, height = 200 })
|
|
538
517
|
cv.release(M)
|
|
@@ -555,7 +534,6 @@ function rectangle(mat, options) end
|
|
|
555
534
|
**示例:**
|
|
556
535
|
|
|
557
536
|
```lua
|
|
558
|
-
local cv = require("cv")
|
|
559
537
|
cv.rectangle(src, {
|
|
560
538
|
pt1 = { x = 10, y = 10 },
|
|
561
539
|
pt2 = { x = 100, y = 80 },
|
|
@@ -588,7 +566,6 @@ function fillPoly(mat, options) end
|
|
|
588
566
|
**示例:**
|
|
589
567
|
|
|
590
568
|
```lua
|
|
591
|
-
local cv = require("cv")
|
|
592
569
|
cv.polylines(src, {
|
|
593
570
|
pts = { { x = 0, y = 0 }, { x = 100, y = 0 }, { x = 100, y = 80 }, { x = 0, y = 80 } },
|
|
594
571
|
isClosed = true,
|
|
@@ -622,7 +599,6 @@ function matchTemplate(image, templ, methodOrOptions) end
|
|
|
622
599
|
**示例:**
|
|
623
600
|
|
|
624
601
|
```lua
|
|
625
|
-
local cv = require("cv")
|
|
626
602
|
local loc = cv.matchTemplateLoc(src, templ, { method = cv.TM_CCOEFF_NORMED })
|
|
627
603
|
print(string.format("best=(%s,%s) max=%s", loc.x, loc.y, loc.maxVal))
|
|
628
604
|
cv.rectangle(src, {
|
|
@@ -655,7 +631,6 @@ function findContours(mat, options) end
|
|
|
655
631
|
**示例:**
|
|
656
632
|
|
|
657
633
|
```lua
|
|
658
|
-
local cv = require("cv")
|
|
659
634
|
local ret = cv.findContours(bin, { mode = cv.RETR_TREE, method = cv.CHAIN_APPROX_SIMPLE })
|
|
660
635
|
print("count=" .. tostring(#ret.contours))
|
|
661
636
|
```
|
|
@@ -671,7 +646,6 @@ function boundingRect(matOrPoints) end
|
|
|
671
646
|
**示例:**
|
|
672
647
|
|
|
673
648
|
```lua
|
|
674
|
-
local cv = require("cv")
|
|
675
649
|
for _, c in ipairs(contours) do
|
|
676
650
|
local area = cv.contourArea(c)
|
|
677
651
|
if (area < 100) continue
|
package/docs/apilua/paddleocr.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# PaddleOCR 模块 (PaddleOCR)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `paddleocr`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
PaddleOCR 模块基于百度飞桨 PaddleOCR 技术,提供强大的光学字符识别(OCR)功能,支持中英文文本识别,可用于屏幕截图、图片文件等多种输入源的文字识别。
|
|
4
6
|
|
|
5
7
|
## 功能概览
|
|
@@ -77,7 +79,6 @@ function loadModel(modelId, useGpu) end
|
|
|
77
79
|
**示例:**
|
|
78
80
|
|
|
79
81
|
```lua
|
|
80
|
-
local paddleocr = require("paddleocr")
|
|
81
82
|
paddleocr.loadModel("ppocr-v6-tiny", false)
|
|
82
83
|
local loaded = paddleocr.loadModel("ppocr-v6-small", false)
|
|
83
84
|
print("PP-OCRv6 small 加载结果: " .. tostring(loaded))
|
|
@@ -108,7 +109,6 @@ function setMaxSideLen(maxSideLen) end
|
|
|
108
109
|
**示例:**
|
|
109
110
|
|
|
110
111
|
```lua
|
|
111
|
-
local paddleocr = require("paddleocr")
|
|
112
112
|
paddleocr.setMaxSideLen(960)
|
|
113
113
|
```
|
|
114
114
|
|
|
@@ -149,8 +149,6 @@ function recognizeAbs(input, x, y, ex, ey, confidenceThreshold) end
|
|
|
149
149
|
**示例:**
|
|
150
150
|
|
|
151
151
|
```lua
|
|
152
|
-
local paddleocr = require("paddleocr")
|
|
153
|
-
local action = require("action")
|
|
154
152
|
local absResults = paddleocr.recognizeAbs("screen", 100, 100, 500, 300)
|
|
155
153
|
if #absResults > 0 then
|
|
156
154
|
action.click(absResults[1].centerX, absResults[1].centerY)
|
|
@@ -196,8 +194,6 @@ function findTextAbs(input, targets, x, y, ex, ey, confidenceThreshold, exactMat
|
|
|
196
194
|
**示例:**
|
|
197
195
|
|
|
198
196
|
```lua
|
|
199
|
-
local paddleocr = require("paddleocr")
|
|
200
|
-
local action = require("action")
|
|
201
197
|
local absHits = paddleocr.findTextAbs("screen", { "确定" }, 100, 100, 500, 400, 0.6, false)
|
|
202
198
|
if #absHits > 0 then
|
|
203
199
|
action.click(absHits[1].centerX, absHits[1].centerY)
|
|
@@ -215,7 +211,6 @@ function free() end
|
|
|
215
211
|
**示例:**
|
|
216
212
|
|
|
217
213
|
```lua
|
|
218
|
-
local paddleocr = require("paddleocr")
|
|
219
214
|
|
|
220
215
|
-- 使用完毕后释放资源
|
|
221
216
|
paddleocr.free()
|
package/docs/apilua/pip.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 悬浮窗模块 (PIP)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `pip`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
悬浮窗模块提供 iOS 画中画(Picture in Picture)悬浮窗能力,可用于显示脚本日志、保活提示或脚本自定义文本。
|
|
4
6
|
|
|
5
7
|
## 功能特性
|
|
@@ -31,7 +33,6 @@ function isPipActive() end
|
|
|
31
33
|
**示例:**
|
|
32
34
|
|
|
33
35
|
```lua
|
|
34
|
-
local pip = require("pip")
|
|
35
36
|
local isActive = pip.isPipActive()
|
|
36
37
|
if isActive then
|
|
37
38
|
print("悬浮窗当前已打开")
|
|
@@ -56,7 +57,6 @@ function switchToLogMode() end
|
|
|
56
57
|
**示例:**
|
|
57
58
|
|
|
58
59
|
```lua
|
|
59
|
-
local pip = require("pip")
|
|
60
60
|
takeMeToFront()
|
|
61
61
|
local success = pip.switchToLogMode()
|
|
62
62
|
pip.setLogFontSize(10)
|
|
@@ -80,7 +80,6 @@ function switchToKeepAliveMode() end
|
|
|
80
80
|
**示例:**
|
|
81
81
|
|
|
82
82
|
```lua
|
|
83
|
-
local pip = require("pip")
|
|
84
83
|
takeMeToFront()
|
|
85
84
|
local success = pip.switchToKeepAliveMode()
|
|
86
85
|
```
|
|
@@ -103,7 +102,6 @@ function switchToCustomMode() end
|
|
|
103
102
|
**示例:**
|
|
104
103
|
|
|
105
104
|
```lua
|
|
106
|
-
local pip = require("pip")
|
|
107
105
|
takeMeToFront()
|
|
108
106
|
pip.switchToCustomMode()
|
|
109
107
|
pip.setCustomText("运行中\n进度 1/3")
|
|
@@ -129,7 +127,6 @@ function closeWindow() end
|
|
|
129
127
|
**示例:**
|
|
130
128
|
|
|
131
129
|
```lua
|
|
132
|
-
local pip = require("pip")
|
|
133
130
|
local success = pip.closeWindow()
|
|
134
131
|
```
|
|
135
132
|
|
|
@@ -160,7 +157,6 @@ function setContentSize(width, height) end
|
|
|
160
157
|
**示例:**
|
|
161
158
|
|
|
162
159
|
```lua
|
|
163
|
-
local pip = require("pip")
|
|
164
160
|
pip.switchToLogMode()
|
|
165
161
|
pip.setContentSize(280, 120)
|
|
166
162
|
|
|
@@ -193,7 +189,6 @@ function setLogFontSize(fontSize) end
|
|
|
193
189
|
**示例:**
|
|
194
190
|
|
|
195
191
|
```lua
|
|
196
|
-
local pip = require("pip")
|
|
197
192
|
pip.setLogFontSize(10)
|
|
198
193
|
pip.switchToLogMode()
|
|
199
194
|
```
|
|
@@ -223,7 +218,6 @@ function setCustomText(text) end
|
|
|
223
218
|
**示例:**
|
|
224
219
|
|
|
225
220
|
```lua
|
|
226
|
-
local pip = require("pip")
|
|
227
221
|
pip.setCustomText("运行中\n进度 1/3")
|
|
228
222
|
pip.switchToCustomMode()
|
|
229
223
|
```
|
|
@@ -253,7 +247,6 @@ function setCustomTextColor(color) end
|
|
|
253
247
|
**示例:**
|
|
254
248
|
|
|
255
249
|
```lua
|
|
256
|
-
local pip = require("pip")
|
|
257
250
|
pip.setCustomTextColor("#34c759")
|
|
258
251
|
pip.switchToCustomMode()
|
|
259
252
|
```
|
|
@@ -283,7 +276,6 @@ function setCustomTextSize(fontSize) end
|
|
|
283
276
|
**示例:**
|
|
284
277
|
|
|
285
278
|
```lua
|
|
286
|
-
local pip = require("pip")
|
|
287
279
|
pip.setCustomTextSize(18)
|
|
288
280
|
pip.switchToCustomMode()
|
|
289
281
|
```
|
|
@@ -313,7 +305,6 @@ function setCustomBackgroundColor(color) end
|
|
|
313
305
|
**示例:**
|
|
314
306
|
|
|
315
307
|
```lua
|
|
316
|
-
local pip = require("pip")
|
|
317
308
|
pip.setCustomBackgroundColor("#111111")
|
|
318
309
|
pip.switchToCustomMode()
|
|
319
310
|
```
|
|
@@ -321,7 +312,6 @@ pip.switchToCustomMode()
|
|
|
321
312
|
## 完整使用示例
|
|
322
313
|
|
|
323
314
|
```lua
|
|
324
|
-
local pip = require("pip")
|
|
325
315
|
takeMeToFront()
|
|
326
316
|
|
|
327
317
|
pip.switchToLogMode()
|