ms-vite-plugin 1.4.12 → 1.4.14
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/docs/api/appleocr.md +12 -7
- package/docs/api/global.md +14 -0
- package/docs/api/image.md +52 -0
- package/docs/api/paddleocr.md +5 -1
- package/docs/api/pip.md +32 -1
- package/docs/api/tomatoocr.md +27 -0
- package/docs/apicn/appleocr.md +12 -7
- package/docs/apicn/global.md +14 -0
- package/docs/apicn/image.md +54 -0
- package/docs/apicn/paddleocr.md +4 -0
- package/docs/apicn/pip.md +32 -1
- package/docs/apipython/appleocr.md +14 -9
- package/docs/apipython/image.md +45 -0
- package/docs/apipython/paddleocr.md +7 -4
- package/docs/apipython/pip.md +34 -1
- package/docs/apipython/tomatoocr.md +28 -0
- package/package.json +1 -1
package/docs/api/appleocr.md
CHANGED
|
@@ -234,7 +234,7 @@ if (absNumberResults.length > 0) {
|
|
|
234
234
|
|
|
235
235
|
#### findText
|
|
236
236
|
|
|
237
|
-
|
|
237
|
+
执行指定文本查找,在识别结果中查找目标子串,并返回目标子串的坐标。
|
|
238
238
|
|
|
239
239
|
```typescript
|
|
240
240
|
function findText(
|
|
@@ -245,6 +245,7 @@ function findText(
|
|
|
245
245
|
ex?: number,
|
|
246
246
|
ey?: number,
|
|
247
247
|
languages?: string[],
|
|
248
|
+
exactMatch?: boolean,
|
|
248
249
|
): OCRResult[];
|
|
249
250
|
```
|
|
250
251
|
|
|
@@ -253,24 +254,27 @@ function findText(
|
|
|
253
254
|
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
254
255
|
| ----------- | -------- | -------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
255
256
|
| `input` | string | 是 | - | 输入源,支持以下类型: <br>-`"screen"` 当前屏幕截图 <br>- `string` 图片文件路径或 URL <br>- `imageId` 图片 ID(通过 image 模块获取) |
|
|
256
|
-
| `texts` | string[] | 是 | - |
|
|
257
|
+
| `texts` | string[] | 是 | - | 要查找的目标文本数组,支持匹配识别结果中的子串 |
|
|
257
258
|
| `x` | number | 否 | - | 识别区域左上角 x 坐标 |
|
|
258
259
|
| `y` | number | 否 | - | 识别区域左上角 y 坐标 |
|
|
259
260
|
| `ex` | number | 否 | - | 识别区域右下角 x 坐标 |
|
|
260
261
|
| `ey` | number | 否 | - | 识别区域右下角 y 坐标 |
|
|
261
262
|
| `languages` | string[] | 否 | ["zh-Hans", "en-US"] | 可选,指定识别语言列表,如 ["zh-Hans", "en-US"] |
|
|
263
|
+
| `exactMatch` | boolean | 否 | false | 是否完整匹配;`false` 表示包含匹配,`true` 表示整条 OCR 识别结果文本必须等于目标文本 |
|
|
262
264
|
|
|
263
265
|
**返回值:**
|
|
264
266
|
|
|
265
267
|
| 类型 | 描述 |
|
|
266
268
|
| ------------- | ---------------------- |
|
|
267
|
-
| `OCRResult[]` |
|
|
269
|
+
| `OCRResult[]` | 命中子串的文本识别结果数组 |
|
|
268
270
|
|
|
269
271
|
**使用示例:**
|
|
270
272
|
|
|
271
273
|
```javascript
|
|
272
|
-
//
|
|
273
|
-
const textResults = appleOcr.findText("screen", ["
|
|
274
|
+
// 在“开始执行”中查找“开始”,返回“开始”子串区域
|
|
275
|
+
const textResults = appleOcr.findText("screen", ["开始"], 0, 0, 100, 100);
|
|
276
|
+
// 不指定 languages 但启用完整匹配时,用 null 占位 languages
|
|
277
|
+
const exactResults = appleOcr.findText("screen", ["开始"], 0, 0, 100, 100, null, true);
|
|
274
278
|
logi(`识别到 ${textResults.length} 个文本区域`);
|
|
275
279
|
textResults.forEach((result, index) => {
|
|
276
280
|
logi(`文本 ${index + 1}: ${result.text} (置信度: ${result.confidence})`);
|
|
@@ -281,7 +285,7 @@ textResults.forEach((result, index) => {
|
|
|
281
285
|
|
|
282
286
|
#### findTextAbs
|
|
283
287
|
|
|
284
|
-
|
|
288
|
+
查找目标子串,并将子串结果坐标映射为原图/全屏绝对坐标。
|
|
285
289
|
|
|
286
290
|
参数与 `findText` 相同。传入裁剪区域时,返回坐标可直接用于全屏点击。
|
|
287
291
|
|
|
@@ -294,13 +298,14 @@ function findTextAbs(
|
|
|
294
298
|
ex?: number,
|
|
295
299
|
ey?: number,
|
|
296
300
|
languages?: string[],
|
|
301
|
+
exactMatch?: boolean,
|
|
297
302
|
): OCRResult[];
|
|
298
303
|
```
|
|
299
304
|
|
|
300
305
|
**示例:**
|
|
301
306
|
|
|
302
307
|
```javascript
|
|
303
|
-
const absHits = appleOcr.findTextAbs("screen", ["
|
|
308
|
+
const absHits = appleOcr.findTextAbs("screen", ["开始"], 100, 100, 500, 400);
|
|
304
309
|
if (absHits.length > 0) {
|
|
305
310
|
action.click(absHits[0].centerX, absHits[0].centerY);
|
|
306
311
|
}
|
package/docs/api/global.md
CHANGED
|
@@ -48,6 +48,20 @@ declare const __debug__: boolean;
|
|
|
48
48
|
logi(`调试模式: ${__debug__}`);
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
+
#### **isRunning**
|
|
52
|
+
|
|
53
|
+
当前脚本是否在运行。
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
declare const __isRunning__: boolean;
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**示例:**
|
|
60
|
+
|
|
61
|
+
```javascript
|
|
62
|
+
logi(`运行状态: ${__isRunning__}`);
|
|
63
|
+
```
|
|
64
|
+
|
|
51
65
|
### 应用信息
|
|
52
66
|
|
|
53
67
|
#### **platform**
|
package/docs/api/image.md
CHANGED
|
@@ -460,6 +460,58 @@ if (imageId) {
|
|
|
460
460
|
}
|
|
461
461
|
```
|
|
462
462
|
|
|
463
|
+
### countColor - 统计颜色数量
|
|
464
|
+
|
|
465
|
+
统计指定区域内命中目标颜色的像素数量。`colors` 可以传入一个或多个候选颜色,多个颜色使用 `|` 分隔,支持 `主色-偏色` 格式,如 `#0A0A0A-#101010|#FFFFFF-#101010`。同一个像素同时命中多个候选颜色时只统计一次。
|
|
466
|
+
|
|
467
|
+
```typescript
|
|
468
|
+
function countColor(
|
|
469
|
+
imageId: string,
|
|
470
|
+
colors: string,
|
|
471
|
+
threshold: number,
|
|
472
|
+
x: number,
|
|
473
|
+
y: number,
|
|
474
|
+
ex: number,
|
|
475
|
+
ey: number,
|
|
476
|
+
): number;
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
**参数:**
|
|
480
|
+
|
|
481
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
482
|
+
| ----------- | ------ | -------- | ------ | ------------------------------------------------------------------------------------ |
|
|
483
|
+
| `imageId` | string | 是 | - | 图片 ID,支持 `"screen"`、图片文件路径、HTTP 图片地址或已加载的图片 ID |
|
|
484
|
+
| `colors` | string | 是 | - | 颜色列表,支持 `主色-偏色\|主色-偏色` 格式,如 `#0A0A0A-#101010\|#FFFFFF-#101010` |
|
|
485
|
+
| `threshold` | number | 是 | - | 颜色匹配阈值 (0.0-1.0),数值越大匹配越严格 |
|
|
486
|
+
| `x, y` | number | 是 | - | 统计区域左上角坐标 |
|
|
487
|
+
| `ex, ey` | number | 是 | - | 统计区域右下角坐标;传 `0` 表示延伸到图片右侧或底部边界 |
|
|
488
|
+
|
|
489
|
+
**返回值:**
|
|
490
|
+
|
|
491
|
+
| 类型 | 描述 |
|
|
492
|
+
| -------- | ------------------------------------------------------------------------------------ |
|
|
493
|
+
| `number` | 命中目标颜色的像素数量;图片加载失败、颜色为空、颜色格式无效或区域不合法时返回 `0` |
|
|
494
|
+
|
|
495
|
+
**示例:**
|
|
496
|
+
|
|
497
|
+
```javascript
|
|
498
|
+
const imageId = image.captureFullScreen();
|
|
499
|
+
if (imageId) {
|
|
500
|
+
const count = image.countColor(
|
|
501
|
+
imageId,
|
|
502
|
+
"#0A0A0A-#101010|#FFFFFF-#101010",
|
|
503
|
+
0.92,
|
|
504
|
+
100,
|
|
505
|
+
200,
|
|
506
|
+
500,
|
|
507
|
+
700,
|
|
508
|
+
);
|
|
509
|
+
|
|
510
|
+
logi(`目标区域命中颜色像素数量: ${count}`);
|
|
511
|
+
image.release(imageId);
|
|
512
|
+
}
|
|
513
|
+
```
|
|
514
|
+
|
|
463
515
|
### cmpColor - 多点比色
|
|
464
516
|
|
|
465
517
|
```typescript
|
package/docs/api/paddleocr.md
CHANGED
|
@@ -201,6 +201,7 @@ function findText(
|
|
|
201
201
|
ex?: number,
|
|
202
202
|
ey?: number,
|
|
203
203
|
confidenceThreshold?: number,
|
|
204
|
+
exactMatch?: boolean,
|
|
204
205
|
): OCRResult[];
|
|
205
206
|
```
|
|
206
207
|
|
|
@@ -215,6 +216,7 @@ function findText(
|
|
|
215
216
|
| `ex` | number | 否 | 0 | 查找区域右下角 x 坐标 |
|
|
216
217
|
| `ey` | number | 否 | 0 | 查找区域右下角 y 坐标 |
|
|
217
218
|
| `confidenceThreshold` | number | 否 | 0.6 | 置信度阈值,默认值为 0.6 |
|
|
219
|
+
| `exactMatch` | boolean | 否 | false | 是否完整匹配;`false` 表示包含匹配,`true` 表示整条 OCR 识别结果文本必须等于目标文本 |
|
|
218
220
|
|
|
219
221
|
**返回值:**
|
|
220
222
|
|
|
@@ -240,6 +242,7 @@ const hitResults = paddleOcr.findText(
|
|
|
240
242
|
0,
|
|
241
243
|
0,
|
|
242
244
|
0.6,
|
|
245
|
+
false,
|
|
243
246
|
);
|
|
244
247
|
if (hitResults.length > 0) {
|
|
245
248
|
hitResults.forEach((item, index) => {
|
|
@@ -269,13 +272,14 @@ function findTextAbs(
|
|
|
269
272
|
ex?: number,
|
|
270
273
|
ey?: number,
|
|
271
274
|
confidenceThreshold?: number,
|
|
275
|
+
exactMatch?: boolean,
|
|
272
276
|
): OCRResult[];
|
|
273
277
|
```
|
|
274
278
|
|
|
275
279
|
**示例:**
|
|
276
280
|
|
|
277
281
|
```javascript
|
|
278
|
-
const absHits = paddleOcr.findTextAbs("screen", ["确定"], 100, 100, 500, 400, 0.6);
|
|
282
|
+
const absHits = paddleOcr.findTextAbs("screen", ["确定"], 100, 100, 500, 400, 0.6, false);
|
|
279
283
|
if (absHits.length > 0) {
|
|
280
284
|
action.click(absHits[0].centerX, absHits[0].centerY);
|
|
281
285
|
}
|
package/docs/api/pip.md
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
- **关闭控制**:支持主动关闭悬浮窗
|
|
9
9
|
- **状态查询**:判断悬浮窗是否正在显示
|
|
10
10
|
- **尺寸设置**:日志模式和自定义模式支持设置内容宽高,并按模式分别持久化
|
|
11
|
+
- **日志显示**:日志模式支持设置日志文字大小
|
|
11
12
|
- **自定义文本**:自定义模式支持文本、换行、文字颜色、背景色和文字大小
|
|
12
13
|
|
|
13
14
|
## API 方法
|
|
@@ -54,6 +55,7 @@ function switchToLogMode(): boolean;
|
|
|
54
55
|
```typescript
|
|
55
56
|
takeMeToFront();
|
|
56
57
|
const success = pip.switchToLogMode();
|
|
58
|
+
pip.setLogFontSize(10);
|
|
57
59
|
```
|
|
58
60
|
|
|
59
61
|
### switchToKeepAliveMode - 切换到保活模式
|
|
@@ -152,6 +154,33 @@ pip.switchToCustomMode();
|
|
|
152
154
|
pip.setContentSize(120, 180);
|
|
153
155
|
```
|
|
154
156
|
|
|
157
|
+
### setLogFontSize - 设置日志文字大小
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
function setLogFontSize(fontSize: number): boolean;
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
设置日志模式显示文本的文字大小。该方法只更新日志字号,不会自动切换到日志模式。
|
|
164
|
+
|
|
165
|
+
**参数:**
|
|
166
|
+
|
|
167
|
+
| 参数 | 类型 | 必填 | 描述 |
|
|
168
|
+
| ---------- | -------- | ---- | ------------------------ |
|
|
169
|
+
| `fontSize` | `number` | 是 | 日志字号,必须是有效数字 |
|
|
170
|
+
|
|
171
|
+
**返回值:**
|
|
172
|
+
|
|
173
|
+
| 类型 | 描述 |
|
|
174
|
+
| --------- | ---------------------------------------------------------- |
|
|
175
|
+
| `boolean` | `true` 代表日志文字大小已提交;`false` 代表字号无效 |
|
|
176
|
+
|
|
177
|
+
**示例:**
|
|
178
|
+
|
|
179
|
+
```typescript
|
|
180
|
+
pip.setLogFontSize(10);
|
|
181
|
+
pip.switchToLogMode();
|
|
182
|
+
```
|
|
183
|
+
|
|
155
184
|
### setCustomText - 设置自定义文本
|
|
156
185
|
|
|
157
186
|
```typescript
|
|
@@ -267,6 +296,7 @@ takeMeToFront();
|
|
|
267
296
|
|
|
268
297
|
pip.switchToLogMode();
|
|
269
298
|
pip.setContentSize(280, 120);
|
|
299
|
+
pip.setLogFontSize(10);
|
|
270
300
|
|
|
271
301
|
pip.setCustomText("任务运行中\n1/3");
|
|
272
302
|
pip.setCustomTextColor("#34c759");
|
|
@@ -282,7 +312,8 @@ pip.setContentSize(120, 180);
|
|
|
282
312
|
2. **设备兼容性**:仅支持 iOS 15+ 且具备画中画功能的设备
|
|
283
313
|
3. **系统限制**:悬浮窗位置和实际显示尺寸由 iOS 管理
|
|
284
314
|
4. **尺寸持久化**:日志模式和自定义模式分别保存尺寸,互不共用;保活模式不接受脚本尺寸
|
|
285
|
-
5.
|
|
315
|
+
5. **日志字号**:日志字号只影响日志模式,保活模式和自定义模式不受影响
|
|
316
|
+
6. **竖向文本**:自定义窗口高度大于宽度时,文本会按逐字符换行方式竖向显示
|
|
286
317
|
|
|
287
318
|
## 故障排除
|
|
288
319
|
|
package/docs/api/tomatoocr.md
CHANGED
|
@@ -396,6 +396,30 @@ const result = tomatoOcr.findTapPoints(“确定”);
|
|
|
396
396
|
logi(result);
|
|
397
397
|
```
|
|
398
398
|
|
|
399
|
+
### 资源释放方法
|
|
400
|
+
|
|
401
|
+
#### `release`
|
|
402
|
+
|
|
403
|
+
释放 TomatoOCR SDK 已加载的 OCR 模型和内部资源。
|
|
404
|
+
|
|
405
|
+
```typescript
|
|
406
|
+
function release(): void;
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
**参数:**
|
|
410
|
+
|
|
411
|
+
无
|
|
412
|
+
|
|
413
|
+
**返回值:**
|
|
414
|
+
|
|
415
|
+
无
|
|
416
|
+
|
|
417
|
+
**示例:**
|
|
418
|
+
|
|
419
|
+
```typescript
|
|
420
|
+
tomatoOcr.release();
|
|
421
|
+
```
|
|
422
|
+
|
|
399
423
|
## 完整示例
|
|
400
424
|
|
|
401
425
|
```typescript
|
|
@@ -417,6 +441,9 @@ logi("识别结果:" + ocrResult);
|
|
|
417
441
|
// 查找点击点
|
|
418
442
|
const tapResult = tomatoOcr.findTapPoint("登录");
|
|
419
443
|
logi("点击点坐标:" + tapResult);
|
|
444
|
+
|
|
445
|
+
// 释放 TomatoOCR 资源
|
|
446
|
+
tomatoOcr.release();
|
|
420
447
|
```
|
|
421
448
|
|
|
422
449
|
## 注意事项
|
package/docs/apicn/appleocr.md
CHANGED
|
@@ -234,7 +234,7 @@ if (绝对坐标数字结果.length > 0) {
|
|
|
234
234
|
|
|
235
235
|
#### 查找文本
|
|
236
236
|
|
|
237
|
-
|
|
237
|
+
执行指定文本查找,在识别结果中查找目标子串,并返回目标子串的坐标。
|
|
238
238
|
|
|
239
239
|
```typescript
|
|
240
240
|
function 查找文本(
|
|
@@ -245,6 +245,7 @@ function 查找文本(
|
|
|
245
245
|
图片边界框右下角x坐标?: 数字,
|
|
246
246
|
图片边界框右下角y坐标?: 数字,
|
|
247
247
|
识别语言数组?: 数组<字符串>,
|
|
248
|
+
是否完整匹配?: 布尔值,
|
|
248
249
|
): 数组<OCR识别结果>;
|
|
249
250
|
```
|
|
250
251
|
|
|
@@ -253,24 +254,27 @@ function 查找文本(
|
|
|
253
254
|
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
254
255
|
| ----------------------- | ------------ | -------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
255
256
|
| `输入源` | string | 是 | - | 输入源,支持以下类型: <br>-`"screen"` 当前屏幕截图 <br>- `string` 图片文件路径或 URL <br>- `imageId` 图片 ID(通过 image 模块获取) |
|
|
256
|
-
| `要查找的文本数组` | 数组<字符串> | 是 | - |
|
|
257
|
+
| `要查找的文本数组` | 数组<字符串> | 是 | - | 要查找的目标文本数组,支持匹配识别结果中的子串 |
|
|
257
258
|
| `图片边界框左上角x坐标` | number | 否 | - | 识别区域左上角 x 坐标 |
|
|
258
259
|
| `图片边界框左上角y坐标` | number | 否 | - | 识别区域左上角 y 坐标 |
|
|
259
260
|
| `图片边界框右下角x坐标` | number | 否 | - | 识别区域右下角 x 坐标 |
|
|
260
261
|
| `图片边界框右下角y坐标` | number | 否 | - | 识别区域右下角 y 坐标 |
|
|
261
262
|
| `识别语言数组` | 数组<字符串> | 否 | ["zh-Hans", "en-US"] | 可选,指定识别语言列表,如 ["zh-Hans", "en-US"] |
|
|
263
|
+
| `是否完整匹配` | boolean | 否 | false | 是否完整匹配;`false` 表示包含匹配,`true` 表示整条 OCR 识别结果文本必须等于目标文本 |
|
|
262
264
|
|
|
263
265
|
**返回值:**
|
|
264
266
|
|
|
265
267
|
| 类型 | 描述 |
|
|
266
268
|
| ------------------- | ---------------------- |
|
|
267
|
-
| `数组<OCR识别结果>` |
|
|
269
|
+
| `数组<OCR识别结果>` | 命中子串的文本识别结果数组 |
|
|
268
270
|
|
|
269
271
|
**使用示例:**
|
|
270
272
|
|
|
271
273
|
```javascript
|
|
272
|
-
//
|
|
273
|
-
const 文本识别结果 = 查找文本("screen", ["
|
|
274
|
+
// 在“开始执行”中查找“开始”,返回“开始”子串区域
|
|
275
|
+
const 文本识别结果 = 查找文本("screen", ["开始"], 0, 0, 100, 100);
|
|
276
|
+
// 不指定识别语言但启用完整匹配时,用 null 占位识别语言数组
|
|
277
|
+
const 全字命中结果 = 查找文本("screen", ["开始"], 0, 0, 100, 100, null, true);
|
|
274
278
|
$打印信息日志(`识别到 ${文本识别结果.length} 个文本区域`);
|
|
275
279
|
文本识别结果.forEach((result, index) => {
|
|
276
280
|
$打印信息日志(
|
|
@@ -285,7 +289,7 @@ $打印信息日志(`识别到 ${文本识别结果.length} 个文本区域`);
|
|
|
285
289
|
|
|
286
290
|
#### 查找文本绝对坐标
|
|
287
291
|
|
|
288
|
-
|
|
292
|
+
查找目标子串,并将子串结果坐标映射为原图/全屏绝对坐标。
|
|
289
293
|
|
|
290
294
|
参数与 `查找文本` 相同。传入裁剪区域时,返回坐标可直接用于全屏点击。
|
|
291
295
|
|
|
@@ -298,13 +302,14 @@ function 查找文本绝对坐标(
|
|
|
298
302
|
图片边界框右下角x坐标?: 数字,
|
|
299
303
|
图片边界框右下角y坐标?: 数字,
|
|
300
304
|
识别语言数组?: 数组<字符串>,
|
|
305
|
+
是否完整匹配?: 布尔值,
|
|
301
306
|
): 数组<OCR识别结果>;
|
|
302
307
|
```
|
|
303
308
|
|
|
304
309
|
**示例:**
|
|
305
310
|
|
|
306
311
|
```javascript
|
|
307
|
-
const 绝对坐标命中 = $苹果OCR.查找文本绝对坐标("screen", ["
|
|
312
|
+
const 绝对坐标命中 = $苹果OCR.查找文本绝对坐标("screen", ["开始"], 100, 100, 500, 400);
|
|
308
313
|
if (绝对坐标命中.length > 0) {
|
|
309
314
|
$点击(绝对坐标命中[0].centerX, 绝对坐标命中[0].centerY);
|
|
310
315
|
}
|
package/docs/apicn/global.md
CHANGED
|
@@ -50,6 +50,20 @@ declare const $是否调试: 布尔值;
|
|
|
50
50
|
$打印信息日志($是否调试);
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
+
#### **$是否运行**
|
|
54
|
+
|
|
55
|
+
当前脚本是否在运行。
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
declare const $是否运行: 布尔值;
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**示例:**
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
$打印信息日志(`运行状态: ${$是否运行}`);
|
|
65
|
+
```
|
|
66
|
+
|
|
53
67
|
### 应用信息
|
|
54
68
|
|
|
55
69
|
#### **$平台**
|
package/docs/apicn/image.md
CHANGED
|
@@ -463,6 +463,60 @@ if (图片ID) {
|
|
|
463
463
|
}
|
|
464
464
|
```
|
|
465
465
|
|
|
466
|
+
### 统计颜色数量
|
|
467
|
+
|
|
468
|
+
统计指定区域内命中目标颜色的像素数量。`颜色列表` 可以传入一个或多个候选颜色,多个颜色使用 `|` 分隔,支持 `主色-偏色` 格式,如 `#0A0A0A-#101010|#FFFFFF-#101010`。同一个像素同时命中多个候选颜色时只统计一次。
|
|
469
|
+
|
|
470
|
+
```typescript
|
|
471
|
+
function 统计颜色数量(
|
|
472
|
+
图片ID: 字符串,
|
|
473
|
+
颜色列表: 字符串,
|
|
474
|
+
阈值: 数字,
|
|
475
|
+
区域左上角x: 数字,
|
|
476
|
+
区域左上角y: 数字,
|
|
477
|
+
区域右下角x: 数字,
|
|
478
|
+
区域右下角y: 数字,
|
|
479
|
+
): 数字;
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
**参数:**
|
|
483
|
+
|
|
484
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
485
|
+
| ------------- | ------ | -------- | ------ | ------------------------------------------------------------------------------------- |
|
|
486
|
+
| `图片ID` | 字符串 | 是 | - | 图片 ID,支持 `"screen"`、图片文件路径、HTTP 图片地址或已加载的图片 ID |
|
|
487
|
+
| `颜色列表` | 字符串 | 是 | - | 颜色列表,支持 `主色-偏色\|主色-偏色` 格式,如 `#0A0A0A-#101010\|#FFFFFF-#101010` |
|
|
488
|
+
| `阈值` | 数字 | 是 | - | 颜色匹配阈值 (0.0-1.0),数值越大匹配越严格 |
|
|
489
|
+
| `区域左上角x` | 数字 | 是 | - | 统计区域左上角坐标 |
|
|
490
|
+
| `区域左上角y` | 数字 | 是 | - | 统计区域左上角坐标 |
|
|
491
|
+
| `区域右下角x` | 数字 | 是 | - | 统计区域右下角坐标;传 `0` 表示延伸到图片右侧边界 |
|
|
492
|
+
| `区域右下角y` | 数字 | 是 | - | 统计区域右下角坐标;传 `0` 表示延伸到图片底部边界 |
|
|
493
|
+
|
|
494
|
+
**返回值:**
|
|
495
|
+
|
|
496
|
+
| 类型 | 描述 |
|
|
497
|
+
| ------ | ------------------------------------------------------------------------------------ |
|
|
498
|
+
| `数字` | 命中目标颜色的像素数量;图片加载失败、颜色为空、颜色格式无效或区域不合法时返回 `0` |
|
|
499
|
+
|
|
500
|
+
**示例:**
|
|
501
|
+
|
|
502
|
+
```javascript
|
|
503
|
+
const 图片ID = $图片.截取全屏();
|
|
504
|
+
if (图片ID) {
|
|
505
|
+
const 数量 = $图片.统计颜色数量(
|
|
506
|
+
图片ID,
|
|
507
|
+
"#0A0A0A-#101010|#FFFFFF-#101010",
|
|
508
|
+
0.92,
|
|
509
|
+
100,
|
|
510
|
+
200,
|
|
511
|
+
500,
|
|
512
|
+
700,
|
|
513
|
+
);
|
|
514
|
+
|
|
515
|
+
$打印信息日志(`目标区域命中颜色像素数量: ${数量}`);
|
|
516
|
+
$图片.释放图片(图片ID);
|
|
517
|
+
}
|
|
518
|
+
```
|
|
519
|
+
|
|
466
520
|
### 多点比色
|
|
467
521
|
|
|
468
522
|
```typescript
|
package/docs/apicn/paddleocr.md
CHANGED
|
@@ -202,6 +202,7 @@ function 查找文本(
|
|
|
202
202
|
图片边界框右下角x坐标?: 数字,
|
|
203
203
|
图片边界框右下角y坐标?: 数字,
|
|
204
204
|
置信度阈值?: 数字,
|
|
205
|
+
是否完整匹配?: 布尔值,
|
|
205
206
|
): 数组<OCR识别结果>;
|
|
206
207
|
```
|
|
207
208
|
|
|
@@ -216,6 +217,7 @@ function 查找文本(
|
|
|
216
217
|
| `图片边界框右下角x坐标` | number | 否 | 0 | 查找区域右下角 x 坐标 |
|
|
217
218
|
| `图片边界框右下角y坐标` | number | 否 | 0 | 查找区域右下角 y 坐标 |
|
|
218
219
|
| `置信度阈值` | number | 否 | 0.6 | 置信度阈值,默认值为 0.6 |
|
|
220
|
+
| `是否完整匹配` | boolean | 否 | false | 是否完整匹配;`false` 表示包含匹配,`true` 表示整条 OCR 识别结果文本必须等于目标文本 |
|
|
219
221
|
|
|
220
222
|
**返回值:**
|
|
221
223
|
|
|
@@ -242,6 +244,7 @@ const 命中结果 = $PaddleOCR.查找文本(
|
|
|
242
244
|
0,
|
|
243
245
|
0,
|
|
244
246
|
0.6,
|
|
247
|
+
false,
|
|
245
248
|
);
|
|
246
249
|
if (命中结果.length > 0) {
|
|
247
250
|
命中结果.forEach((item, index) => {
|
|
@@ -278,6 +281,7 @@ function 查找文本绝对坐标(
|
|
|
278
281
|
图片边界框右下角x坐标?: 数字,
|
|
279
282
|
图片边界框右下角y坐标?: 数字,
|
|
280
283
|
置信度阈值?: 数字,
|
|
284
|
+
是否完整匹配?: 布尔值,
|
|
281
285
|
): 数组<OCR识别结果>;
|
|
282
286
|
```
|
|
283
287
|
|
package/docs/apicn/pip.md
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
- **关闭控制**:支持主动关闭悬浮窗
|
|
9
9
|
- **状态查询**:判断悬浮窗是否正在显示
|
|
10
10
|
- **尺寸设置**:日志模式和自定义模式支持设置内容宽高,并按模式分别持久化
|
|
11
|
+
- **日志显示**:日志模式支持设置日志文字大小
|
|
11
12
|
- **自定义文本**:自定义模式支持文本、换行、文字颜色、背景色和文字大小
|
|
12
13
|
|
|
13
14
|
## API 方法
|
|
@@ -54,6 +55,7 @@ function 切换到日志模式(): 布尔值;
|
|
|
54
55
|
```typescript
|
|
55
56
|
$APP切入前台();
|
|
56
57
|
const 是否成功 = $悬浮窗.切换到日志模式();
|
|
58
|
+
$悬浮窗.设置日志文字大小(10);
|
|
57
59
|
```
|
|
58
60
|
|
|
59
61
|
### 切换到保活模式
|
|
@@ -152,6 +154,33 @@ $悬浮窗.切换到自定义模式();
|
|
|
152
154
|
$悬浮窗.设置内容尺寸(120, 180);
|
|
153
155
|
```
|
|
154
156
|
|
|
157
|
+
### 设置日志文字大小
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
function 设置日志文字大小(字号: 数字): 布尔值;
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
设置日志模式显示文本的文字大小。该方法只更新日志字号,不会自动切换到日志模式。
|
|
164
|
+
|
|
165
|
+
**参数:**
|
|
166
|
+
|
|
167
|
+
| 参数 | 类型 | 必填 | 描述 |
|
|
168
|
+
| ------ | ------ | ---- | ------------------------ |
|
|
169
|
+
| `字号` | `数字` | 是 | 日志字号,必须是有效数字 |
|
|
170
|
+
|
|
171
|
+
**返回值:**
|
|
172
|
+
|
|
173
|
+
| 类型 | 描述 |
|
|
174
|
+
| -------- | -------------------------------------------------------- |
|
|
175
|
+
| `布尔值` | `true` 代表日志文字大小已提交;`false` 代表字号无效 |
|
|
176
|
+
|
|
177
|
+
**示例:**
|
|
178
|
+
|
|
179
|
+
```typescript
|
|
180
|
+
$悬浮窗.设置日志文字大小(10);
|
|
181
|
+
$悬浮窗.切换到日志模式();
|
|
182
|
+
```
|
|
183
|
+
|
|
155
184
|
### 设置自定义文本
|
|
156
185
|
|
|
157
186
|
```typescript
|
|
@@ -267,6 +296,7 @@ $APP切入前台();
|
|
|
267
296
|
|
|
268
297
|
$悬浮窗.切换到日志模式();
|
|
269
298
|
$悬浮窗.设置内容尺寸(280, 120);
|
|
299
|
+
$悬浮窗.设置日志文字大小(10);
|
|
270
300
|
|
|
271
301
|
$悬浮窗.设置自定义文本("任务运行中\n1/3");
|
|
272
302
|
$悬浮窗.设置自定义文字颜色("#34c759");
|
|
@@ -282,7 +312,8 @@ $悬浮窗.设置内容尺寸(120, 180);
|
|
|
282
312
|
2. **设备兼容性**:仅支持 iOS 15+ 且具备画中画功能的设备
|
|
283
313
|
3. **系统限制**:悬浮窗位置和实际显示尺寸由 iOS 管理
|
|
284
314
|
4. **尺寸持久化**:日志模式和自定义模式分别保存尺寸,互不共用;保活模式不接受脚本尺寸
|
|
285
|
-
5.
|
|
315
|
+
5. **日志字号**:日志字号只影响日志模式,保活模式和自定义模式不受影响
|
|
316
|
+
6. **竖向文本**:自定义窗口高度大于宽度时,文本会按逐字符换行方式竖向显示
|
|
286
317
|
|
|
287
318
|
## 故障排除
|
|
288
319
|
|
|
@@ -227,7 +227,7 @@ if abs_number_results:
|
|
|
227
227
|
|
|
228
228
|
#### findText
|
|
229
229
|
|
|
230
|
-
|
|
230
|
+
执行指定文本查找,在识别结果中查找目标子串,并返回目标子串的坐标。
|
|
231
231
|
|
|
232
232
|
```python
|
|
233
233
|
def findText(
|
|
@@ -237,7 +237,8 @@ def findText(
|
|
|
237
237
|
y: int = 0,
|
|
238
238
|
ex: int = 0,
|
|
239
239
|
ey: int = 0,
|
|
240
|
-
languages: Optional[List[str]] = ["zh-Hans", "en-US"]
|
|
240
|
+
languages: Optional[List[str]] = ["zh-Hans", "en-US"],
|
|
241
|
+
exactMatch: bool = False
|
|
241
242
|
) -> List[OCRResult]
|
|
242
243
|
```
|
|
243
244
|
|
|
@@ -246,26 +247,29 @@ def findText(
|
|
|
246
247
|
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
247
248
|
| ----------- | --------- | -------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
248
249
|
| `input` | str | 是 | - | 输入源,支持以下类型: <br>-`"screen"` 当前屏幕截图 <br>- `str` 图片文件路径或 URL <br>- `imageId` 图片 ID(通过 image 模块获取) |
|
|
249
|
-
| `texts` | List[str] | 是 | - |
|
|
250
|
+
| `texts` | List[str] | 是 | - | 要查找的目标文本数组,支持匹配识别结果中的子串 |
|
|
250
251
|
| `x` | int | 否 | 0 | 识别区域左上角 x 坐标 |
|
|
251
252
|
| `y` | int | 否 | 0 | 识别区域左上角 y 坐标 |
|
|
252
253
|
| `ex` | int | 否 | 0 | 识别区域右下角 x 坐标 |
|
|
253
254
|
| `ey` | int | 否 | 0 | 识别区域右下角 y 坐标 |
|
|
254
255
|
| `languages` | List[str] | 否 | ["zh-Hans", "en-US"] | 可选,指定识别语言列表,如 `["zh-Hans", "en-US"]` |
|
|
256
|
+
| `exactMatch` | bool | 否 | False | 是否完整匹配;`False` 表示包含匹配,`True` 表示整条 OCR 识别结果文本必须等于目标文本 |
|
|
255
257
|
|
|
256
258
|
**返回值:**
|
|
257
259
|
|
|
258
260
|
| 类型 | 描述 |
|
|
259
261
|
| ----------------- | ---------------------- |
|
|
260
|
-
| `List[OCRResult]` |
|
|
262
|
+
| `List[OCRResult]` | 命中子串的文本识别结果数组 |
|
|
261
263
|
|
|
262
264
|
**使用示例:**
|
|
263
265
|
|
|
264
266
|
```python
|
|
265
267
|
from kuaijs import appleocr
|
|
266
268
|
|
|
267
|
-
#
|
|
268
|
-
text_results = appleocr.findText("screen", ["
|
|
269
|
+
# 在“开始执行”中查找“开始”,返回“开始”子串区域
|
|
270
|
+
text_results = appleocr.findText("screen", ["开始"], 0, 0, 100, 100)
|
|
271
|
+
# 启用完整匹配时,只有整条 OCR 识别结果文本等于“开始”才返回结果
|
|
272
|
+
exact_results = appleocr.findText("screen", ["开始"], 0, 0, 100, 100, None, True)
|
|
269
273
|
print(f"识别到 {len(text_results)} 个文本区域")
|
|
270
274
|
|
|
271
275
|
for i, result in enumerate(text_results):
|
|
@@ -274,7 +278,7 @@ for i, result in enumerate(text_results):
|
|
|
274
278
|
print(f"中心点: ({result.centerX}, {result.centerY})")
|
|
275
279
|
```
|
|
276
280
|
|
|
277
|
-
#### `findTextAbs` -
|
|
281
|
+
#### `findTextAbs` - 查找目标子串,并将子串结果坐标映射为原图/全屏绝对坐标
|
|
278
282
|
|
|
279
283
|
参数与 `findText` 相同。传入裁剪区域时,返回坐标可直接用于全屏点击。
|
|
280
284
|
|
|
@@ -286,7 +290,8 @@ def findTextAbs(
|
|
|
286
290
|
y: int = 0,
|
|
287
291
|
ex: int = 0,
|
|
288
292
|
ey: int = 0,
|
|
289
|
-
languages: Optional[List[str]] = None
|
|
293
|
+
languages: Optional[List[str]] = None,
|
|
294
|
+
exactMatch: bool = False
|
|
290
295
|
) -> List[OCRResult]
|
|
291
296
|
```
|
|
292
297
|
|
|
@@ -295,7 +300,7 @@ def findTextAbs(
|
|
|
295
300
|
```python
|
|
296
301
|
from kuaijs import appleocr, action
|
|
297
302
|
|
|
298
|
-
abs_hits = appleocr.findTextAbs("screen", ["
|
|
303
|
+
abs_hits = appleocr.findTextAbs("screen", ["开始"], 100, 100, 500, 400)
|
|
299
304
|
if abs_hits:
|
|
300
305
|
action.click(abs_hits[0]["centerX"], abs_hits[0]["centerY"])
|
|
301
306
|
```
|
package/docs/apipython/image.md
CHANGED
|
@@ -431,6 +431,51 @@ if imageId:
|
|
|
431
431
|
image.release(imageId)
|
|
432
432
|
```
|
|
433
433
|
|
|
434
|
+
### countColor - 统计颜色数量
|
|
435
|
+
|
|
436
|
+
统计指定区域内命中目标颜色的像素数量。`colors` 可以传入一个或多个候选颜色,多个颜色使用 `|` 分隔,支持 `主色-偏色` 格式,如 `#0A0A0A-#101010|#FFFFFF-#101010`。同一个像素同时命中多个候选颜色时只统计一次。
|
|
437
|
+
|
|
438
|
+
```python
|
|
439
|
+
def countColor(id: str, colors: str, threshold: float, x: int, y: int, ex: int, ey: int) -> int
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
**参数:**
|
|
443
|
+
|
|
444
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
445
|
+
| ----------- | ----- | -------- | ------ | ------------------------------------------------------------------------------------ |
|
|
446
|
+
| `id` | str | 是 | <br /> | 图片 ID,支持 `"screen"`、图片文件路径、HTTP 图片地址或已加载的图片 ID |
|
|
447
|
+
| `colors` | str | 是 | <br /> | 颜色列表,支持 `主色-偏色\|主色-偏色` 格式,如 `#0A0A0A-#101010\|#FFFFFF-#101010` |
|
|
448
|
+
| `threshold` | float | 是 | <br /> | 颜色匹配阈值 (0.0-1.0),数值越大匹配越严格 |
|
|
449
|
+
| `x,y` | int | 是 | <br /> | 统计区域左上角坐标 |
|
|
450
|
+
| `ex,ey` | int | 是 | <br /> | 统计区域右下角坐标;传 `0` 表示延伸到图片右侧或底部边界 |
|
|
451
|
+
|
|
452
|
+
**返回值:**
|
|
453
|
+
|
|
454
|
+
| 类型 | 描述 |
|
|
455
|
+
| ----- | ------------------------------------------------------------------------------------ |
|
|
456
|
+
| `int` | 命中目标颜色的像素数量;图片加载失败、颜色为空、颜色格式无效或区域不合法时返回 `0` |
|
|
457
|
+
|
|
458
|
+
**示例:**
|
|
459
|
+
|
|
460
|
+
```python
|
|
461
|
+
from kuaijs import image
|
|
462
|
+
|
|
463
|
+
imageId = image.captureFullScreen()
|
|
464
|
+
if imageId:
|
|
465
|
+
count = image.countColor(
|
|
466
|
+
imageId,
|
|
467
|
+
"#0A0A0A-#101010|#FFFFFF-#101010",
|
|
468
|
+
0.92,
|
|
469
|
+
100,
|
|
470
|
+
200,
|
|
471
|
+
500,
|
|
472
|
+
700
|
|
473
|
+
)
|
|
474
|
+
|
|
475
|
+
print(f"目标区域命中颜色像素数量: {count}")
|
|
476
|
+
image.release(imageId)
|
|
477
|
+
```
|
|
478
|
+
|
|
434
479
|
### cmpColor - 多点比色
|
|
435
480
|
|
|
436
481
|
```python
|
|
@@ -172,7 +172,8 @@ def findText(
|
|
|
172
172
|
y: int = 0,
|
|
173
173
|
ex: int = 0,
|
|
174
174
|
ey: int = 0,
|
|
175
|
-
confidenceThreshold: float = 0.6
|
|
175
|
+
confidenceThreshold: float = 0.6,
|
|
176
|
+
exactMatch: bool = False
|
|
176
177
|
) -> List[OCRResult]
|
|
177
178
|
```
|
|
178
179
|
|
|
@@ -187,6 +188,7 @@ def findText(
|
|
|
187
188
|
| `ex` | int | 否 | 0 | 查找区域右下角 x 坐标 |
|
|
188
189
|
| `ey` | int | 否 | 0 | 查找区域右下角 y 坐标 |
|
|
189
190
|
| `confidenceThreshold` | float | 否 | 0.6 | 置信度阈值,默认值为 0.6 |
|
|
191
|
+
| `exactMatch` | bool | 否 | False | 是否完整匹配;`False` 表示包含匹配,`True` 表示整条 OCR 识别结果文本必须等于目标文本 |
|
|
190
192
|
|
|
191
193
|
**返回值:**
|
|
192
194
|
|
|
@@ -204,7 +206,7 @@ if not paddleocr.loadV5():
|
|
|
204
206
|
print("模型加载失败")
|
|
205
207
|
else:
|
|
206
208
|
# 在整个屏幕中查找目标文本
|
|
207
|
-
hit_results = paddleocr.findText("screen", ["登录", "确定"], 0, 0, 0, 0, 0.6)
|
|
209
|
+
hit_results = paddleocr.findText("screen", ["登录", "确定"], 0, 0, 0, 0, 0.6, False)
|
|
208
210
|
if hit_results:
|
|
209
211
|
for i, r in enumerate(hit_results, 1):
|
|
210
212
|
print(f"命中{i}: {r.text}, 中心点=({r.centerX}, {r.centerY}), 置信度={r.confidence}")
|
|
@@ -228,14 +230,15 @@ def findTextAbs(
|
|
|
228
230
|
y: int = 0,
|
|
229
231
|
ex: int = 0,
|
|
230
232
|
ey: int = 0,
|
|
231
|
-
confidenceThreshold: float = 0.6
|
|
233
|
+
confidenceThreshold: float = 0.6,
|
|
234
|
+
exactMatch: bool = False
|
|
232
235
|
) -> List[OCRResult]
|
|
233
236
|
```
|
|
234
237
|
|
|
235
238
|
**示例:**
|
|
236
239
|
|
|
237
240
|
```python
|
|
238
|
-
abs_hits = paddleocr.findTextAbs("screen", ["确定"], 100, 100, 500, 400, 0.6)
|
|
241
|
+
abs_hits = paddleocr.findTextAbs("screen", ["确定"], 100, 100, 500, 400, 0.6, False)
|
|
239
242
|
if abs_hits:
|
|
240
243
|
print(f"绝对坐标中心点: ({abs_hits[0].centerX}, {abs_hits[0].centerY})")
|
|
241
244
|
```
|
package/docs/apipython/pip.md
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
- **关闭控制**:支持主动关闭悬浮窗
|
|
9
9
|
- **状态查询**:判断悬浮窗是否正在显示
|
|
10
10
|
- **尺寸设置**:日志模式和自定义模式支持设置内容宽高,并按模式分别持久化
|
|
11
|
+
- **日志显示**:日志模式支持设置日志文字大小
|
|
11
12
|
- **自定义文本**:自定义模式支持文本、换行、文字颜色、背景色和文字大小
|
|
12
13
|
|
|
13
14
|
## API 参考
|
|
@@ -56,6 +57,7 @@ from kuaijs import pip, utils
|
|
|
56
57
|
|
|
57
58
|
utils.takeMeToFront()
|
|
58
59
|
success = pip.switchToLogMode()
|
|
60
|
+
pip.setLogFontSize(10)
|
|
59
61
|
```
|
|
60
62
|
|
|
61
63
|
### switchToKeepAliveMode - 切换到保活模式
|
|
@@ -162,6 +164,35 @@ pip.switchToCustomMode()
|
|
|
162
164
|
pip.setContentSize(120, 180)
|
|
163
165
|
```
|
|
164
166
|
|
|
167
|
+
### setLogFontSize - 设置日志文字大小
|
|
168
|
+
|
|
169
|
+
设置日志模式显示文本的文字大小。该方法只更新日志字号,不会自动切换到日志模式。
|
|
170
|
+
|
|
171
|
+
```python
|
|
172
|
+
def setLogFontSize(fontSize: float) -> bool
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**参数:**
|
|
176
|
+
|
|
177
|
+
| 参数 | 类型 | 必填 | 描述 |
|
|
178
|
+
| ---------- | ------- | ---- | ------------------------ |
|
|
179
|
+
| `fontSize` | `float` | 是 | 日志字号,必须是有效数字 |
|
|
180
|
+
|
|
181
|
+
**返回值:**
|
|
182
|
+
|
|
183
|
+
| 类型 | 描述 |
|
|
184
|
+
| ------ | ------------------------------------------------------- |
|
|
185
|
+
| `bool` | `True` 代表日志文字大小已提交;`False` 代表字号无效 |
|
|
186
|
+
|
|
187
|
+
**示例:**
|
|
188
|
+
|
|
189
|
+
```python
|
|
190
|
+
from kuaijs import pip
|
|
191
|
+
|
|
192
|
+
pip.setLogFontSize(10)
|
|
193
|
+
pip.switchToLogMode()
|
|
194
|
+
```
|
|
195
|
+
|
|
165
196
|
### setCustomText - 设置自定义文本
|
|
166
197
|
|
|
167
198
|
设置自定义模式显示的纯文本内容。该方法只更新自定义文本数据,不会自动切换到自定义模式。
|
|
@@ -287,6 +318,7 @@ utils.takeMeToFront()
|
|
|
287
318
|
|
|
288
319
|
pip.switchToLogMode()
|
|
289
320
|
pip.setContentSize(280, 120)
|
|
321
|
+
pip.setLogFontSize(10)
|
|
290
322
|
|
|
291
323
|
pip.setCustomText("任务运行中\n1/3")
|
|
292
324
|
pip.setCustomTextColor("#34c759")
|
|
@@ -302,7 +334,8 @@ pip.setContentSize(120, 180)
|
|
|
302
334
|
2. **设备兼容性**:仅支持 iOS 15+ 且具备画中画功能的设备
|
|
303
335
|
3. **系统限制**:悬浮窗位置和实际显示尺寸由 iOS 管理
|
|
304
336
|
4. **尺寸持久化**:日志模式和自定义模式分别保存尺寸,互不共用;保活模式不接受脚本尺寸
|
|
305
|
-
5.
|
|
337
|
+
5. **日志字号**:日志字号只影响日志模式,保活模式和自定义模式不受影响
|
|
338
|
+
6. **竖向文本**:自定义窗口高度大于宽度时,文本会按逐字符换行方式竖向显示
|
|
306
339
|
|
|
307
340
|
## 故障排除
|
|
308
341
|
|
|
@@ -413,6 +413,31 @@ result = tomatoocr.findTapPoints("确定")
|
|
|
413
413
|
print(result)
|
|
414
414
|
```
|
|
415
415
|
|
|
416
|
+
### 资源释放方法
|
|
417
|
+
|
|
418
|
+
#### `release`
|
|
419
|
+
|
|
420
|
+
释放 TomatoOCR SDK 已加载的 OCR 模型和内部资源。
|
|
421
|
+
|
|
422
|
+
```python
|
|
423
|
+
def release() -> None
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
**参数:**
|
|
427
|
+
|
|
428
|
+
无
|
|
429
|
+
|
|
430
|
+
**返回值:**
|
|
431
|
+
|
|
432
|
+
无
|
|
433
|
+
|
|
434
|
+
**示例:**
|
|
435
|
+
|
|
436
|
+
```python
|
|
437
|
+
from kuaijs import tomatoocr
|
|
438
|
+
tomatoocr.release()
|
|
439
|
+
```
|
|
440
|
+
|
|
416
441
|
## 完整示例
|
|
417
442
|
|
|
418
443
|
```python
|
|
@@ -436,6 +461,9 @@ print("识别结果:" + ocr_result)
|
|
|
436
461
|
# 查找点击点
|
|
437
462
|
tap_result = tomatoocr.findTapPoint("登录")
|
|
438
463
|
print("点击点坐标:" + tap_result)
|
|
464
|
+
|
|
465
|
+
# 释放 TomatoOCR 资源
|
|
466
|
+
tomatoocr.release()
|
|
439
467
|
```
|
|
440
468
|
|
|
441
469
|
## 注意事项
|