Skip to content

Commit

Permalink
更新文档
Browse files Browse the repository at this point in the history
  • Loading branch information
LYS86 committed Oct 7, 2022
1 parent b2f907f commit 7c981d6
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 73 deletions.
96 changes: 81 additions & 15 deletions AI.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,84 @@
# OCR文档
>稳定性:
>
> 实验性的函数、模块或特性,
> 在未来的更新中可能会更改或移除。应该谨慎使用这些函数或模块,或者仅用作临时或试验用途。
# Paddle OCR
**5.6.1 新增**
基于百度飞桨的 OCR
## paddle.ocr(img, path)
- `img` {Image} 图片
- `path` {String} 自定义模型路径,必须是绝对路径
- `return` {Array}

# 基于百度PaddleOCR文字识别
使用自定义模型进行文字识别
```
// files.path() 将相对路径转为绝对路径
let myModelPath = files.path("./models");
let result = paddle.ocr(img, myModelPath)
```
## paddle.ocr(img[, cpuThreadNum=4, useSlim=true])
- ` img ` {Image} 图片
- ` cpuThreadNum ` {Number} 识别使用的 CPU 核心数量
- ` useSlim ` {Boolean} 加载的模型,可选值:
- `true` ocr_v2_for_cpu(slim) :快速模型,默认
- `false` ocr_v2_for_cpu : 精准模型
- `return` {Array}

## paddle.ocrText(img, cpuThreadNum, useSlim);
高精度识别,返回值包含坐标,置信度
```js
let res = paddle.ocr(img);
toastLog(JSON.stringify(res))
```
返回值示例
```json
[{
"bounds": {
"bottom": 535,
"left": 348,
"right": 631,
"top": 384
},
"confidence": 0.9808736,
"inferenceTime": 188.0,
"preprocessTime": 53.0,
"text": "约定",
"words": "约定"
}]
```
## paddle.ocrText(img[, cpuThreadNum=4, useSlim=true])
- ` img ` {Image} 图片
- ` cpuThreadNum ` {Number} 识别使用的 CPU 核心数量
- ` useSlim ` {Boolean} 加载的模型,可选值:
- `true` ocr_v2_for_cpu(slim) :快速模型,默认
- `false` ocr_v2_for_cpu : 精准模型
- `return` {Array} 字符串数组

识别结果为字符串数组

## paddle.ocr(img, cpuThreadNum, useSlim);

识别结果为包含字符串,坐标,置信度等的JSON数组

* img {图片对象} 需要识别的图片,可以是`images.captureScreen()``images.read(path)`等等
* cpuThreadNum {number} 识别使用的CPU核心数量,可选参数,默认为4
* useSlim {布尔} 可选参数,加载的模型,默认true (slim)

两种模型:ocr_v2_for_cpu与ocr_v2_for_cpu(slim),,前者更快后者更精准

以上均为全局函数。
只返回文本识别信息
```js
let res = paddle.ocrText(img);
toastLog("识别信息: " + JSON.stringify(res))
//["约定","最终相遇"]
```
## paddle.release()
释放 native 内存,非必要,供万一出现内存泄露时使用
# Tessract OCR
**6.2.9 新增**
前往 github 下载完整例子:[TessractOCR](https://github.com/wilinz/autoxjs-tessocr)
# Google ML kIT OCR
**6.3.4 新增**
## gmlkit.ocr(img,Language)
- `img` {Image} 图片
- `Language` {String} 识别语言,可选值为:
- `la` 拉丁
- `zh` 中文
- `sa` 梵文
- `ja` 日语
- `ko` 韩语
- [更多语言](https://developers.google.cn/ml-kit/vision/text-recognition/v2/languages)
- `retrun` {Object} Json
```JS
//识别中文
let result = gmlkit.ocr(img, "zh");
log(result.text)
```
62 changes: 26 additions & 36 deletions app.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
# App
# APP
该模块提供一系列函数,用于使用其他应用、与其他应用交互。例如发送意图、打开文件、发送邮件等。

app模块提供一系列函数,用于使用其他应用、与其他应用交互。例如发送意图、打开文件、发送邮件等。

同时提供了方便的进阶函数startActivity和sendBroadcast,用他们可完成app模块没有内置的和其他应用的交互。
同时提供了方便的进阶函数 `startActivity``sendBroadcast` ,用他们可完成app模块没有内置的和其他应用的交互。

## app.versionCode
* {number}
* `return` {number}

当前软件版本号,整数值。例如160, 256等。

Expand All @@ -16,7 +15,7 @@ toastLog(app.versionCode);
```

## app.versionName
* {string}
* `return` {string}

当前软件的版本名称,例如"3.0.0 Beta"。

Expand All @@ -27,12 +26,12 @@ toastLog(app.verionName);
```

## app.autojs.versionCode
* {number}
* `return` {number}

Auto.js版本号,整数值。例如160, 256等。

## app.autojs.versionName
* {string}
* `return` {string}

Auto.js版本名称,例如"3.0.0 Beta"。

Expand Down Expand Up @@ -67,7 +66,7 @@ launch("com.tencent.mm");
## app.getPackageName(appName)
* `appName` {string} 应用名称

获取应用名称对应的已安装的应用的包名如果该找不到该应用,返回null;如果该名称对应多个应用,则只返回其中某一个的包名。
获取应用名称对应的已安装的应用的包名如果该找不到该应用,返回 `null`如果该名称对应多个应用,则只返回其中某一个的包名。

该函数也可以作为全局函数使用。

Expand All @@ -88,6 +87,7 @@ var name = getAppName("com.tencent.mobileqq"); //返回"QQ"

## app.openAppSetting(packageName)
* `packageName` {string} 应用包名
* `return` {Boolean}

打开应用的详情页(设置页)。如果找不到该应用,返回false; 否则返回true。

Expand All @@ -114,7 +114,7 @@ app.viewFile("/sdcard/1.txt");

```js
//编辑文本文件
app.editFile("/sdcard/1.txt/);
app.editFile('/sdcard/1.txt/');
```

## app.uninstall(packageName)
Expand All @@ -134,15 +134,15 @@ app.uninstall("com.tencent.mobileqq");
如果没有安装浏览器应用,则抛出`ActivityNotException`

## app.sendEmail(options)
* `options` {Object} 发送邮件的参数。包括:
* `options` {Object} 发送邮件的参数。包括:
* `email` {string} | {Array} 收件人的邮件地址。如果有多个收件人,则用字符串数组表示
* `cc` {string} | {Array} 抄送收件人的邮件地址。如果有多个抄送收件人,则用字符串数组表示
* `bcc` {string} | {Array} 密送收件人的邮件地址。如果有多个密送收件人,则用字符串数组表示
* `subject` {string} 邮件主题(标题)
* `text` {string} 邮件正文
* `attachment` {string} 附件的路径。

根据选项options调用邮箱应用发送邮件。这些选项均是可选的。
根据选项`options`调用邮箱应用发送邮件。这些选项均是可选的。

如果没有安装邮箱应用,则抛出`ActivityNotException`

Expand Down Expand Up @@ -194,28 +194,18 @@ app.startActivity({ 
```

## app.intent(options)
* `options` {Object} 选项,包括:
* `action` {string} 意图的Action,指意图要完成的动作,是一个字符串常量,比如"android.intent.action.SEND"。当action以"android.intent.action"开头时,可以省略前缀,直接用"SEND"代替。参见[Actions](https://developer.android.com/reference/android/content/Intent.html#standard-activity-actions)。

* `type` {string} 意图的MimeType,表示和该意图直接相关的数据的类型,表示比如"text/plain"为纯文本类型。

* `data` {string} 意图的Data,表示和该意图直接相关的数据,是一个Uri, 可以是文件路径或者Url等。例如要打开一个文件, action为"android.intent.action.VIEW", data为"file:///sdcard/1.txt"

* `category` {Array} 意图的类别。比较少用。参见[Categories](https://developer.android.com/reference/android/content/Intent.html#standard-categories)。

* `packageName` {string} 目标包名

* `className` {string} 目标Activity或Service等组件的名称

* `extras` {Object} 以键值对构成的这个Intent的Extras(额外信息)。提供该意图的其他信息,例如发送邮件时的邮件标题、邮件正文。参见[Extras](https://developer.android.com/reference/android/content/Intent.html#standard-extra-data)。

* `flags` {Array} intent的标识,字符串数组,例如`["activity_new_task", "grant_read_uri_permission"]`。参见[Flags](https://developer.android.com/reference/android/content/Intent.html#setFlags%28int%29)。

**[v4.1.0新增]**

* `root` {Boolea} 是否以root权限启动、发送该intent。使用该参数后,不能使用`context.startActivity()`等方法,而应该直接使用诸如`app.startActivity({...})`的方法。
**[v4.1.0新增]**
- `options` {Object} 选项,包括:
- `action` {string} 意图的Action,指意图要完成的动作,是一个字符串常量,比如"android.intent.action.SEND"。当action以"android.intent.action"开头时,可以省略前缀,直接用"SEND"代替。参见[Actions](https://developer.android.com/reference/android/content/Intent.html#standard-activity-actions)
- `type` {string} 意图的MimeType,表示和该意图直接相关的数据的类型,表示比如"text/plain"为纯文本类型。
- `data` {string} 意图的Data,表示和该意图直接相关的数据,是一个Uri, 可以是文件路径或者Url等。例如要打开一个文件, action为"android.intent.action.VIEW", data为"file:///sdcard/1.txt"。
- `category` {Array} 意图的类别。比较少用。参见[Categories](https://developer.android.com/reference/android/content/Intent.html#standard-categories)
- `packageName` {string} 目标包名
- `className` {string} 目标Activity或Service等组件的名称
- `extras` {Object} 以键值对构成的这个Intent的Extras(额外信息)。提供该意图的其他信息,例如发送邮件时的邮件标题、邮件正文。参见[Extras](https://developer.android.com/reference/android/content/Intent.html#standard-extra-data)
- `flags` {Array} intent的标识,字符串数组,例如`["activity_new_task", "grant_read_uri_permission"]`。参见[Flags](https://developer.android.com/reference/android/content/Intent.html#setFlags%28int%29)
- `root` {Boolea} 是否以root权限启动、发送该intent。使用该参数后,不能使用`context.

**[v4.1.0新增]**

根据选项,构造一个意图Intent对象。

Expand Down Expand Up @@ -304,7 +294,7 @@ shell("am start " + app.intentToShell({
**[v4.1.0新增]**

* `uri` {string} 一个代表Uri的字符串,例如"file:///sdcard/1.txt", "https://www.autojs.org"
* 返回 {Uri} 一个代表Uri的对象,参见[android.net.Uri](https://developer.android.com/reference/android/net/Uri)。
* `return` {Uri} 一个代表Uri的对象,参见[android.net.Uri](https://developer.android.com/reference/android/net/Uri)

解析uri字符串并返回相应的Uri对象。即使Uri格式错误,该函数也会返回一个Uri对象,但之后如果访问该对象的scheme, path等值可能因解析失败而返回`null`

Expand All @@ -315,6 +305,6 @@ shell("am start " + app.intentToShell({
**[v4.1.0新增]**

* `path` {string} 文件路径,例如"/sdcard/1.txt"
* 返回 {Uri} 一个指向该文件的Uri的对象,参见[android.net.Uri](https://developer.android.com/reference/android/net/Uri)。
* `return` {Uri} 一个指向该文件的Uri的对象,参见[android.net.Uri](https://developer.android.com/reference/android/net/Uri)

从一个文件路径创建一个uri对象。需要注意的是,在高版本Android上,由于系统限制直接在Uri暴露文件的绝对路径,因此返回的Uri会是诸如`content://...`的形式。
从一个文件路径创建一个uri对象。需要注意的是,在高版本Android上,由于系统限制直接在Uri暴露文件的绝对路径,因此返回的Uri会是诸如`content://...`的形式。
33 changes: 11 additions & 22 deletions console.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@
控制台模块提供了一个和Web浏览器中相似的用于调试的控制台。用于输出一些调试信息、中间结果等。
console模块中的一些函数也可以直接作为全局函数使用,例如log, print等。



## console.show(autoHide)
* `autoHide` {boolean} 是否自动隐藏,默认false当程序结束的时候是否自动隐藏控制
显示控制台。这会显示一个控制台的悬浮窗(需要悬浮窗权限)。
Expand All @@ -15,9 +12,6 @@ console模块中的一些函数也可以直接作为全局函数使用,例如l
console.show(true); //程序结束自动 隐藏控制台
console.show(); //结束不会自动隐藏控制台
```



## console.hide()

隐藏控制台悬浮窗。
Expand All @@ -26,7 +20,7 @@ console.show(); //结束不会自动隐藏控制台

清空控制台。

## console.log([data][, ...args])#
## console.log([data][, ...args])
* `data` {any}
* `...args` {any}

Expand Down Expand Up @@ -69,23 +63,23 @@ console.log('count:', count);
与console.log类似,但输出结果以红色字体显示。输出优先级高于warn, 用于输出错误信息。

## console.assert(value, message)
* value {any} 要断言的布尔值
* message {string} value为false时要输出的信息
* `value` {any} 要断言的布尔值
* `message` {string} value为false时要输出的信息

断言。如果value为false则输出错误信息message并停止脚本运行。

```js
var a = 1 + 1;
console.assert(a == 2, "加法出错啦");
console.assert(a == 3, "加法出错啦");
```
## console.time([label])
**[v4.1.0新增]**
* `label` {String} 计时器标签,可省略

启动一个定时器,用以计算一个操作的持续时间。
定时器由一个唯一的 `label` 标识。
当调用 `console.timeEnd()` 时,可以使用相同的 `label` 来停止定时器,并以毫秒为单位将持续时间输出到控制台
重复启动同一个标签的定时器会覆盖之前启动同一标签的定时器
启动一个计时器,用以计算一个操作的持续时间。
计时器由一个唯一的 `label` 标识。
`label`重复,则会覆盖上一个同名`label`的计时器
以同名 `label`调用 `console.timeEnd()` 来停止计时器,并以毫秒为单位将持续时间输出到控制台

## console.timeEnd(label)
**[v4.1.0新增]**
Expand Down Expand Up @@ -121,7 +115,7 @@ console.trace('Show me');
* `data` {any}
* `...args` {any}

与console.log一样输出信息,并在控制台显示输入框等待输入。按控制台的确认按钮后会将输入的字符串用eval计算后返回
`console.log`一样输出信息,并在控制台显示输入框等待输入。按控制台的确认按钮后会将输入的字符串用`eval`计算后返回

**部分机型可能会有控制台不显示输入框的情况,属于bug。**

Expand Down Expand Up @@ -256,9 +250,8 @@ console.setCanInput(false);
## console.setBackgroud(color)
**[v4.2.5新增]**
* `color` {string} 颜色值 #AARRGGBB
设置 console 背景色

**需要在显示控制台之后才能设置,否则空指针**
设置 console 背景色,**需要在显示控制台之后才能设置,否则空指针**

```js
console.setBackgroud("#33ef0000");
Expand All @@ -273,8 +266,4 @@ console.setBackgroud("#33ef0000");
```js
console.setMaxLines(500);
```





## console.setBackground()

0 comments on commit 7c981d6

Please sign in to comment.