文档管理中心

visionImageAnalyzer(AI识图控件)

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

AI识图是通过聚合OCR(Optical Character Recognition,光学字符识别,指通过图像处理和模式识别技术将图像中的文字转换为机器编码的技术)、主体分割、实体识别、多目标识别等AI能力,提供场景化的文本识别、主体分割、识图搜索功能。

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

导入模块

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

AI识图菜单。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

展开
名称 类型 只读 可选 说明
value ResourceStr 菜单内容。
action Callback<string | Subject[]> 菜单结果回调,包含文字选中结果和抠图结果。

Rect

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

矩形数据结构。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

展开
名称 类型 只读 可选 说明
left number 矩形的左方位置。取值范围在图片的左边界到右边界之间。单位:vp。默认值 0
top number 矩形的上方位置。取值范围在图片的上边界到下边界之间。单位:vp。默认值 0
right number 矩形的右方位置。取值范围在图片的左边界到右边界之间。单位:vp。默认值 0
bottom number 矩形的下方位置。取值范围在图片的上边界到下边界之间。单位:vp。默认值 0

Subject

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

主体识别结果。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

展开
名称 类型 只读 可选 说明
id number 主体id。取值范围:[0,6]。
image PixelMap 主体识别的图片。
boundingBox Rect 主体识别图片结果的外接矩形框。
maskData Int32Array

基于原图大小的一维数组,表示主体掩码。0-255取值范围。0代表背景,255代表主体,中间值代表是否是显著性主体的概率。默认值: []

起始版本:5.1.0(18)。

说明:

maskData参数数据可能较大,通过JSON.stringify()方法解析打印日志会比较耗时,可能会影响接口性能,请按需打印。

SelectedStatus

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

识图对象选中状态的枚举值。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

展开
名称 说明
SELECTED 0 选中状态。
UNSELECTED 1 未选中状态。

ImageAnalyzerVisibility

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

AI识图控件可见状态的枚举值。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

展开
名称 说明
SHOWN 0 AI识图控件的可见状态。
HIDDEN 1 AI识图控件的不可见状态。

AIButtonStatus

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

AIButton状态的枚举值。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

展开
名称 说明
SELECTED 0 AIButton选中状态。
UNSELECTED 1 AIButton未选中状态。
HIDDEN 2 AIButton隐藏状态。

ObjectSearchPanelVisibility

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+

图片搜索界面可见状态的枚举值。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.1(13)

展开
名称 说明
SHOW 0 图片搜索界面的可见状态。
HIDE 1 图片搜索界面的不可见状态。

ImageAnalyzerUIStatus

Phone5.0.2(14)+PC/2in15.0.2(14)+Tablet5.0.2(14)+

图片分析界面状态的枚举值。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.2(14)

展开
名称 说明
INITIAL 0 初始化状态。
AI_BUTTON_SELECTED 1 AIButton选中状态。
TEXT_SELECTED 2 文字选中状态。
SUBJECT_SELECTED 3 主体选中状态。
OBJECT_SEARCH 4 视觉搜索状态。

VisionImageAnalyzerController

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

这是视觉图像控制器,用于控制交互。继承自ImageAnalyzerController类。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

setImageAnalyzerVisibility

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

setImageAnalyzerVisibility(visibility: ImageAnalyzerVisibility): void

设置AI识图控件的可见性。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
visibility ImageAnalyzerVisibility AI识图控件的可见性。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear() {
  8. this.visionImageAnalyzerController.setImageAnalyzerVisibility(visionImageAnalyzer.ImageAnalyzerVisibility.HIDDEN);
  9. }
  10. build() {
  11. Stack() {
  12. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  13. Image($r('app.media.img'), {
  14. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  15. aiController: this.visionImageAnalyzerController
  16. })
  17. .width('100%')
  18. .height('100%')
  19. .enableAnalyzer(true)
  20. .objectFit(ImageFit.Contain)
  21. }.width('100%').height('100%')
  22. }
  23. }

setAIButtonPosition

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

setAIButtonPosition(position: Rect): void

设置AIButton的位置。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
position Rect

AIButton区域距离AI识图控件四边的位置(vp)。默认展示在右下角 。

当传入部分参数时,优先按照传入的参数匹配,如果位置参数异常,使用默认位置展示。

同时设置top及bottom参数,调setAIButtonPosition接口仅top参数生效。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear() {
  8. let position: visionImageAnalyzer.Rect = {
  9. bottom: 300
  10. };
  11. this.visionImageAnalyzerController.setAIButtonPosition(position);
  12. this.visionImageAnalyzerController.setAIButtonVisibility(true);
  13. }
  14. build() {
  15. Stack() {
  16. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  17. Image($r('app.media.6'), {
  18. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  19. aiController: this.visionImageAnalyzerController
  20. })
  21. .width('100%')
  22. .height('100%')
  23. .enableAnalyzer(true)
  24. .objectFit(ImageFit.Contain)
  25. }.width('100%').height('100%')
  26. }
  27. }

示例图如下,AIButton离底部300vp

setAIButtonVisibility

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

setAIButtonVisibility(visible: boolean): void

设置AIButton的可见性。配置AIButton属性可见后,会对图片进行预分析,当图片中存在文本且文本区域大于图片区域的5%时AIButton才会显示。开启AIButton会触发图片的预分析从而导致一定的功耗开销,建议评估场景,对图片中文本内容较为关注的场景下按需开启,带给消费者良好的图片浏览体验的同时降低不必要的功耗开销。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
visible boolean

AIButton的可见性。true表示可见,false表示不可见。

默认为false,隐藏AIButton。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear() {
  8. this.visionImageAnalyzerController.setAIButtonVisibility(true);
  9. }
  10. build() {
  11. Stack() {
  12. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  13. Image($r('app.media.img'), {
  14. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  15. aiController: this.visionImageAnalyzerController
  16. })
  17. .width('100%')
  18. .height('100%')
  19. .enableAnalyzer(true)
  20. .objectFit(ImageFit.Contain)
  21. }.width('100%').height('100%')
  22. }
  23. }

AIButton可见时如下图所示

setCustomTextMenuItems

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

setCustomTextMenuItems(menus: Menu[]): void

设置自定义的文字分析菜单项。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
menus Menu[]

选中文字时,支持在文字菜单上增加自定义菜单项,回调中包含当前选中的文字结果。

最多只展示三个,超过三个时取前三个。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear() {
  8. this.visionImageAnalyzerController.setAIButtonVisibility(true);
  9. this.visionImageAnalyzerController.setCustomTextMenuItems([
  10. {
  11. value: 'menu2',
  12. action: (param: string | visionImageAnalyzer.Subject[]) => {
  13. console.info('DEMO_TAG', 'text menu clicked');
  14. }
  15. }
  16. ]);
  17. }
  18. build() {
  19. Stack() {
  20. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  21. Image($r('app.media.img'), {
  22. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  23. aiController: this.visionImageAnalyzerController
  24. })
  25. .width('100%')
  26. .height('100%')
  27. .enableAnalyzer(true)
  28. .objectFit(ImageFit.Contain)
  29. }.width('100%').height('100%')
  30. }
  31. }

示例如下图所示,菜单右侧增加自定义菜单项。

startSubjectAnalyzer

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

startSubjectAnalyzer(): void

开启主体识别,前提需确保当前设备支持主体识别功能。可通过监听 “subjectAnalysis” 事件回调获取主体,注意在等待返回主体时增加超时处理,避免因未识别到主体而一直处于等待状态。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear() {
  8. let supportTypes = this.visionImageAnalyzerController.getImageAnalyzerSupportTypes();
  9. if (supportTypes.includes(ImageAnalyzerType.SUBJECT)) {
  10. this.visionImageAnalyzerController.startSubjectAnalyzer();
  11. }
  12. }
  13. build() {
  14. Stack() {
  15. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  16. Image($r('app.media.img'), {
  17. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  18. aiController: this.visionImageAnalyzerController
  19. })
  20. .width('100%')
  21. .height('100%')
  22. .enableAnalyzer(true)
  23. .objectFit(ImageFit.Contain)
  24. }.width('100%').height('100%')
  25. }
  26. }

setCustomSubjectMenuItems

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

setCustomSubjectMenuItems(menus: Menu[]): void

设置自定义的主体分析菜单项。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
menus Menu[]

选中主体时,支持在主体菜单上增加自定义菜单项,回调中包含当前选中的主体结果。

最多只展示三个,超过部分取前三个。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear() {
  8. this.visionImageAnalyzerController.setCustomSubjectMenuItems([
  9. {
  10. value: 'menu2',
  11. action: (param: string | visionImageAnalyzer.Subject[]) => {
  12. console.info('DEMO_TAG', 'subject menu clicked');
  13. }
  14. }
  15. ]);
  16. }
  17. build() {
  18. Stack() {
  19. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  20. Image($r('app.media.img'), {
  21. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  22. aiController: this.visionImageAnalyzerController
  23. })
  24. .width('100%')
  25. .height('100%')
  26. .enableAnalyzer(true)
  27. .objectFit(ImageFit.Contain)
  28. }.width('100%').height('100%')
  29. }
  30. }

setSelectedSubjects

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

setSelectedSubjects(subjectIds: number[]): void

根据主体id列表设置选中的主体。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
subjectIds number[] 要选中的主体id列表。通过getSubject获取,只有图片识别结果中包含的主体id才有效。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct SingleImageTest2 {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear() {
  8. this.visionImageAnalyzerController.on('subjectAnalysis', (subjects: visionImageAnalyzer.Subject[]) => {
  9. console.info('DEMO_TAG', `subjectAnalysis result: ${JSON.stringify(subjects)}`);
  10. if (subjects.length > 0) {
  11. this.visionImageAnalyzerController.setSelectedSubjects([subjects[0].id]);
  12. }
  13. });
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

getSelectedSubjects

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

getSelectedSubjects(): Promise<Subject[] | null>

获取当前选中的主体。使用Promise异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

返回值:

展开
类型 说明
Promise<Subject[] | null> Promise对象,返回当前选中的主体。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. getSelectedSubjects() {
  8. void this.visionImageAnalyzerController.getSelectedSubjects().then((subjects: visionImageAnalyzer.Subject[] | null) => {
  9. console.info('DEMO_TAG', `getSelectedSubjects result: ${JSON.stringify(subjects)}`);
  10. })
  11. }
  12. build() {
  13. Stack() {
  14. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  15. Image($r('app.media.img'), {
  16. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  17. aiController: this.visionImageAnalyzerController
  18. })
  19. .width('100%')
  20. .height('100%')
  21. .enableAnalyzer(true)
  22. .objectFit(ImageFit.Contain)
  23. }.width('100%').height('100%')
  24. }
  25. }

getSubject

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

getSubject(point: visionBase.Point): Promise<Subject | null>

根据点位获取对应位置的主体。使用Promise异步回调。调用此接口前需先调用startSubjectAnalyzer开启主体识别。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
point visionBase.Point 相对于图片左上角位置点位(px)。

返回值:

展开
类型 说明
Promise<Subject | null> Promise对象,point点位所在的主体。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. import { visionBase } from '@kit.CoreVisionKit';
  3. @Entry
  4. @Component
  5. struct ImageDemo {
  6. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController = new visionImageAnalyzer.VisionImageAnalyzerController();
  7. getSelectedSubjects() {
  8. let searchPoint: visionBase.Point = { x: 100, y: 100 };
  9. void this.visionImageAnalyzerController.getSubject(searchPoint).then((subjects: visionImageAnalyzer.Subject | null) => {
  10. console.info('DEMO_TAG', `getSubject result: ${JSON.stringify(subjects)}`);
  11. });
  12. }
  13. build() {
  14. Stack() {
  15. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  16. Image($r('app.media.img'), {
  17. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  18. aiController: this.visionImageAnalyzerController
  19. })
  20. .width('100%')
  21. .height('100%')
  22. .enableAnalyzer(true)
  23. .objectFit(ImageFit.Contain)
  24. }.width('100%').height('100%')
  25. }
  26. }

getSubjectsImage

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

getSubjectsImage(subjectIds: number[]): Promise<PixelMap | null>

根据主体id获取对应主体组装成的图像。使用Promise异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
subjectIds number[] 主体id列表。通过getSubject获取。

返回值:

展开
类型 说明
Promise<PixelMap | null> Promise对象,对应id列表组装成的图片。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. @Entry
  4. @Component
  5. struct ImageDemo {
  6. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  7. new visionImageAnalyzer.VisionImageAnalyzerController();
  8. getSubjectsImage() {
  9. this.visionImageAnalyzerController.on('subjectAnalysis', (subjects: visionImageAnalyzer.Subject[]) => {
  10. console.info('DEMO_TAG', `subjectAnalysis result: ${JSON.stringify(subjects)}`);
  11. if (subjects.length > 0) {
  12. let ids: number[] = [subjects[0].id];
  13. this.visionImageAnalyzerController.getSubjectsImage(ids).then((image: PixelMap | null) => {
  14. console.info('DEMO_TAG', 'Image data obtained successfully');
  15. }).catch((error: BusinessError) => {
  16. console.error('DEMO_TAG', `Failed to obtain image data. Code: ${error.code}, message: ${error.message}`);
  17. })
  18. }
  19. });
  20. }
  21. build() {
  22. Stack() {
  23. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  24. Image($r('app.media.img'), {
  25. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  26. aiController: this.visionImageAnalyzerController
  27. })
  28. .width('100%')
  29. .height('100%')
  30. .enableAnalyzer(true)
  31. .objectFit(ImageFit.Contain)
  32. }.width('100%').height('100%')
  33. }
  34. }

getImageAnalyzerUIStatus

Phone5.0.2(14)+PC/2in15.0.2(14)+Tablet5.0.2(14)+

getImageAnalyzerUIStatus(): Promise<ImageAnalyzerUIStatus>

获取当前图片分析UI状态。使用Promise异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.2(14)

返回值:

展开
类型 说明
Promise<ImageAnalyzerUIStatus> Promise对象,当前图片分析UI状态。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. @Entry
  4. @Component
  5. struct ImageDemo {
  6. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  7. new visionImageAnalyzer.VisionImageAnalyzerController();
  8. aboutToAppear() {
  9. this.visionImageAnalyzerController.setAIButtonVisibility(true);
  10. this.visionImageAnalyzerController.on('objectSearchPanelVisibilityChange', (objectSearchPanelVisibility: visionImageAnalyzer.ObjectSearchPanelVisibility) => {
  11. this.visionImageAnalyzerController.getImageAnalyzerUIStatus().then((status: visionImageAnalyzer.ImageAnalyzerUIStatus) => {
  12. console.info('Image data obtained successfully: ', status);
  13. }).catch((error: BusinessError) => {
  14. console.error('DEMO_TAG', `Failed to obtain image data. Code: ${error.code}, message: ${error.message}`);
  15. })
  16. });
  17. }
  18. build() {
  19. Stack() {
  20. Image($r('app.media.img'), {
  21. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  22. aiController: this.visionImageAnalyzerController
  23. })
  24. .width('100%')
  25. .height('60%')
  26. .enableAnalyzer(true)
  27. .objectFit(ImageFit.Contain)
  28. Button('获取当前图片分析UI状态', { stateEffect: true, type: ButtonType.Capsule })
  29. .width('80%')
  30. .height(40)
  31. .onClick(() => {
  32. this.visionImageAnalyzerController.getImageAnalyzerUIStatus()
  33. .then((status: visionImageAnalyzer.ImageAnalyzerUIStatus) => {
  34. console.info('DEMO_TAG', 'Image data obtained successfully: ', status);
  35. })
  36. .catch((error: BusinessError) => {
  37. console.error('DEMO_TAG', `Failed to obtain image data. Code: ${error.code}, message: ${error.message}`);
  38. })
  39. })
  40. .id('getImageAnalyzerUIStatus')
  41. .width('40%')
  42. }.width('100%').height('100%')
  43. }
  44. }

startObjectSearch

Phone5.0.0(12)+Tablet5.0.0(12)+

startObjectSearch(): Promise<boolean>

开启视觉搜索。使用Promise异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

设备行为差异: 该接口在PC/2in1上无效果,在其他设备类型中可正常调用。

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

返回值:

展开
类型 说明
Promise<boolean>

Promise对象,返回是否开启视觉搜索。true表示开启视觉搜索,false表示关闭视觉搜索。在文字选择或主体识别状态时拉起会返回false。

说明:

视觉搜索若在Swiper容器切换图场景下无法生效,则需要在图片切换的onAnimationStart中置空一下当前选中图片的index,再由onAnimationEnd时将当前选中index置成当前index,以此实现overlay跟随图片变动而变动。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. async startObjectSearch() {
  8. // 开启视觉搜索后会拉起搜索界面
  9. let result: boolean = await this.visionImageAnalyzerController.startObjectSearch();
  10. console.info('DEMO_TAG', `startObjectSearch result: ${result}`);
  11. }
  12. build() {
  13. Stack() {
  14. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  15. Image($r('app.media.img'), {
  16. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  17. aiController: this.visionImageAnalyzerController
  18. })
  19. .width('100%')
  20. .height('100%')
  21. .enableAnalyzer(true)
  22. .objectFit(ImageFit.Contain)
  23. }.width('100%').height('100%')
  24. }
  25. }

stopObjectSearch

Phone5.0.0(12)+Tablet5.0.0(12)+

stopObjectSearch(): void

关闭视觉搜索功能。 如果当前在视觉搜索交互状态,则不支持关闭。

系统能力: SystemCapability.AI.VisionImageAnalyzer

设备行为差异: 该接口在PC/2in1上无效果,在其他设备类型中可正常调用。

起始版本: 5.0.0(12)

模型约束: 此接口仅可在Stage模型下使用。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. stopObjectSearch() {
  8. this.visionImageAnalyzerController.stopObjectSearch();
  9. }
  10. build() {
  11. Stack() {
  12. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  13. Image($r('app.media.img'), {
  14. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  15. aiController: this.visionImageAnalyzerController
  16. })
  17. .width('100%')
  18. .height('100%')
  19. .enableAnalyzer(true)
  20. .objectFit(ImageFit.Contain)
  21. }.width('100%').height('100%')
  22. }
  23. }

setSubjectMenuVisibility

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+

setSubjectMenuVisibility(visible: boolean): void

设置图像分割菜单状态。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.1(13)

参数:

展开
参数名 类型 必填 说明
visible boolean

设置图像分割菜单状态。

true:显示图像分割菜单;false:隐藏图像分割菜单。

默认是true。

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. setSubjectMenuVisibility(visible: boolean) {
  8. this.visionImageAnalyzerController.setSubjectMenuVisibility(visible);
  9. }
  10. build() {
  11. Stack() {
  12. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  13. Image($r('app.media.img'), {
  14. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  15. aiController: this.visionImageAnalyzerController
  16. })
  17. .width('100%')
  18. .height('100%')
  19. .enableAnalyzer(true)
  20. .objectFit(ImageFit.Contain)
  21. }.width('100%').height('100%')
  22. }
  23. }

on(type: 'aiButtonStatusChange')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

on(type: 'aiButtonStatusChange', callback: Callback<AIButtonStatus>): void

监听AIButton展示状态。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"aiButtonStatusChange"。监听AIButton展示状态。
callback Callback<AIButtonStatus> 回调函数。返回AIButton展示状态。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController?.setAIButtonVisibility(true);
  9. this.visionImageAnalyzerController.on('aiButtonStatusChange', (aiButtonState: visionImageAnalyzer.AIButtonStatus) => {
  10. console.info('DEMO_TAG', `aiButtonStatusChange result: ${JSON.stringify(aiButtonState)}`);
  11. });
  12. }
  13. build() {
  14. Stack() {
  15. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  16. Image($r('app.media.img'), {
  17. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  18. aiController: this.visionImageAnalyzerController
  19. })
  20. .width('100%')
  21. .height('100%')
  22. .enableAnalyzer(true)
  23. .objectFit(ImageFit.Contain)
  24. }.width('100%').height('100%')
  25. }
  26. }

off(type: 'aiButtonStatusChange')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

off(type: 'aiButtonStatusChange', callback?: Callback<AIButtonStatus>): void

取消监听AIButton展示状态。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"aiButtonStatusChange"。取消监听AIButton展示状态。
callback Callback<AIButtonStatus> 回调函数,返回AIButton展示状态。需与订阅时传入的回调函数是同一个。若无此参数,则取消注册所有的回调函数。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController?.setAIButtonVisibility(true);
  9. this.visionImageAnalyzerController.on('aiButtonStatusChange', (aiButtonState: visionImageAnalyzer.AIButtonStatus) => {
  10. console.info('DEMO_TAG', `aiButtonStatusChange result: ${JSON.stringify(aiButtonState)}`);
  11. });
  12. }
  13. aboutToDisappear(): void {
  14. this.visionImageAnalyzerController.off('aiButtonStatusChange');
  15. }
  16. build() {
  17. Stack() {
  18. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  19. Image($r('app.media.img'), {
  20. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  21. aiController: this.visionImageAnalyzerController
  22. })
  23. .width('100%')
  24. .height('100%')
  25. .enableAnalyzer(true)
  26. .objectFit(ImageFit.Contain)
  27. }.width('100%').height('100%')
  28. }
  29. }

on(type: 'imageAnalyzerVisibilityChange')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

on(type: 'imageAnalyzerVisibilityChange', callback: Callback<ImageAnalyzerVisibility>): void

监听AI识图控件可见状态。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"imageAnalyzerVisibilityChange"。监听AI识图控件可见状态。
callback Callback<ImageAnalyzerVisibility> 回调函数。返回AI识图控件可见状态。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController?.setAIButtonVisibility(true);
  9. this.visionImageAnalyzerController.on('imageAnalyzerVisibilityChange', (visibility: visionImageAnalyzer.ImageAnalyzerVisibility) => {
  10. console.info('DEMO_TAG', `imageAnalyzerVisibilityChange result: ${JSON.stringify(visibility)}`);
  11. });
  12. }
  13. aboutToDisappear(): void {
  14. this.visionImageAnalyzerController.off('imageAnalyzerVisibilityChange');
  15. }
  16. build() {
  17. Stack() {
  18. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  19. Image($r('app.media.img'), {
  20. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  21. aiController: this.visionImageAnalyzerController
  22. })
  23. .width('100%')
  24. .height('100%')
  25. .enableAnalyzer(true)
  26. .objectFit(ImageFit.Contain)
  27. }.width('100%').height('100%')
  28. }
  29. }

off(type: 'imageAnalyzerVisibilityChange')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

off(type: 'imageAnalyzerVisibilityChange', callback?: Callback<ImageAnalyzerVisibility>): void

取消AI识图控件可见状态的监听。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"imageAnalyzerVisibilityChange"。取消AI识图控件可见状态的监听。
callback Callback<ImageAnalyzerVisibility> 回调函数。返回AI识图控件可见状态。需与订阅时传入的回调函数是同一个。若无此参数,则取消注册所有的回调函数。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController?.setAIButtonVisibility(true);
  9. this.visionImageAnalyzerController.on('imageAnalyzerVisibilityChange', (visibility: visionImageAnalyzer.ImageAnalyzerVisibility) => {
  10. console.info('DEMO_TAG', `imageAnalyzerVisibilityChange result: ${JSON.stringify(visibility)}`);
  11. });
  12. }
  13. aboutToDisappear(): void {
  14. this.visionImageAnalyzerController.off('imageAnalyzerVisibilityChange');
  15. }
  16. build() {
  17. Stack() {
  18. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  19. Image($r('app.media.img'), {
  20. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  21. aiController: this.visionImageAnalyzerController
  22. })
  23. .width('100%')
  24. .height('100%')
  25. .enableAnalyzer(true)
  26. .objectFit(ImageFit.Contain)
  27. }.width('100%').height('100%')
  28. }
  29. }

on(type: 'textAnalysis')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

on(type: 'textAnalysis', callback: Callback<string>): void

监听文字分析结果。默认在首次长按图片文本时触发文本分析,PC/2in1是在图片首次加载时触发文本分析。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"textAnalysis"。监听文字分析结果。
callback Callback<string> 回调函数。返回文字分析结果。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('textAnalysis', (text: string) => {
  9. console.info('DEMO_TAG', `textAnalysis result: ${JSON.stringify(text)}`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('textAnalysis');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

off(type: 'textAnalysis')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

off(type: 'textAnalysis', callback?: Callback<string>): void

取消文字分析结果的监听。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"textAnalysis"。取消文字分析结果的监听。
callback Callback<string> 回调函数。返回文字分析结果。需与订阅时传入的回调函数是同一个。若无此参数,则取消注册所有的回调函数。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('textAnalysis', (text: string) => {
  9. console.info('DEMO_TAG', `textAnalysis result: ${JSON.stringify(text)}`);
  10. })
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('textAnalysis');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

on(type: 'selectedTextChange')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

on(type: 'selectedTextChange', callback: Callback<string>): void

监听文字选中结果。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"selectedTextChange"。监听文字选中结果。
callback Callback<string> 回调函数。返回文字选中结果。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('selectedTextChange', (selectedText: string) => {
  9. console.info('DEMO_TAG', `selectedTextChange result: ${JSON.stringify(selectedText)}`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('selectedTextChange');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

off(type: 'selectedTextChange')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

off(type: 'selectedTextChange', callback?: Callback<string>): void

取消文字选中结果的监听。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"selectedTextChange"。取消文字选中结果的监听。
callback Callback<string> 回调函数。返回文字选中结果。需与订阅时传入的回调函数是同一个。若无此参数,则取消注册所有的回调函数。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('selectedTextChange', (selectedText: string) => {
  9. console.info('DEMO_TAG', `selectedTextChange result: ${JSON.stringify(selectedText)}`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('selectedTextChange');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

on(type: 'subjectAnalysis')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

on(type: 'subjectAnalysis', callback: Callback<Subject[]>): void

监听主体分析结果,返回所有主体信息。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"subjectAnalysis"。监听主体分析结果, 返回所有主体信息。
callback Callback<Subject[]> 回调函数。返回主体分析结果对象数组。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('subjectAnalysis', (subjects: visionImageAnalyzer.Subject[]) => {
  9. console.info('DEMO_TAG', `subjectAnalysis result: ${JSON.stringify(subjects)}`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('subjectAnalysis');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

off(type: 'subjectAnalysis')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

off(type: 'subjectAnalysis', callback?: Callback<Subject[]>): void

取消主体分析结果的监听。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"subjectAnalysis"。取消主体分析结果的监听。
callback Callback<Subject[]> 回调函数。返回主体分析结果对象数组。需与订阅时传入的回调函数是同一个。若无此参数,则取消注册所有的回调函数。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('subjectAnalysis', (subjects: visionImageAnalyzer.Subject[]) => {
  9. console.info('DEMO_TAG', `subjectAnalysis result: ${JSON.stringify(subjects)}`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('subjectAnalysis');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

on(type: 'selectedSubjectsChange')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

on(type: 'selectedSubjectsChange', callback: Callback<Subject[]>): void

监听选中的主体。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"selectedSubjectsChange"。监听选中的主体。
callback Callback<Subject[]> 回调函数。返回选中的主体信息对象数组。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('selectedSubjectsChange', (subjects: visionImageAnalyzer.Subject[]) => {
  9. console.info('DEMO_TAG', `selectedSubjectsChange result: ${JSON.stringify(subjects)}`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('selectedSubjectsChange');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

off(type: 'selectedSubjectsChange')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

off(type: 'selectedSubjectsChange', callback?: Callback<Subject[]>): void

取消对选中主体的监听。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"selectedSubjectsChange"。取消对选中主体的监听。
callback Callback<Subject[]> 回调函数。返回选中的主体信息对象数组。需与订阅时传入的回调函数是同一个。若无此参数,则取消注册所有的回调函数。

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('selectedSubjectsChange', (subjects: visionImageAnalyzer.Subject[]) => {
  9. console.info('DEMO_TAG', `selectedSubjectsChange result: ${JSON.stringify(subjects)}`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('selectedSubjectsChange');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

on(type: 'objectSearchPanelVisibilityChange')

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+

on(type: 'objectSearchPanelVisibilityChange', callback: Callback<ObjectSearchPanelVisibility>): void

监听图片搜索事件。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.1(13)

参数:

展开
参数名 类型 必填 说明
type string 值为"objectSearchPanelVisibilityChange"。监听图片搜索事件。
callback Callback<ObjectSearchPanelVisibility> 回调函数。返回图片搜索事件信息。
收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('objectSearchPanelVisibilityChange', (status: visionImageAnalyzer.ObjectSearchPanelVisibility) => {
  9. console.info('DEMO_TAG', `objectSearchPanelVisibilityChange result: ${JSON.stringify(status)}`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('objectSearchPanelVisibilityChange');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

off(type: 'objectSearchPanelVisibilityChange')

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+

off(type: 'objectSearchPanelVisibilityChange', callback?: Callback<ObjectSearchPanelVisibility>): void

取消图片搜索事件的监听。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.1(13)

参数:

展开
参数名 类型 必填 说明
type string 值为"objectSearchPanelVisibilityChange"。取消监听图片搜索事件。
callback Callback<ObjectSearchPanelVisibility> 回调函数。返回图片搜索事件信息。需与订阅时传入的回调函数是同一个。若无此参数,则取消注册所有的回调函数。
收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('objectSearchPanelVisibilityChange', (status: visionImageAnalyzer.ObjectSearchPanelVisibility) => {
  9. console.info('DEMO_TAG', `objectSearchPanelVisibilityChange result: ${JSON.stringify(status)}`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('objectSearchPanelVisibilityChange');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

on(type: 'cursorMoveInText')

Phone5.1.0(18)+PC/2in15.1.0(18)+Tablet5.1.0(18)+

on(type: 'cursorMoveInText', callback: Callback<void>): void

监听光标移入图片内文字区域事件。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.1.0(18)

参数:

展开
参数名 类型 必填 说明
type string 值为"cursorMoveInText"。监听光标移入图片内文字区域事件。
callback Callback<void> 回调函数。返回为空,表示光标移入图片内文字区域。
收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('cursorMoveInText', () => {
  9. console.info('DEMO_TAG', `cursorMoveInText on`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('cursorMoveInText');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

off(type: 'cursorMoveInText')

Phone5.1.0(18)+PC/2in15.1.0(18)+Tablet5.1.0(18)+

off(type: 'cursorMoveInText', callback?: Callback<void>): void

取消光标移入图片内文字区域事件的监听。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.1.0(18)

参数:

展开
参数名 类型 必填 说明
type string 值为"cursorMoveInText"。取消监听光标移入图片内文字区域事件。
callback Callback<void> 回调函数。返回为空,表示光标移入图片内文字区域。需与订阅时传入的回调函数是同一个。若无此参数,则取消注册所有的回调函数。
收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('cursorMoveInText', () => {
  9. console.info('DEMO_TAG', `cursorMoveInText on`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('cursorMoveInText');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

on(type: 'cursorMoveOutText')

Phone5.1.0(18)+PC/2in15.1.0(18)+Tablet5.1.0(18)+

on(type: 'cursorMoveOutText', callback: Callback<void>): void

监听光标移出图片内文字区域事件。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.1.0(18)

参数:

展开
参数名 类型 必填 说明
type string 值为"cursorMoveOutText"。监听光标移出图片内文字区域事件。
callback Callback<void> 回调函数。返回为空。表示光标移出图片内文字区域事件。
收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('cursorMoveOutText', () => {
  9. console.info('DEMO_TAG', `cursorMoveOutText on`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('cursorMoveOutText');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

off(type: 'cursorMoveOutText')

Phone5.1.0(18)+PC/2in15.1.0(18)+Tablet5.1.0(18)+

off(type: 'cursorMoveOutText', callback?: Callback<void>): void

取消光标移出图片内文字区域事件的监听。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.1.0(18)

参数:

展开
参数名 类型 必填 说明
type string 值为"cursorMoveOutText"。取消监听光标移出图片内文字区域事件。
callback Callback<void> 回调函数。返回为空。需与订阅时传入的回调函数是同一个。若无此参数,则取消注册所有的回调函数。
收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. @Entry
  3. @Component
  4. struct ImageDemo {
  5. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  6. new visionImageAnalyzer.VisionImageAnalyzerController();
  7. aboutToAppear(): void {
  8. this.visionImageAnalyzerController.on('cursorMoveOutText', () => {
  9. console.info('DEMO_TAG', `cursorMoveOutText on`);
  10. });
  11. }
  12. aboutToDisappear(): void {
  13. this.visionImageAnalyzerController.off('cursorMoveOutText');
  14. }
  15. build() {
  16. Stack() {
  17. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  18. Image($r('app.media.img'), {
  19. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  20. aiController: this.visionImageAnalyzerController
  21. })
  22. .width('100%')
  23. .height('100%')
  24. .enableAnalyzer(true)
  25. .objectFit(ImageFit.Contain)
  26. }.width('100%').height('100%')
  27. }
  28. }

on(type: 'analyzerFailed')

Phone5.0.0(12)+PC/2in15.0.1(13)+Tablet5.0.0(12)+

on(type: 'analyzerFailed', callback: ErrorCallback): void

监听AI识图的异常场景。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"analyzerFailed"。监听AI识图异常场景。
callback ErrorCallback 回调函数。返回AI识图异常场景错误信息。

错误码:

以下错误码的详细介绍请参见通用错误码ArkTS API错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3.Parameter verification failed.
1013700002 The service is abnormal.

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. @Entry
  4. @Component
  5. struct ImageDemo {
  6. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  7. new visionImageAnalyzer.VisionImageAnalyzerController();
  8. aboutToAppear(): void {
  9. this.visionImageAnalyzerController.on('analyzerFailed', (error: BusinessError) => {
  10. console.error('DEMO_TAG', `Failed to analyzer image. Code: ${error.code}, message: ${error.message}`);
  11. });
  12. }
  13. aboutToDisappear(): void {
  14. this.visionImageAnalyzerController.off('analyzerFailed');
  15. }
  16. build() {
  17. Stack() {
  18. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  19. Image($r('app.media.img'), {
  20. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  21. aiController: this.visionImageAnalyzerController
  22. })
  23. .width('100%')
  24. .height('100%')
  25. .enableAnalyzer(true)
  26. .objectFit(ImageFit.Contain)
  27. }.width('100%').height('100%')
  28. }
  29. }

off(type: 'analyzerFailed')

Phone6.1.1(24)+PC/2in16.1.1(24)+Tablet6.1.1(24)+

off(type: 'analyzerFailed', callback?: ErrorCallback): void

取消AI识图异常场景的监听。使用callback异步回调。

系统能力: SystemCapability.AI.VisionImageAnalyzer

模型约束: 此接口仅可在Stage模型下使用。

起始版本: 5.0.0(12)

参数:

展开
参数名 类型 必填 说明
type string 值为"analyzerFailed"。取消AI识图异常场景的监听。
callback ErrorCallback 回调函数。返回AI识图异常场景错误信息。需与订阅时传入的回调函数是同一个。若无此参数,则取消注册所有的回调函数。

错误码:

以下错误码的详细介绍请参见通用错误码ArkTS API错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3.Parameter verification failed.
1013700002 The service is abnormal.

示例:

收起
自动换行
深色代码主题
复制
  1. import { visionImageAnalyzer } from '@kit.VisionKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. @Entry
  4. @Component
  5. struct ImageDemo {
  6. private visionImageAnalyzerController: visionImageAnalyzer.VisionImageAnalyzerController =
  7. new visionImageAnalyzer.VisionImageAnalyzerController();
  8. aboutToAppear(): void {
  9. this.visionImageAnalyzerController.on('analyzerFailed', (error: BusinessError) => {
  10. console.error('DEMO_TAG', `Failed to analyzer image. Code: ${error.code}, message: ${error.message}`);
  11. });
  12. }
  13. aboutToDisappear(): void {
  14. this.visionImageAnalyzerController.off('analyzerFailed');
  15. }
  16. build() {
  17. Stack() {
  18. // 此处图片需单独配置,添加到src/main/resources/base/media路径下
  19. Image($r('app.media.img'), {
  20. types: [ImageAnalyzerType.TEXT, ImageAnalyzerType.SUBJECT, ImageAnalyzerType.OBJECT_LOOKUP],
  21. aiController: this.visionImageAnalyzerController
  22. })
  23. .width('100%')
  24. .height('100%')
  25. .enableAnalyzer(true)
  26. .objectFit(ImageFit.Contain)
  27. }.width('100%').height('100%')
  28. }
  29. }
在 API参考 中进行搜索
请输入您想要搜索的关键词