图像效果

2024-01-23 13:19 更新

图像效果提供处理图像的一些基础能力,包括对当前图像的亮度调节、模糊化、灰度调节、智能取色等。

该模块提供以下图像效果相关的常用功能:

  • Filter:效果类,用于添加指定效果到图像源。
  • Color:颜色类,用于保存取色的结果。
  • ColorPicker:智能取色器。
说明

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

  1. import effectKit from '@ohos.effectKit';

effectKit.createEffect

createEffect(source: image.PixelMap): Filter

通过传入的PixelMap创建Filter实例。

系统能力: SystemCapability.Multimedia.Image.Core

参数:

参数名

类型

必填

说明

source

image.PixelMap

image模块创建的PixelMap实例。可通过图片解码或直接创建获得,具体可见图片开发指导

返回值:

类型

说明

Filter

返回不带任何效果的Filter链表的头节点,失败时返回null。

示例:

  1. import image from "@ohos.multimedia.image";
  2. const color = new ArrayBuffer(96);
  3. let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
  4. image.createPixelMap(color, opts).then((pixelMap) => {
  5. let headFilter = effectKit.createEffect(pixelMap);
  6. })

effectKit.createColorPicker

createColorPicker(source: image.PixelMap): Promise<ColorPicker>

通过传入的PixelMap创建ColorPicker实例,使用Promise异步回调。

系统能力: SystemCapability.Multimedia.Image.Core

参数:

参数名

类型

必填

说明

source

image.PixelMap

image模块创建的PixelMap实例。可通过图片解码或直接创建获得,具体可见图片开发指导

返回值:

类型

说明

Promise<ColorPicker>

Promise对象。返回创建的ColorPicker实例。

示例:

  1. import image from "@ohos.multimedia.image";
  2. const color = new ArrayBuffer(96);
  3. let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
  4. image.createPixelMap(color, opts).then((pixelMap) => {
  5. effectKit.createColorPicker(pixelMap).then(colorPicker => {
  6. console.info("color picker=" + colorPicker);
  7. }).catch(ex => console.error(".error=" + ex.toString()))
  8. })

effectKit.createColorPicker

createColorPicker(source: image.PixelMap, callback: AsyncCallback<ColorPicker>): void

通过传入的PixelMap创建ColorPicker实例,使用callback异步回调。

系统能力: SystemCapability.Multimedia.Image.Core

参数:

参数名

类型

必填

说明

source

image.PixelMap

image模块创建的PixelMap实例。可通过图片解码或直接创建获得,具体可见图片开发指导

callback

AsyncCallback<ColorPicker>

回调函数。返回创建的ColorPicker实例。

示例:

  1. import image from "@ohos.multimedia.image";
  2. const color = new ArrayBuffer(96);
  3. let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
  4. image.createPixelMap(color, opts).then((pixelMap) => {
  5. effectKit.createColorPicker(pixelMap, (error, colorPicker) => {
  6. if (error) {
  7. console.error('Failed to create color picker.');
  8. } else {
  9. console.info('Succeeded in creating color picker.');
  10. }
  11. })
  12. })

Color

颜色类,用于保存取色的结果。

系统能力: SystemCapability.Multimedia.Image.Core

名称

类型

可读

可写

说明

red

number

红色分量值,取值范围[0x0, 0xFF]。

green

number

绿色分量值,取值范围[0x0, 0xFF]。

blue

number

蓝色分量值,取值范围[0x0, 0xFF]。

alpha

number

透明通道分量值,取值范围[0x0, 0xFF]。

ColorPicker

取色类,用于从一张图像数据中获取它的主要颜色。在调用ColorPicker的方法前,需要先通过createColorPicker创建一个ColorPicker实例。

getMainColor

getMainColor(): Promise<Color>

读取图像主色的颜色值,结果写入Color里,使用Promise异步回调。

系统能力: SystemCapability.Multimedia.Image.Core

返回值:

类型

说明

Promise<Color>

Promise对象。返回图像主色对应的颜色值,失败时返回错误信息。

示例:

  1. colorPicker.getMainColor().then(color => {
  2. console.info('Succeeded in getting main color.');
  3. console.info(`color[ARGB]=${color.alpha},${color.red},${color.green},${color.blue}`);
  4. }).catch(error => {
  5. console.error('Failed to get main color.');
  6. })

getMainColorSync

getMainColorSync(): Color

读取图像主色的颜色值,结果写入Color里,使用同步方式返回。

系统能力: SystemCapability.Multimedia.Image.Core

返回值:

类型

说明

Color

Color实例,即图像主色对应的颜色值,失败时返回null。

示例:

  1. let color = colorPicker.getMainColorSync();
  2. console.info('get main color =' + color);

Filter

图像效果类,用于将指定的效果添加到输入图像中。在调用Filter的方法前,需要先通过createEffect创建一个Filter实例。

blur

blur(radius: number): Filter

将模糊效果添加到效果链表中,结果返回效果链表的头节点。

系统能力: SystemCapability.Multimedia.Image.Core

参数:

参数名

类型

必填

说明

radius

number

模糊半径,单位是像素。模糊效果与所设置的值成正比,值越大效果越明显。

返回值:

类型

说明

Filter

返回已添加的图像效果。

示例:

  1. import image from "@ohos.multimedia.image";
  2. const color = new ArrayBuffer(96);
  3. let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
  4. image.createPixelMap(color, opts).then((pixelMap) => {
  5. let radius = 5;
  6. let headFilter = effectKit.createEffect(pixelMap);
  7. if (headFilter != null) {
  8. headFilter.blur(radius);
  9. }
  10. })

brightness

brightness(bright: number): Filter

将高亮效果添加到效果链表中,结果返回效果链表的头节点。

系统能力: SystemCapability.Multimedia.Image.Core

参数:

参数名

类型

必填

说明

bright

number

高亮程度,取值范围在0-1之间,取值为0时图像保持不变。

返回值:

类型

说明

Filter

返回已添加的图像效果。

示例:

  1. import image from "@ohos.multimedia.image";
  2. const color = new ArrayBuffer(96);
  3. let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
  4. image.createPixelMap(color, opts).then((pixelMap) => {
  5. let bright = 0.5;
  6. let headFilter = effectKit.createEffect(pixelMap);
  7. if (headFilter != null) {
  8. headFilter.brightness(bright);
  9. }
  10. })

grayscale

grayscale(): Filter

将灰度效果添加到效果链表中,结果返回效果链表的头节点。

系统能力: SystemCapability.Multimedia.Image.Core

返回值:

类型

说明

Filter

返回已添加的图像效果。

示例:

  1. import image from "@ohos.multimedia.image";
  2. const color = new ArrayBuffer(96);
  3. let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
  4. image.createPixelMap(color, opts).then((pixelMap) => {
  5. let headFilter = effectKit.createEffect(pixelMap);
  6. if (headFilter != null) {
  7. headFilter.grayscale();
  8. }
  9. })

getPixelMap

getPixelMap(): image.PixelMap

获取已添加链表效果的源图像的image.PixelMap。

系统能力: SystemCapability.Multimedia.Image.Core

返回值:

类型

说明

image.PixelMap

已添加效果的源图像的image.PixelMap。

示例:

  1. import image from "@ohos.multimedia.image";
  2. const color = new ArrayBuffer(96);
  3. let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } };
  4. image.createPixelMap(color, opts).then((pixelMap) => {
  5. let pixel = effectKit.createEffect(pixelMap).grayscale().getPixelMap();
  6. })
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号