# @ohos.multimedia.image (图片处理) 本模块提供图片处理效果,包括通过属性创建PixelMap、读取图像像素数据、读取区域内的图片数据等。 > **说明:** > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 ## 导入模块 ```ts import image from '@ohos.multimedia.image'; ``` ## image.createPixelMap8+ createPixelMap(colors: ArrayBuffer, options: InitializationOptions): Promise\ 通过属性创建PixelMap,默认采用BGRA_8888格式处理数据,通过Promise返回结果。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------- | ------------------------------------------------ | ---- | ---------------------------------------------------------------- | | colors | ArrayBuffer | 是 | BGRA_8888格式的颜色数组。 | | options | [InitializationOptions](#initializationoptions8) | 是 | 创建像素的属性,包括透明度,尺寸,缩略值,像素格式和是否可编辑。 | **返回值:** | 类型 | 说明 | | -------------------------------- | ----------------------------------------------------------------------- | | Promise\<[PixelMap](#pixelmap7)> | 返回Pixelmap。
当创建的pixelmap大小超过原图大小时,返回原图pixelmap大小。| **示例:** ```ts import {BusinessError} from '@ohos.base' const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 let bufferArr : Uint8Array = new Uint8Array(color); let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } image.createPixelMap(color, opts).then((pixelmap : image.PixelMap) => { console.log('Succeeded in creating pixelmap.'); }).catch((error : BusinessError) => { console.log('Failed to create pixelmap.'); }) ``` ## image.createPixelMap8+ createPixelMap(colors: ArrayBuffer, options: InitializationOptions, callback: AsyncCallback\): void 通过属性创建PixelMap,默认采用BGRA_8888格式处理数据,通过回调函数返回结果。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------ | ---- | -------------------------- | | colors | ArrayBuffer | 是 | BGRA_8888格式的颜色数组。 | | options | [InitializationOptions](#initializationoptions8) | 是 | 属性。 | | callback | AsyncCallback\<[PixelMap](#pixelmap7)> | 是 | 通过回调返回PixelMap对象。 | **示例:** ```ts const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 let bufferArr : Uint8Array = new Uint8Array(color); let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } image.createPixelMap(color, opts, (error : BusinessError, pixelmap : image.PixelMap) => { if(error) { console.log('Failed to create pixelmap.'); } else { console.log('Succeeded in creating pixelmap.'); } }) ``` ## PixelMap7+ 图像像素类,用于读取或写入图像数据以及获取图像信息。在调用PixelMap的方法前,需要先通过createPixelMap创建一个PixelMap实例。目前pixelmap序列化大小最大128MB,超过会送显失败。大小计算方式为(宽\*高\*每像素占用字节数)。 ### 属性 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 类型 | 可读 | 可写 | 说明 | | ---------- | ------- | ---- | ---- | -------------------------- | | isEditable | boolean | 是 | 否 | 设定是否图像像素可被编辑。 | ### readPixelsToBuffer7+ readPixelsToBuffer(dst: ArrayBuffer): Promise\ 读取图像像素数据,结果写入ArrayBuffer里,使用Promise形式返回。指定BGRA_8888格式创建pixelmap,读取的像素数据与原数据保持一致。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ----------- | ---- | ----------------------------------------------------------------------------------------------------- | | dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由getPixelBytesNumber接口获取。 | **返回值:** | 类型 | 说明 | | -------------- | ----------------------------------------------- | | Promise\ | Promise实例,用于获取结果,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' const readBuffer : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 pixelmap.readPixelsToBuffer(readBuffer).then(() => { console.log('Succeeded in reading image pixel data.'); //符合条件则进入 }).catch((error : BusinessError) => { console.log('Failed to read image pixel data.'); //不符合条件则进入 }) ``` ### readPixelsToBuffer7+ readPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback\): void 读取图像像素数据,结果写入ArrayBuffer里,使用callback形式返回。指定BGRA_8888格式创建pixelmap,读取的像素数据与原数据保持一致。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ----------------------------------------------------------------------------------------------------- | | dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由getPixelBytesNumber接口获取。 | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' const readBuffer : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 pixelmap.readPixelsToBuffer(readBuffer, (err : BusinessError, res : Object) => { if(err) { console.log('Failed to read image pixel data.'); //不符合条件则进入 } else { console.log('Succeeded in reading image pixel data.'); //符合条件则进入 } }) ``` ### readPixels7+ readPixels(area: PositionArea): Promise\ 读取区域内的图片数据,使用Promise形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------------------------------ | ---- | ------------------------ | | area | [PositionArea](#positionarea7) | 是 | 区域大小,根据区域读取。 | **返回值:** | 类型 | 说明 | | :------------- | :-------------------------------------------------- | | Promise\ | Promise实例,用于获取读取结果,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' const area : image.PositionArea = { pixels: new ArrayBuffer(8), offset: 0, stride: 8, region: { size: { height: 1, width: 2 }, x: 0, y: 0 } } pixelmap.readPixels(area).then(() => { console.log('Succeeded in reading the image data in the area.'); //符合条件则进入 }).catch((error : BusinessError) => { console.log('Failed to read the image data in the area.'); //不符合条件则进入 }) ``` ### readPixels7+ readPixels(area: PositionArea, callback: AsyncCallback\): void 读取区域内的图片数据,使用callback形式返回读取结果。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------ | ---- | ------------------------------ | | area | [PositionArea](#positionarea7) | 是 | 区域大小,根据区域读取。 | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 let bufferArr : Uint8Array = new Uint8Array(color); let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } image.createPixelMap(color, opts, (err : BusinessError, pixelmap : image.PixelMap) => { if(pixelmap == undefined){ console.info('createPixelMap failed.'); } else { const area : image.PositionArea = { pixels: new ArrayBuffer(8), offset: 0, stride: 8, region: { size: { height: 1, width: 2 }, x: 0, y: 0 }}; pixelmap.readPixels(area, () => { console.info('readPixels success'); }) } }) ``` ### writePixels7+ writePixels(area: PositionArea): Promise\ 将PixelMap写入指定区域内,使用Promise形式返回写入结果。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------------------------------ | ---- | -------------------- | | area | [PositionArea](#positionarea7) | 是 | 区域,根据区域写入。 | **返回值:** | 类型 | 说明 | | :------------- | :-------------------------------------------------- | | Promise\ | Promise实例,用于获取写入结果,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 let bufferArr : Uint8Array = new Uint8Array(color); let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } image.createPixelMap(color, opts) .then( (pixelmap : image.PixelMap) => { if (pixelmap == undefined) { console.info('createPixelMap failed.'); } const area : image.PositionArea = { pixels: new ArrayBuffer(8), offset: 0, stride: 8, region: { size: { height: 1, width: 2 }, x: 0, y: 0 } } let bufferArr : Uint8Array = new Uint8Array(area.pixels); for (let i = 0; i < bufferArr.length; i++) { bufferArr[i] = i + 1; } pixelmap.writePixels(area).then(() => { console.info('Succeeded to write pixelmap into the specified area.'); }) }).catch((error : BusinessError) => { console.log('error: ' + error); }) ``` ### writePixels7+ writePixels(area: PositionArea, callback: AsyncCallback\): void 将PixelMap写入指定区域内,使用callback形式返回写入结果。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | --------- | ------------------------------ | ---- | ------------------------------ | | area | [PositionArea](#positionarea7) | 是 | 区域,根据区域写入。 | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' const area : image.PositionArea = { pixels: new ArrayBuffer(8), offset: 0, stride: 8, region: { size: { height: 1, width: 2 }, x: 0, y: 0 } } let bufferArr : Uint8Array = new Uint8Array(area.pixels); for (let i = 0; i < bufferArr.length; i++) { bufferArr[i] = i + 1; } pixelmap.writePixels(area, (error : BusinessError) => { if (error != undefined) { console.info('Failed to write pixelmap into the specified area.'); } else { console.info('Succeeded to write pixelmap into the specified area.'); } }) ``` ### writeBufferToPixels7+ writeBufferToPixels(src: ArrayBuffer): Promise\ 读取缓冲区中的图片数据,结果写入PixelMap中,使用Promise形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ----------- | ---- | -------------- | | src | ArrayBuffer | 是 | 图像像素数据。 | **返回值:** | 类型 | 说明 | | -------------- | ----------------------------------------------- | | Promise\ | Promise实例,用于获取结果,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 let bufferArr : Uint8Array = new Uint8Array(color); for (let i = 0; i < bufferArr.length; i++) { bufferArr[i] = i + 1; } pixelmap.writeBufferToPixels(color).then(() => { console.log("Succeeded in writing data from a buffer to a PixelMap."); }).catch((error : BusinessError) => { console.error("Failed to write data from a buffer to a PixelMap."); }) ``` ### writeBufferToPixels7+ writeBufferToPixels(src: ArrayBuffer, callback: AsyncCallback\): void 读取缓冲区中的图片数据,结果写入PixelMap中,使用callback形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------------------ | | src | ArrayBuffer | 是 | 图像像素数据。 | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 let bufferArr : Uint8Array = new Uint8Array(color); for (let i = 0; i < bufferArr.length; i++) { bufferArr[i] = i + 1; } pixelmap.writeBufferToPixels(color, (err : BusinessError) => { if (err) { console.error("Failed to write data from a buffer to a PixelMap."); return; } else { console.log("Succeeded in writing data from a buffer to a PixelMap."); } }); ``` ### getImageInfo7+ getImageInfo(): Promise\ 获取图像像素信息,使用Promise形式返回获取的图像像素信息。 **系统能力:** SystemCapability.Multimedia.Image.Core **返回值:** | 类型 | 说明 | | --------------------------------- | ----------------------------------------------------------- | | Promise\<[ImageInfo](#imageinfo)> | Promise实例,用于异步获取图像像素信息,失败时返回错误信息。 | **示例:** ```ts const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 let opts : image.InitializationOptions = { editable: true, pixelFormat: 2, size: { height: 6, width: 8 } } image.createPixelMap(color, opts).then((pixelmap : image.PixelMap) => { if (pixelmap == undefined) { console.error("Failed to obtain the image pixel map information."); } pixelmap.getImageInfo().then((imageInfo : image.ImageInfo) => { if (imageInfo == undefined) { console.error("Failed to obtain the image pixel map information."); } if (imageInfo.size.height == 4 && imageInfo.size.width == 6) { console.log("Succeeded in obtaining the image pixel map information."); } }) }) ``` ### getImageInfo7+ getImageInfo(callback: AsyncCallback\): void 获取图像像素信息,使用callback形式返回获取的图像像素信息。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | --------------------------------------- | ---- | ------------------------------------------------------------ | | callback | AsyncCallback\<[ImageInfo](#imageinfo)> | 是 | 获取图像像素信息回调,异步返回图像像素信息,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } image.createPixelMap(color, opts, (err : BusinessError, pixelmap : image.PixelMap) => { if (pixelmap == undefined) { console.error("Failed to obtain the image pixel map information."); } pixelmap.getImageInfo((err : BusinessError, imageInfo : image.ImageInfo) => { if (imageInfo == undefined) { console.error("Failed to obtain the image pixel map information."); } if (imageInfo.size.height == 4 && imageInfo.size.width == 6) { console.log("Succeeded in obtaining the image pixel map information."); } }) }) ``` ### getBytesNumberPerRow7+ getBytesNumberPerRow(): number 获取图像像素每行字节数。 **系统能力:** SystemCapability.Multimedia.Image.Core **返回值:** | 类型 | 说明 | | ------ | -------------------- | | number | 图像像素的行字节数。 | **示例:** ```ts import {BusinessError} from '@ohos.base' const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 let bufferArr : Uint8Array = new Uint8Array(color); let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } image.createPixelMap(color, opts, (err : BusinessError, pixelmap : image.PixelMap) => { let rowCount : number = pixelmap.getBytesNumberPerRow(); }) ``` ### getPixelBytesNumber7+ getPixelBytesNumber(): number 获取图像像素的总字节数。 **系统能力:** SystemCapability.Multimedia.Image.Core **返回值:** | 类型 | 说明 | | ------ | -------------------- | | number | 图像像素的总字节数。 | **示例:** ```ts let pixelBytesNumber : number = pixelmap.getPixelBytesNumber(); ``` ### getDensity9+ getDensity():number 获取当前图像像素的密度。 **系统能力:** SystemCapability.Multimedia.Image.Core **返回值:** | 类型 | 说明 | | ------ | --------------- | | number | 图像像素的密度。| **示例:** ```ts let getDensity : number = pixelmap.getDensity(); ``` ### opacity9+ opacity(rate: number, callback: AsyncCallback\): void 通过设置透明比率来让PixelMap达到对应的透明效果,使用callback形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------------------ | | rate | number | 是 | 透明比率的值,取值范围:0-1。 | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' let rate = 0.5; pixelmap.opacity(rate, (err : BusinessError) => { if (err) { console.error("Failed to set opacity."); return; } else { console.log("Succeeded in setting opacity."); } }) ``` ### opacity9+ opacity(rate: number): Promise\ 通过设置透明比率来让PixelMap达到对应的透明效果,使用Promise形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | --------------------------- | | rate | number | 是 | 透明比率的值,取值范围:0-1。| **返回值:** | 类型 | 说明 | | -------------- | ----------------------------------------------- | | Promise\ | Promise实例,用于获取结果,失败时返回错误信息。 | **示例:** ```ts async function Demo() { await pixelmap.opacity(0.5); } ``` ### createAlphaPixelmap9+ createAlphaPixelmap(): Promise\ 根据Alpha通道的信息,来生成一个仅包含Alpha通道信息的pixelmap,可用于阴影效果,使用Promise形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **返回值:** | 类型 | 说明 | | -------------------------------- | --------------------------- | | Promise\<[PixelMap](#pixelmap7)> | Promise实例,返回pixelmap。 | **示例:** ```ts async function Demo() { await pixelmap.createAlphaPixelmap(); } ``` ### createAlphaPixelmap9+ createAlphaPixelmap(callback: AsyncCallback\): void 根据Alpha通道的信息,来生成一个仅包含Alpha通道信息的pixelmap,可用于阴影效果,使用callback形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------ | ---- | ------------------------ | | callback | AsyncCallback\ | 是 | 获取回调,异步返回结果。 | **示例:** ```ts import {BusinessError} from '@ohos.base' pixelmap.createAlphaPixelmap((err : BusinessError, alphaPixelMap : image.PixelMap) => { if (alphaPixelMap == undefined) { console.info('Failed to obtain new pixel map.'); } else { console.info('Succeed in obtaining new pixel map.'); } }) ``` ### scale9+ scale(x: number, y: number, callback: AsyncCallback\): void 根据输入的宽高对图片进行缩放,使用callback形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------------------- | | x | number | 是 | 宽度的缩放值,其值为输入的倍数。| | y | number | 是 | 高度的缩放值,其值为输入的倍数。| | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | **示例:** ```ts async function Demo() { await pixelmap.scale(2.0, 1.0); } ``` ### scale9+ scale(x: number, y: number): Promise\ 根据输入的宽高对图片进行缩放,使用Promise形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ------------------------------- | | x | number | 是 | 宽度的缩放值,其值为输入的倍数。| | y | number | 是 | 高度的缩放值,其值为输入的倍数。| **返回值:** | 类型 | 说明 | | -------------- | --------------------------- | | Promise\ | Promise实例,异步返回结果。 | **示例:** ```ts async function Demo() { await pixelmap.scale(2.0, 1.0); } ``` ### translate9+ translate(x: number, y: number, callback: AsyncCallback\): void 根据输入的坐标对图片进行位置变换,使用callback形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ----------------------------- | | x | number | 是 | 区域横坐标。 | | y | number | 是 | 区域纵坐标。 | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。| **示例:** ```ts async function Demo() { await pixelmap.translate(3.0, 1.0); } ``` ### translate9+ translate(x: number, y: number): Promise\ 根据输入的坐标对图片进行位置变换,使用Promise形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ----------- | | x | number | 是 | 区域横坐标。| | y | number | 是 | 区域纵坐标。| **返回值:** | 类型 | 说明 | | -------------- | --------------------------- | | Promise\ | Promise实例,异步返回结果。 | **示例:** ```ts async function Demo() { await pixelmap.translate(3.0, 1.0); } ``` ### rotate9+ rotate(angle: number, callback: AsyncCallback\): void 根据输入的角度对图片进行旋转,使用callback形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ----------------------------- | | angle | number | 是 | 图片旋转的角度。 | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。| **示例:** ```ts import {BusinessError} from '@ohos.base' let angle = 90.0; pixelmap.rotate(angle, (err : BusinessError) => { if (err) { console.error("Failed to set rotation."); return; } else { console.log("Succeeded in setting rotation."); } }) ``` ### rotate9+ rotate(angle: number): Promise\ 根据输入的角度对图片进行旋转,使用Promise形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ----------------------------- | | angle | number | 是 | 图片旋转的角度。 | **返回值:** | 类型 | 说明 | | -------------- | --------------------------- | | Promise\ | Promise实例,异步返回结果。 | **示例:** ```ts async function Demo() { await pixelmap.rotate(90.0); } ``` ### flip9+ flip(horizontal: boolean, vertical: boolean, callback: AsyncCallback\): void 根据输入的条件对图片进行翻转,使用callback形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | -------------------- | ---- | ----------------------------- | | horizontal | boolean | 是 | 水平翻转。 | | vertical | boolean | 是 | 垂直翻转。 | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。| **示例:** ```ts async function Demo() { await pixelmap.flip(false, true); } ``` ### flip9+ flip(horizontal: boolean, vertical: boolean): Promise\ 根据输入的条件对图片进行翻转,使用Promise形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ------- | ---- | --------- | | horizontal | boolean | 是 | 水平翻转。| | vertical | boolean | 是 | 垂直翻转。| **返回值:** | 类型 | 说明 | | -------------- | --------------------------- | | Promise\ | Promise实例,异步返回结果。 | **示例:** ```ts async function Demo() { await pixelmap.flip(false, true); } ``` ### crop9+ crop(region: Region, callback: AsyncCallback\): void 根据输入的尺寸对图片进行裁剪,使用callback形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ----------------------------- | | region | [Region](#region7) | 是 | 裁剪的尺寸。 | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。| **示例:** ```ts async function Demo() { await pixelmap.crop({ x: 0, y: 0, size: { height: 100, width: 100 } }); } ``` ### crop9+ crop(region: Region): Promise\ 根据输入的尺寸对图片进行裁剪,使用Promise形式返回。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------------------ | ---- | ----------- | | region | [Region](#region7) | 是 | 裁剪的尺寸。| **返回值:** | 类型 | 说明 | | -------------- | --------------------------- | | Promise\ | Promise实例,异步返回结果。 | **示例:** ```ts async function Demo() { await pixelmap.crop({ x: 0, y: 0, size: { height: 100, width: 100 } }); } ``` ### getColorSpace10+ getColorSpace(): colorSpaceManager.ColorSpaceManager 获取图像广色域信息。 **系统能力:** SystemCapability.Multimedia.Image.Core **返回值:** | 类型 | 说明 | | ----------------------------------- | ---------------- | | [colorSpaceManager.ColorSpaceManager](js-apis-colorSpaceManager.md#colorspacemanager) | 图像广色域信息。 | **错误码:** 以下错误码的详细介绍请参见[Image错误码](../errorcodes/errorcode-image.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 62980101| If the image data abnormal | | 62980103| If the image data unsupport | | 62980115| If the image parameter invalid | **示例:** ```ts import colorSpaceManager from '@ohos.graphics.colorSpaceManager'; async function Demo() { let csm : Object = pixelmap.getColorSpace(); } ``` ### setColorSpace10+ setColorSpace(colorSpace: colorSpaceManager.ColorSpaceManager): void 设置图像广色域信息。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | --------------- | | colorSpace | [colorSpaceManager.ColorSpaceManager](js-apis-colorSpaceManager.md#colorspacemanager) | 是 | 图像广色域信息。| **错误码:** 以下错误码的详细介绍请参见[Image错误码](../errorcodes/errorcode-image.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 62980111| If the operation invalid | | 62980115| If the image parameter invalid | **示例:** ```ts import colorSpaceManager from '@ohos.graphics.colorSpaceManager'; async function Demo() { let colorSpaceName = colorSpaceManager.ColorSpace.SRGB; let csm : colorSpaceManager.ColorSpaceManager = colorSpaceManager.create(colorSpaceName); pixelmap.setColorSpace(csm); } ``` ### marshalling10+ marshalling(sequence: rpc.MessageSequence): void 将PixelMap序列化后写入MessageSequence。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------------------- | ------------------------------------------------------ | ---- | ---------------------------------------- | | sequence | [rpc.MessageSequence](js-apis-rpc.md#messagesequence9) | 是 | 新创建的MessageSequence。 | **错误码:** 以下错误码的详细介绍请参见[Image错误码](../errorcodes/errorcode-image.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 62980115 | If the input parameter invalid | | 62980097 | If the ipc error | **示例:** ```ts import image from '@ohos.multimedia.image' import rpc from '@ohos.rpc' class MySequence { pixel_map; constructor(pixelmap : image.PixelMap) { this.pixel_map = pixelmap; } marshalling(messageSequence : rpc.MessageSequence) { this.pixel_map.marshalling(messageSequence); return true; } async unmarshalling(messageSequence : rpc.MessageSequence) { let pixelParcel : image.PixelMap = await image.createPixelMap(new ArrayBuffer(96), {size: { height:4, width: 6}}); await pixelParcel.unmarshalling(messageSequence).then(async (pixelMap : image.PixelMap) => { this.pixel_map = pixelMap; }) return true; } } async function Demo() { let parcelable : MySequence = new MySequence(pixelmap); let data : rpc.MessageSequence = rpc.MessageSequence.create(); data.writeParcelable(parcelable); } ``` ### unmarshalling10+ unmarshalling(sequence: rpc.MessageSequence): Promise\ 从MessageSequence中获取PixelMap。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------------------- | ----------------------------------------------------- | ---- | ---------------------------------------- | | sequence | [rpc.MessageSequence](js-apis-rpc.md#messagesequence9) | 是 | 保存有PixelMap信息的MessageSequence。 | **返回值:** | 类型 | 说明 | | -------------------------------- | --------------------- | | Promise\<[PixelMap](#pixelmap7)> | 异步返回Promise对象。 | **错误码:** 以下错误码的详细介绍请参见[Image错误码](../errorcodes/errorcode-image.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 62980115 | If the input parameter invalid | | 62980097 | If the ipc error | | 62980096 | If fail to create async work | **示例:** ```ts import image from '@ohos.multimedia.image' import rpc from '@ohos.rpc' class MySequence { pixel_map; constructor(pixelmap : image.PixelMap) { this.pixel_map = pixelmap; } marshalling(messageSequence : rpc.MessageSequence) { this.pixel_map.marshalling(messageSequence); return true; } async unmarshalling(messageSequence : rpc.MessageSequence) { let pixelParcel : image.PixelMap = await image.createPixelMap(new ArrayBuffer(96), {size: { height:4, width: 6}}); await pixelParcel.unmarshalling(messageSequence).then(async (pixelMap : image.PixelMap) => { this.pixel_map = pixelMap; }) return true; } } async function Demo() { let pixel_map = undefined; let ret : MySequence = new MySequence(pixel_map); let data : rpc.MessageSequence = rpc.MessageSequence.create(); await data.readParcelable(ret); } ``` ### release7+ release():Promise\ 释放PixelMap对象,使用Promise形式返回释放结果。 **系统能力:** SystemCapability.Multimedia.Image.Core **返回值:** | 类型 | 说明 | | -------------- | ------------------------------- | | Promise\ | Promise实例,异步返回释放结果。 | **示例:** ```ts import {BusinessError} from '@ohos.base' pixelmap.release().then(() => { console.log('Succeeded in releasing pixelmap object.'); }).catch((error : BusinessError) => { console.log('Failed to release pixelmap object.'); }) ``` ### release7+ release(callback: AsyncCallback\): void 释放PixelMap对象,使用callback形式返回释放结果。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------ | | callback | AsyncCallback\ | 是 | 异步返回释放结果。 | **示例:** ```ts pixelmap.release(() => { console.log('Succeeded in releasing pixelmap object.'); }) ``` ## image.createImageSource createImageSource(uri: string): ImageSource 通过传入的uri创建图片源实例。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ---------------------------------- | | uri | string | 是 | 图片路径,当前仅支持应用沙箱路径。
当前支持格式有:.jpg .png .gif .bmp .webp RAW [SVG10+](#svg标签说明)。 | **返回值:** | 类型 | 说明 | | --------------------------- | -------------------------------------------- | | [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | **示例:** ```ts //Stage模型 const context : Context = getContext(this); const path : string = context.cacheDir + "/test.jpg"; const imageSourceApi : image.ImageSource = image.createImageSource(path); ``` ```ts //FA模型 import featureAbility from '@ohos.ability.featureAbility'; const context : Context = featureAbility.getContext(); const path : string = context.getCacheDir() + "/test.jpg"; const imageSourceApi : image.ImageSource = image.createImageSource(path); ``` ## image.createImageSource9+ createImageSource(uri: string, options: SourceOptions): ImageSource 通过传入的uri创建图片源实例。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------- | ------------------------------- | ---- | ----------------------------------- | | uri | string | 是 | 图片路径,当前仅支持应用沙箱路径。
当前支持格式有:.jpg .png .gif .bmp .webp RAW [SVG10+](#svg标签说明)。 | | options | [SourceOptions](#sourceoptions9) | 是 | 图片属性,包括图片序号与默认属性值。| **返回值:** | 类型 | 说明 | | --------------------------- | -------------------------------------------- | | [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | **示例:** ```ts let sourceOptions : image.SourceOptions = { sourceDensity: 120 }; let imageSource : image.ImageSource = image.createImageSource('test.png', sourceOptions); ``` ## image.createImageSource7+ createImageSource(fd: number): ImageSource 通过传入文件描述符来创建图片源实例。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ------------- | | fd | number | 是 | 文件描述符fd。| **返回值:** | 类型 | 说明 | | --------------------------- | -------------------------------------------- | | [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | **示例:** ```ts const imageSourceApi : image.ImageSource = image.createImageSource(0); ``` ## image.createImageSource9+ createImageSource(fd: number, options: SourceOptions): ImageSource 通过传入文件描述符来创建图片源实例。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------- | ------------------------------- | ---- | ----------------------------------- | | fd | number | 是 | 文件描述符fd。 | | options | [SourceOptions](#sourceoptions9) | 是 | 图片属性,包括图片序号与默认属性值。| **返回值:** | 类型 | 说明 | | --------------------------- | -------------------------------------------- | | [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | **示例:** ```ts let sourceOptions : image.SourceOptions = { sourceDensity: 120 }; const imageSourceApi : image.ImageSource = image.createImageSource(0, sourceOptions); ``` ## image.createImageSource9+ createImageSource(buf: ArrayBuffer): ImageSource 通过缓冲区创建图片源实例。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ----------- | ---- | ---------------- | | buf | ArrayBuffer | 是 | 图像缓冲区数组。 | **示例:** ```ts const buf : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 const imageSourceApi : image.ImageSource = image.createImageSource(buf); ``` ## image.createImageSource9+ createImageSource(buf: ArrayBuffer, options: SourceOptions): ImageSource 通过缓冲区创建图片源实例。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | -------------------------------- | ---- | ------------------------------------ | | buf | ArrayBuffer | 是 | 图像缓冲区数组。 | | options | [SourceOptions](#sourceoptions9) | 是 | 图片属性,包括图片序号与默认属性值。 | **返回值:** | 类型 | 说明 | | --------------------------- | -------------------------------------------- | | [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | **示例:** ```ts const data : ArrayBuffer= new ArrayBuffer(112); const imageSourceApi : image.ImageSource = image.createImageSource(data); ``` ## image.CreateIncrementalSource9+ CreateIncrementalSource(buf: ArrayBuffer): ImageSource 通过缓冲区以增量的方式创建图片源实例。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------- | ------------| ---- | ----------| | buf | ArrayBuffer | 是 | 增量数据。| **返回值:** | 类型 | 说明 | | --------------------------- | --------------------------------- | | [ImageSource](#imagesource) | 返回图片源,失败时返回undefined。 | **示例:** ```ts const buf : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 const imageSourceIncrementalSApi : image.ImageSource = image.CreateIncrementalSource(buf); ``` ## image.CreateIncrementalSource9+ CreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): ImageSource 通过缓冲区以增量的方式创建图片源实例。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------- | ------------------------------- | ---- | ------------------------------------ | | buf | ArrayBuffer | 是 | 增量数据。 | | options | [SourceOptions](#sourceoptions9) | 否 | 图片属性,包括图片序号与默认属性值。 | **返回值:** | 类型 | 说明 | | --------------------------- | --------------------------------- | | [ImageSource](#imagesource) | 返回图片源,失败时返回undefined。 | **示例:** ```ts const buf : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 const imageSourceIncrementalSApi : image.ImageSource = image.CreateIncrementalSource(buf); ``` ## ImageSource 图片源类,用于获取图片相关信息。在调用ImageSource的方法前,需要先通过createImageSource构建一个ImageSource实例。 ### 属性 **系统能力:** SystemCapability.Multimedia.Image.ImageSource | 名称 | 类型 | 可读 | 可写 | 说明 | | ---------------- | -------------- | ---- | ---- | ------------------------------------------------------------ | | supportedFormats | Array\ | 是 | 否 | 支持的图片格式,包括:png,jpeg,bmp,gif,webp,RAW。 | ### getImageInfo getImageInfo(index: number, callback: AsyncCallback\): void 获取指定序号的图片信息,使用callback形式返回图片信息。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------------- | ---- | ---------------------------------------- | | index | number | 是 | 创建图片源时的序号。 | | callback | AsyncCallback<[ImageInfo](#imageinfo)> | 是 | 获取图片信息回调,异步返回图片信息对象。 | **示例:** ```ts import {BusinessError} from '@ohos.base' imageSourceApi.getImageInfo(0,(error : BusinessError, imageInfo : image.ImageInfo) => { if(error) { console.log('getImageInfo failed.'); } else { console.log('getImageInfo succeeded.'); } }) ``` ### getImageInfo getImageInfo(callback: AsyncCallback\): void 获取图片信息,使用callback形式返回图片信息。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------------- | ---- | ---------------------------------------- | | callback | AsyncCallback<[ImageInfo](#imageinfo)> | 是 | 获取图片信息回调,异步返回图片信息对象。 | **示例:** ```ts imageSourceApi.getImageInfo((imageInfo : image.ImageInfo) => { console.log('Succeeded in obtaining the image information.'); }) ``` ### getImageInfo getImageInfo(index?: number): Promise\ 获取图片信息,使用Promise形式返回图片信息。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名| 类型 | 必填 | 说明 | | ----- | ------ | ---- | ------------------------------------- | | index | number | 否 | 创建图片源时的序号,不选择时默认为0。 | **返回值:** | 类型 | 说明 | | -------------------------------- | ---------------------- | | Promise<[ImageInfo](#imageinfo)> | 返回获取到的图片信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' imageSourceApi.getImageInfo(0) .then((imageInfo : image.ImageInfo) => { console.log('Succeeded in obtaining the image information.'); }).catch((error : BusinessError) => { console.log('Failed to obtain the image information.'); }) ``` ### getImageProperty7+ getImageProperty(key:string, options?: GetImagePropertyOptions): Promise\ 获取图片中给定索引处图像的指定属性键的值,用Promise形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------- | ---------------------------------------------------- | ---- | ------------------------------------ | | key | string | 是 | 图片属性名。 | | options | [GetImagePropertyOptions](#getimagepropertyoptions7) | 否 | 图片属性,包括图片序号与默认属性值。 | **返回值:** | 类型 | 说明 | | ---------------- | ----------------------------------------------------------------- | | Promise\ | Promise实例,用于异步获取图片属性值,如获取失败则返回属性默认值。 | **示例:** ```ts imageSourceApi.getImageProperty("BitsPerSample") .then((data : string) => { console.log('Succeeded in getting the value of the specified attribute key of the image.'); }) ``` ### getImageProperty7+ getImageProperty(key:string, callback: AsyncCallback\): void 获取图片中给定索引处图像的指定属性键的值,用callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------- | ---- | ------------------------------------------------------------ | | key | string | 是 | 图片属性名。 | | callback | AsyncCallback\ | 是 | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 | **示例:** ```ts import {BusinessError} from '@ohos.base' imageSourceApi.getImageProperty("BitsPerSample",(error : BusinessError, data : string) => { if(error) { console.log('Failed to get the value of the specified attribute key of the image.'); } else { console.log('Succeeded in getting the value of the specified attribute key of the image.'); } }) ``` ### getImageProperty7+ getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCallback\): void 获取图片指定属性键的值,callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------- | | key | string | 是 | 图片属性名。 | | options | [GetImagePropertyOptions](#getimagepropertyoptions7) | 是 | 图片属性,包括图片序号与默认属性值。 | | callback | AsyncCallback\ | 是 | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。| **示例:** ```ts import {BusinessError} from '@ohos.base' let property : image.GetImagePropertyOptions = { index: 0, defaultValue: '9999' } imageSourceApi.getImageProperty("BitsPerSample",property,(error : BusinessError, data : string) => { if(error) { console.log('Failed to get the value of the specified attribute key of the image.'); } else { console.log('Succeeded in getting the value of the specified attribute key of the image.'); } }) ``` ### modifyImageProperty9+ modifyImageProperty(key: string, value: string): Promise\ 通过指定的键修改图片属性的值,使用Promise形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------- | ------ | ---- | ------------ | | key | string | 是 | 图片属性名。 | | value | string | 是 | 属性值。 | **返回值:** | 类型 | 说明 | | -------------- | --------------------------- | | Promise\ | Promise实例,异步返回结果。 | **示例:** ```ts imageSourceApi.modifyImageProperty("ImageWidth", "120").then(() => { const w : string = imageSourceApi.getImageProperty("ImageWidth"); console.info('w', w); }) ``` ### modifyImageProperty9+ modifyImageProperty(key: string, value: string, callback: AsyncCallback\): void 通过指定的键修改图片属性的值,callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------- | ---- | ------------------------------ | | key | string | 是 | 图片属性名。 | | value | string | 是 | 属性值。 | | callback | AsyncCallback\ | 是 | 修改属性值,callback返回结果。 | **示例:** ```ts imageSourceApi.modifyImageProperty("ImageWidth", "120",() => {}) ``` ### updateData9+ updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number): Promise\ 更新增量数据,使用Promise形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------- | ---- | ------------ | | buf | ArrayBuffer | 是 | 增量数据。 | | isFinished | boolean | 是 | 是否更新完。 | | value | number | 是 | 偏移量。 | | length | number | 是 | 数组长。 | **返回值:** | 类型 | 说明 | | -------------- | -------------------------- | | Promise\ | Promise实例,异步返回结果。| **示例:** ```ts const array : ArrayBuffer = new ArrayBuffer(100); imageSourceApi.updateData(array, false, 0, 10).then(data => { console.info('Succeeded in updating data.'); }) ``` ### updateData9+ updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number, callback: AsyncCallback\): void 更新增量数据,callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ------------------- | ---- | -------------------- | | buf | ArrayBuffer | 是 | 增量数据。 | | isFinished | boolean | 是 | 是否更新完。 | | value | number | 是 | 偏移量。 | | length | number | 是 | 数组长。 | | callback | AsyncCallback\ | 是 | 回调表示成功或失败。 | **示例:** ```ts const array : ArrayBuffer = new ArrayBuffer(100); imageSourceApi.updateData(array, false, 0, 10,(error,data )=> { if(data !== undefined){ console.info('Succeeded in updating data.'); } }) ``` ### createPixelMap7+ createPixelMap(options?: DecodingOptions): Promise\ 通过图片解码参数创建PixelMap对象。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------- | ------------------------------------ | ---- | ---------- | | options | [DecodingOptions](#decodingoptions7) | 否 | 解码参数。 | **返回值:** | 类型 | 说明 | | -------------------------------- | --------------------- | | Promise\<[PixelMap](#pixelmap7)> | 异步返回Promise对象。 | **示例:** ```ts import {BusinessError} from '@ohos.base' imageSourceApi.createPixelMap().then((pixelmap : image.PixelMap) => { console.log('Succeeded in creating pixelmap object through image decoding parameters.'); }).catch((error : BusinessError) => { console.log('Failed to create pixelmap object through image decoding parameters.'); }) ``` ### createPixelMap7+ createPixelMap(callback: AsyncCallback\): void 通过默认参数创建PixelMap对象,使用callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------- | ---- | -------------------------- | | callback | AsyncCallback<[PixelMap](#pixelmap7)> | 是 | 通过回调返回PixelMap对象。 | **示例:** ```ts import {BusinessError} from '@ohos.base' imageSourceApi.createPixelMap((err : BusinessError, pixelmap : image.PixelMap) => { console.info('Succeeded in creating pixelmap object.'); }) ``` ### createPixelMap7+ createPixelMap(options: DecodingOptions, callback: AsyncCallback\): void 通过图片解码参数创建PixelMap对象。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------- | ---- | -------------------------- | | options | [DecodingOptions](#decodingoptions7) | 是 | 解码参数。 | | callback | AsyncCallback<[PixelMap](#pixelmap7)> | 是 | 通过回调返回PixelMap对象。 | **示例:** ```ts let decodingOptions : image.DecodingOptions = { sampleSize: 1, editable: true, desiredSize: { width: 1, height: 2 }, rotate: 10, desiredPixelFormat: 3, desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 }, index: 0 }; imageSourceApi.createPixelMap(decodingOptions, (pixelmap : image.PixelMap) => { console.log('Succeeded in creating pixelmap object.'); }) ``` ### createPixelMapList10+ createPixelMapList(options?: DecodingOptions): Promise>; 通过图片解码参数创建PixelMap数组。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------- | ---- | -------------------------- | | options | [DecodingOptions](#decodingoptions7) | 否 | 解码参数。 | **返回值:** | 类型 | 说明 | | -------------------------------- | --------------------- | | Promise> | 异步返回PixeMap数组。 | **错误码:** 以下错误码的详细介绍请参见[Image错误码](../errorcodes/errorcode-image.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 62980096| If the operation failed | | 62980103| If the image data unsupport | | 62980110| If the image source data error | | 62980111| If the image source data incomplete | | 62980118| If the image plugin create failed | **示例:** ```ts let decodeOpts : image.DecodingOptions = { sampleSize: 1, editable: true, desiredSize: { width: 198, height: 202 }, rotate: 0, desiredPixelFormat: 3, index: 0, }; let pixelmaplist : Array = imageSourceApi.createPixelMapList(decodeOpts); ``` ### createPixelMapList10+ createPixelMapList(callback: AsyncCallback>): void 通过默认参数创建PixelMap数组,使用callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------- | ---- | -------------------------- | | callback | AsyncCallback> | 是 | 通过回调返回PixelMap数组。 | **错误码:** 以下错误码的详细介绍请参见[Image错误码](../errorcodes/errorcode-image.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 62980096| If the operation failed | | 62980103| If the image data unsupport | | 62980110| If the image source data error | | 62980111| If the image source data incomplete | | 62980118| If the image plugin create failed | **示例:** ```ts imageSourceApi.createPixelMapList( (pixelmaplist : Array) => { console.info('Succeeded in creating pixelmaplist object.'); }) ``` ### createPixelMapList10+ createPixelMapList(options: DecodingOptions, callback: AsyncCallback>): void; 通过图片解码参数创建PixelMap数组,使用callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ---------------------------------- | | options | [DecodingOptions](#decodingoptions7) | 是 | 解码参数。 | | callback | AsyncCallback> | 是 | 通过回调返回PixelMap数组。 | **错误码:** 以下错误码的详细介绍请参见[Image错误码](../errorcodes/errorcode-image.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 62980096| If the operation failed | | 62980103| If the image data unsupport | | 62980110| If the image source data error | | 62980111| If the image source data incomplete | | 62980118| If the image plugin create failed | **示例:** ```ts let decodeOpts : image.DecodingOptions = { sampleSize: 1, editable: true, desiredSize: { width: 198, height: 202 }, rotate: 0, desiredPixelFormat: 3, index: 0, }; imageSourceApi.createPixelMapList(decodeOpts, (pixelmaplist : Array) => { console.log('Succeeded in creating pixelmaplist object.'); }) ``` ### getDelayTimeList10+ getDelayTimeList(callback: AsyncCallback>): void; 获取图像延迟时间数组,使用callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ---------------------------------- | | callback | AsyncCallback> | 是 | 通过回调返回延迟时间数组。 | **错误码:** 以下错误码的详细介绍请参见[Image错误码](../errorcodes/errorcode-image.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 62980096| If the operation failed | | 62980110| If the image source data error | | 62980111| If the image source data incomplete | | 62980113| If the image format unknown | | 62980116| If the image decode failed | | 62980118| If the image plugin create failed | | 62980122| If the image decode head abnormal | **示例:** ```ts imageSourceApi.getDelayTimeList( (delayTimes : Array) => { console.log('Succeeded in getting delay time.'); }); ``` ### getDelayTimeList10+ getDelayTimeList(): Promise>; 获取图像延迟时间数组,使用Promise形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **返回值:** | 类型 | 说明 | | -------------- | --------------------------- | | Promise> | Promise实例,异步返回延迟时间数组。 | **错误码:** 以下错误码的详细介绍请参见[Image错误码](../errorcodes/errorcode-image.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 62980096| If the operation failed | | 62980110| If the image source data error | | 62980111| If the image source data incomplete | | 62980113| If the image format unknown | | 62980116| If the image decode failed | | 62980118| If the image plugin create failed | | 62980122| If the image decode head abnormal | **示例:** ```ts let delayTimes : Array = imageSourceApi.getDelayTimeList(); ``` ### getFrameCount10+ getFrameCount(callback: AsyncCallback\): void; 获取图像帧数,使用callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ---------------------------------- | | callback | AsyncCallback\ | 是 | 通过回调返回图像帧数。 | **错误码:** 以下错误码的详细介绍请参见[Image错误码](../errorcodes/errorcode-image.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 62980096| If the operation failed | | 62980110| If the image source data error | | 62980111| If the image source data incomplete | | 62980113| If the image format unknown | | 62980116| If the image decode failed | | 62980118| If the image plugin create failed | | 62980122| If the image decode head abnormal | **示例:** ```ts imageSourceApi.getFrameCount( (frameCount : number) => { console.log('Succeeded in getting frame count.'); }); ``` ### getFrameCount10+ getFrameCount(): Promise\; 获取图像帧数,使用Promise形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **返回值:** | 类型 | 说明 | | -------------- | --------------------------- | | Promise\ | Promise实例,异步返回图像帧数。 | **错误码:** 以下错误码的详细介绍请参见[Image错误码](../errorcodes/errorcode-image.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 62980096| If the operation failed | | 62980110| If the image source data error | | 62980111| If the image source data incomplete | | 62980113| If the image format unknown | | 62980116| If the image decode failed | | 62980118| If the image plugin create failed | | 62980122| If the image decode head abnormal | **示例:** ```ts let frameCount : number = imageSourceApi.getFrameCount(); ``` ### release release(callback: AsyncCallback\): void 释放图片源实例,使用callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ---------------------------------- | | callback | AsyncCallback\ | 是 | 资源释放回调,失败时返回错误信息。 | **示例:** ```ts imageSourceApi.release(() => { console.log('release succeeded.'); }) ``` ### release release(): Promise\ 释放图片源实例,使用Promise形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource **返回值:** | 类型 | 说明 | | -------------- | --------------------------- | | Promise\ | Promise实例,异步返回结果。 | **示例:** ```ts import {BusinessError} from '@ohos.base' imageSourceApi.release().then(()=>{ console.log('Succeeded in releasing the image source instance.'); }).catch((error : BusinessError) => { console.log('Failed to release the image source instance.'); }) ``` ## image.createImagePacker createImagePacker(): ImagePacker 创建ImagePacker实例。 **系统能力:** SystemCapability.Multimedia.Image.ImagePacker **返回值:** | 类型 | 说明 | | --------------------------- | --------------------- | | [ImagePacker](#imagepacker) | 返回ImagePacker实例。 | **示例:** ```ts const imagePackerApi : image.ImagePacker = image.createImagePacker(); ``` ## ImagePacker 图片打包器类,用于图片压缩和打包。在调用ImagePacker的方法前,需要先通过createImagePacker构建一个ImagePacker实例,当前支持格式有:jpeg webp。 ### 属性 **系统能力:** SystemCapability.Multimedia.Image.ImagePacker | 名称 | 类型 | 可读 | 可写 | 说明 | | ---------------- | -------------- | ---- | ---- | -------------------------- | | supportedFormats | Array\ | 是 | 否 | 图片打包支持的格式,jpeg。 | ### packing packing(source: ImageSource, option: PackingOption, callback: AsyncCallback\): void 图片压缩或重新打包,使用callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImagePacker **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------------------- | ---- | ---------------------------------- | | source | [ImageSource](#imagesource) | 是 | 打包的图片源。 | | option | [PackingOption](#packingoption) | 是 | 设置打包参数。 | | callback | AsyncCallback\ | 是 | 获取图片打包回调,返回打包后数据。 | **示例:** ```ts const imageSourceApi : image.ImageSource = image.createImageSource(0); let packOpts : image.PackingOption = { format:"image/jpeg", quality:98 }; imagePackerApi.packing(imageSourceApi, packOpts, data : ArrayBuffer => {}) ``` ### packing packing(source: ImageSource, option: PackingOption): Promise\ 图片压缩或重新打包,使用Promise形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImagePacker **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------------------------------- | ---- | -------------- | | source | [ImageSource](#imagesource) | 是 | 打包的图片源。 | | option | [PackingOption](#packingoption) | 是 | 设置打包参数。 | **返回值:** | 类型 | 说明 | | ---------------------------- | --------------------------------------------- | | Promise\ | Promise实例,用于异步获取压缩或打包后的数据。 | **示例:** ```ts import {BusinessError} from '@ohos.base' const imageSourceApi : image.ImageSource = image.createImageSource(0); let packOpts : image.PackingOption = { format:"image/jpeg", quality:98 } imagePackerApi.packing(imageSourceApi, packOpts) .then( (data : ArrayBuffer) => { console.log('packing succeeded.'); }).catch((error : BusinessError) => { console.log('packing failed.'); }) ``` ### packing8+ packing(source: PixelMap, option: PackingOption, callback: AsyncCallback\): void 图片压缩或重新打包,使用callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImagePacker **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------- | ---- | ---------------------------------- | | source | [PixelMap](#pixelmap) | 是 | 打包的PixelMap资源。 | | option | [PackingOption](#packingoption) | 是 | 设置打包参数。 | | callback | AsyncCallback\ | 是 | 获取图片打包回调,返回打包后数据。 | **示例:** ```ts const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 let bufferArr : Uint8Array = new Uint8Array(color); let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } image.createPixelMap(color, opts).then((pixelmap : image.PixelMap) => { let packOpts : image.PackingOption = { format:"image/jpeg", quality:98 } imagePackerApi.packing(pixelmap, packOpts, (data : ArrayBuffer) => { console.log('Succeeded in packing the image.'); }) }) ``` ### packing8+ packing(source: PixelMap, option: PackingOption): Promise\ 图片压缩或重新打包,使用Promise形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImagePacker **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------------------------------- | ---- | ------------------ | | source | [PixelMap](#pixelmap) | 是 | 打包的PixelMap源。 | | option | [PackingOption](#packingoption) | 是 | 设置打包参数。 | **返回值:** | 类型 | 说明 | | --------------------- | -------------------------------------------- | | Promise\ | Promise实例,用于异步获取压缩或打包后的数据。| **示例:** ```ts import {BusinessError} from '@ohos.base' const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 let bufferArr : Uint8Array = new Uint8Array(color); let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } image.createPixelMap(color, opts).then((pixelmap : image.PixelMap) => { let packOpts : image.PackingOption = { format:"image/jpeg", quality:98 } imagePackerApi.packing(pixelmap, packOpts) .then( (data : ArrayBuffer) => { console.log('Succeeded in packing the image.'); }).catch((error : BusinessError) => { console.log('Failed to pack the image..'); }) }) ``` ### release release(callback: AsyncCallback\): void 释放图片打包实例,使用callback形式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImagePacker **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------------------ | | callback | AsyncCallback\ | 是 | 释放回调,失败时返回错误信息。 | **示例:** ```ts imagePackerApi.release(()=>{ console.log('Succeeded in releasing image packaging.'); }) ``` ### release release(): Promise\ 释放图片打包实例,使用Promise形式返回释放结果。 **系统能力:** SystemCapability.Multimedia.Image.ImagePacker **返回值:** | 类型 | 说明 | | -------------- | ------------------------------------------------------ | | Promise\ | Promise实例,用于异步获取释放结果,失败时返回错误信息。| **示例:** ```ts import {BusinessError} from '@ohos.base' imagePackerApi.release().then(()=>{ console.log('Succeeded in releasing image packaging.'); }).catch((error : BusinessError)=>{ console.log('Failed to release image packaging.'); }) ``` ## image.createImageReceiver9+ createImageReceiver(width: number, height: number, format: number, capacity: number): ImageReceiver 通过宽、高、图片格式、容量创建ImageReceiver实例。 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------ | ---- | ---------------------- | | width | number | 是 | 图像的默认宽度。 | | height | number | 是 | 图像的默认高度。 | | format | number | 是 | 图像格式,取值为[ImageFormat](#imageformat9)常量(目前仅支持 ImageFormat:JPEG 和 4)。 | | capacity | number | 是 | 同时访问的最大图像数。 | **返回值:** | 类型 | 说明 | | -------------------------------- | --------------------------------------- | | [ImageReceiver](#imagereceiver9) | 如果操作成功,则返回ImageReceiver实例。 | **示例:** ```ts let receiver : image.ImageReceiver = image.createImageReceiver(8192, 8, 2000, 8); ``` ## ImageReceiver9+ 图像接收类,用于获取组件surface id,接收最新的图片和读取下一张图片,以及释放ImageReceiver实例。 在调用以下方法前需要先创建ImageReceiver实例。 ### 属性 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver | 名称 | 类型 | 可读 | 可写 | 说明 | | -------- | ---------------------------- | ---- | ---- | ------------------ | | size | [Size](#size) | 是 | 否 | 图片大小。 | | capacity | number | 是 | 否 | 同时访问的图像数。 | | format | [ImageFormat](#imageformat9) | 是 | 否 | 图像格式。 | ### getReceivingSurfaceId9+ getReceivingSurfaceId(callback: AsyncCallback\): void 用于获取一个surface id供Camera或其他组件使用。使用callback返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------- | ---- | -------------------------- | | callback | AsyncCallback\ | 是 | 回调函数,返回surface id。 | **示例:** ```ts import {BusinessError} from '@ohos.base' receiver.getReceivingSurfaceId((err : BusinessError, id : string) => { if(err) { console.log('getReceivingSurfaceId failed.'); } else { console.log('getReceivingSurfaceId succeeded.'); } }); ``` ### getReceivingSurfaceId9+ getReceivingSurfaceId(): Promise\ 用于获取一个surface id供Camera或其他组件使用。使用promise返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver **返回值:** | 类型 | 说明 | | ---------------- | -------------------- | | Promise\ | 异步返回surface id。 | **示例:** ```ts import {BusinessError} from '@ohos.base' receiver.getReceivingSurfaceId().then( (id : string) => { console.log('getReceivingSurfaceId succeeded.'); }).catch((error : BusinessError) => { console.log('getReceivingSurfaceId failed.'); }) ``` ### readLatestImage9+ readLatestImage(callback: AsyncCallback\): void 从ImageReceiver读取最新的图片,并使用callback返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------- | ---- | ------------------------ | | callback | AsyncCallback<[Image](#image9)> | 是 | 回调函数,返回最新图像。 | **示例:** ```ts import {BusinessError} from '@ohos.base' receiver.readLatestImage((err : BusinessError, img : image.Image) => { if(err) { console.log('readLatestImage failed.'); } else { console.log('readLatestImage succeeded.'); } }); ``` ### readLatestImage9+ readLatestImage(): Promise\ 从ImageReceiver读取最新的图片,并使用promise返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver **返回值:** | 类型 | 说明 | | ------------------------- | ------------------ | | Promise<[Image](#image9)> | 异步返回最新图片。 | **示例:** ```ts import {BusinessError} from '@ohos.base' receiver.readLatestImage().then((img : image.Image) => { console.log('readLatestImage succeeded.'); }).catch((error : BusinessError) => { console.log('readLatestImage failed.'); }) ``` ### readNextImage9+ readNextImage(callback: AsyncCallback\): void 从ImageReceiver读取下一张图片,并使用callback返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------- | ---- | -------------------------- | | callback | AsyncCallback<[Image](#image9)> | 是 | 回调函数,返回下一张图片。 | **示例:** ```ts import {BusinessError} from '@ohos.base' receiver.readNextImage((err : BusinessError, img : image.Image) => { if(err) { console.log('readNextImage failed.'); } else { console.log('readNextImage succeeded.'); } }); ``` ### readNextImage9+ readNextImage(): Promise\ 从ImageReceiver读取下一张图片,并使用promise返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver **返回值:** | 类型 | 说明 | | ------------------------- | -------------------- | | Promise<[Image](#image9)> | 异步返回下一张图片。 | **示例:** ```ts import {BusinessError} from '@ohos.base' receiver.readNextImage().then((img : image.Image) => { console.log('readNextImage succeeded.'); }).catch((error : BusinessError) => { console.log('readNextImage failed.'); }) ``` ### on9+ on(type: 'imageArrival', callback: AsyncCallback\): void 接收图片时注册回调。 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------------------------------------------ | | type | string | 是 | 注册事件的类型,固定为'imageArrival',接收图片时触发。 | | callback | AsyncCallback\ | 是 | 注册的事件回调。 | **示例:** ```ts receiver.on('imageArrival', () => {}) ``` ### release9+ release(callback: AsyncCallback\): void 释放ImageReceiver实例并使用回调返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------------ | | callback | AsyncCallback\ | 是 | 回调函数,返回操作结果。 | **示例:** ```ts receiver.release(() => {}) ``` ### release9+ release(): Promise\ 释放ImageReceiver实例并使用promise返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver **返回值:** | 类型 | 说明 | | -------------- | ------------------ | | Promise\ | 异步返回操作结果。 | **示例:** ```ts import {BusinessError} from '@ohos.base' receiver.release().then(() => { console.log('release succeeded.'); }).catch((error : BusinessError) => { console.log('release failed.'); }) ``` ## image.createImageCreator9+ createImageCreator(width: number, height: number, format: number, capacity: number): ImageCreator 通过宽、高、图片格式、容量创建ImageCreator实例。 **系统能力:** SystemCapability.Multimedia.Image.ImageCreator **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------ | ---- | ---------------------- | | width | number | 是 | 图像的默认宽度。 | | height | number | 是 | 图像的默认高度。 | | format | number | 是 | 图像格式,如YCBCR_422_SP,JPEG。 | | capacity | number | 是 | 同时访问的最大图像数。 | **返回值:** | 类型 | 说明 | | ------------------------------ | --------------------------------------- | | [ImageCreator](#imagecreator9) | 如果操作成功,则返回ImageCreator实例。 | **示例:** ```ts let creator : image.ImageCreator = image.createImageCreator(8192, 8, 4, 8); ``` ## ImageCreator9+ 图像创建模块,用于请求图像原生数据区域,并开放给应用编译原生图像数据的能力。 在调用以下方法前需要先创建ImageCreator实例,ImageCreator不支持多线程。 ### 属性 **系统能力:** SystemCapability.Multimedia.Image.ImageCreator | 名称 | 类型 | 可读 | 可写 | 说明 | | -------- | ---------------------------- | ---- | ---- | ------------------ | | capacity | number | 是 | 否 | 同时访问的图像数。 | | format | [ImageFormat](#imageformat9) | 是 | 否 | 图像格式。 | ### dequeueImage9+ dequeueImage(callback: AsyncCallback\): void 从空闲队列中获取buffer图片,用于绘制UI内容,并使用callback返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageCreator **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------------- | ---------------------------------------| ---- | -------------------- | | callback | AsyncCallback\ | 是 | 回调函数,返回最新图片。 | **示例:** ```ts import {BusinessError} from '@ohos.base' creator.dequeueImage((err : BusinessError, img : image.Image) => { if (err) { console.info('dequeueImage failed.'); } console.info('dequeueImage succeeded.'); }); ``` ### dequeueImage9+ dequeueImage(): Promise\ 从空闲队列中获取buffer图片,用于绘制UI内容,并使用promise返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageCreator **返回值:** | 类型 | 说明 | | --------------- | ------------- | | Promise\ | 返回绘制的图像。 | **示例:** ```ts import {BusinessError} from '@ohos.base' creator.dequeueImage().then((img : image.Image) => { console.info('dequeueImage succeeded.'); }).catch((error : BusinessError) => { console.log('dequeueImage failed: ' + error); }) ``` ### queueImage9+ queueImage(interface: Image, callback: AsyncCallback\): void 将绘制好的图片放入Dirty队列,并使用callback返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageCreator **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------------- | -------------------------| ---- | -------------------- | | interface | Image | 是 | 绘制好的buffer图像。 | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' creator.dequeueImage().then((img : image.Image) => { //绘制图片 img.getComponent(4).then( (component : image.Component) => { let bufferArr : Uint8Array = new Uint8Array(component.byteBuffer); for (let i = 0; i < bufferArr.length; i += 4) { bufferArr[i] = 0; //B bufferArr[i + 1] = 0; //G bufferArr[i + 2] = 255; //R bufferArr[i + 3] = 255; //A } }) creator.queueImage(img, (err : BusinessError) => { if (err) { console.info('queueImage failed: ' + err); } console.info('queueImage succeeded'); }) }) ``` ### queueImage9+ queueImage(interface: Image): Promise\ 将绘制好的图片放入Dirty队列,并使用promise返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageCreator **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------------- | --------| ---- | ------------------- | | interface | Image | 是 | 绘制好的buffer图像。 | **返回值:** | 类型 | 说明 | | -------------- | ------------- | | Promise\ | 获取回调,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' creator.dequeueImage().then((img : image.Image) => { //绘制图片 img.getComponent(4).then(component : image.Component => { let bufferArr : Uint8Array = new Uint8Array(component.byteBuffer); for (let i = 0; i < bufferArr.length; i += 4) { bufferArr[i] = 0; //B bufferArr[i + 1] = 0; //G bufferArr[i + 2] = 255; //R bufferArr[i + 3] = 255; //A } }) creator.queueImage(img).then(() => { console.info('queueImage succeeded.'); }).catch((error : BusinessError) => { console.info('queueImage failed: ' + error); }) }) ``` ### on9+ on(type: 'imageRelease', callback: AsyncCallback\): void 监听imageRelease事件,并使用callback返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageCreator **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------------- | -------------------------| ---- | -------------------- | | type | string | 是 | 监听事件类型,如'imageRelease'。 | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' creator.on('imageRelease', (err : BusinessError) => { if (err) { console.info('on faild' + err); } console.info('on succeeded'); }) ``` ### release9+ release(callback: AsyncCallback\): void 释放当前图像,并使用callback返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageCreator **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------------- | -------------------------| ---- | -------------------- | | callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' creator.release((err : BusinessError) => { if (err) { console.info('release failed: ' + err); } console.info('release succeeded'); }); ``` ### release9+ release(): Promise\ 释放当前图像,并使用promise返回结果。 **系统能力:** SystemCapability.Multimedia.Image.ImageCreator **返回值:** | 类型 | 说明 | | -------------- | ------------- | | Promise\ | 获取回调,失败时返回错误信息。 | **示例:** ```ts import {BusinessError} from '@ohos.base' creator.release().then(() => { console.info('release succeeded'); }).catch((error : BusinessError) => { console.info('release failed'); }) ``` ## Image9+ 提供基本的图像操作,包括获取图像信息、读写图像数据。调用[readNextImage](#readnextimage9)和[readLatestImage](#readlatestimage9)接口时会返回image。 ### 属性 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 类型 | 可读 | 可写 | 说明 | | -------- | ------------------ | ---- | ---- | -------------------------------------------------- | | clipRect | [Region](#region7) | 是 | 是 | 要裁剪的图像区域。 | | size | [Size](#size) | 是 | 否 | 图像大小。 | | format | number | 是 | 否 | 图像格式,参考[PixelMapFormat](#pixelmapformat7)。 | ### getComponent9+ getComponent(componentType: ComponentType, callback: AsyncCallback\): void 根据图像的组件类型从图像中获取组件缓存并使用callback返回结果。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------------- | --------------------------------------- | ---- | -------------------- | | componentType | [ComponentType](#componenttype9) | 是 | 图像的组件类型。 | | callback | AsyncCallback<[Component](#component9)> | 是 | 用于返回组件缓冲区。 | **示例:** ```ts import {BusinessError} from '@ohos.base' img.getComponent(4, (err : BusinessError, component : image.Component) => { if(err) { console.log('getComponent failed.'); } else { console.log('getComponent succeeded.'); } }) ``` ### getComponent9+ getComponent(componentType: ComponentType): Promise\ 根据图像的组件类型从图像中获取组件缓存并使用Promise方式返回结果。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------------- | -------------------------------- | ---- | ---------------- | | componentType | [ComponentType](#componenttype9) | 是 | 图像的组件类型。 | **返回值:** | 类型 | 说明 | | --------------------------------- | --------------------------------- | | Promise<[Component](#component9)> | 用于返回组件缓冲区的promise实例。 | **示例:** ```ts img.getComponent(4).then((component : image.Component) => { }) ``` ### release9+ release(callback: AsyncCallback\): void 释放当前图像并使用callback返回结果。 在接收另一个图像前必须先释放对应资源。 **系统能力:** SystemCapability.Multimedia.Image.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------- | | callback | AsyncCallback\ | 是 | 返回操作结果。 | **示例:** ```ts img.release(() =>{ console.log('release succeeded.'); }) ``` ### release9+ release(): Promise\ 释放当前图像并使用Promise方式返回结果。 在接收另一个图像前必须先释放对应资源。 **系统能力:** SystemCapability.Multimedia.Image.Core **返回值:** | 类型 | 说明 | | -------------- | --------------------- | | Promise\ | promise返回操作结果。 | **示例:** ```ts import {BusinessError} from '@ohos.base' img.release().then(() =>{ console.log('release succeeded.'); }).catch((error : BusinessError) => { console.log('release failed.'); }) ``` ## PositionArea7+ 表示图片指定区域内的数据。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 类型 | 可读 | 可写 | 说明 | | ------ | ------------------ | ---- | ---- | ------------------------------------------------------------ | | pixels | ArrayBuffer | 是 | 否 | 像素。 | | offset | number | 是 | 否 | 偏移量。 | | stride | number | 是 | 否 | 像素间距,stride >= region.size.width*4。 | | region | [Region](#region7) | 是 | 否 | 区域,按照区域读写。写入的区域宽度加X坐标不能大于原图的宽度,写入的区域高度加Y坐标不能大于原图的高度。 | ## ImageInfo 表示图片信息。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 类型 | 可读 | 可写 | 说明 | | ---- | ------------- | ---- | ---- | ---------- | | size | [Size](#size) | 是 | 是 | 图片大小。 | | density9+ | number | 是 | 是 | 像素密度,单位为ppi。 | ## Size 表示图片尺寸。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 类型 | 可读 | 可写 | 说明 | | ------ | ------ | ---- | ---- | -------------- | | height | number | 是 | 是 | 输出图片的高。 | | width | number | 是 | 是 | 输出图片的宽。 | ## PixelMapFormat7+ 枚举,图片像素格式。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 值 | 说明 | | ---------------------- | ------ | ----------------- | | UNKNOWN | 0 | 未知格式。 | | RGB_565 | 2 | 格式为RGB_565 | | RGBA_8888 | 3 | 格式为RGBA_8888 | | BGRA_88889+ | 4 | 格式为BGRA_8888 | | RGB_8889+ | 5 | 格式为RGB_888 | | ALPHA_89+ | 6 | 格式为ALPHA_8 | | RGBA_F169+ | 7 | 格式为RGBA_F16 | | NV219+ | 8 | 格式为NV21 | | NV129+ | 9 | 格式为NV12 | ## AlphaType9+ 枚举,图像的透明度类型。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 值 | 说明 | | -------- | ------ | ----------------------- | | UNKNOWN | 0 | 未知透明度。 | | OPAQUE | 1 | 没有alpha或图片全透明。 | | PREMUL | 2 | RGB前乘alpha。 | | UNPREMUL | 3 | RGB不前乘alpha。 | ## ScaleMode9+ 枚举,图像的缩放模式。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 值 | 说明 | | --------------- | ------ | -------------------------------------------------- | | CENTER_CROP | 1 | 缩放图像以填充目标图像区域并居中裁剪区域外的效果。 | | FIT_TARGET_SIZE | 0 | 图像适合目标尺寸的效果。 | ## SourceOptions9+ ImageSource的初始化选项。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 类型 | 可读 | 可写 | 说明 | | ----------------- | ---------------------------------- | ---- | ---- | ------------------ | | sourceDensity | number | 是 | 是 | ImageSource的密度。| | sourcePixelFormat | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 图片像素格式。 | | sourceSize | [Size](#size) | 是 | 是 | 图像像素大小。 | ## InitializationOptions8+ PixelMap的初始化选项。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 类型 | 可读 | 可写 | 说明 | | ------------------------ | ---------------------------------- | ---- | ---- | -------------- | | alphaType9+ | [AlphaType](#alphatype9) | 是 | 是 | 透明度。 | | editable | boolean | 是 | 是 | 是否可编辑。 | | pixelFormat | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 像素格式。 | | scaleMode9+ | [ScaleMode](#scalemode9) | 是 | 是 | 缩略值。 | | size | [Size](#size) | 是 | 是 | 创建图片大小。 | ## DecodingOptions7+ 图像解码设置选项。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource | 名称 | 类型 | 可读 | 可写 | 说明 | | ------------------ | ---------------------------------- | ---- | ---- | ---------------- | | sampleSize | number | 是 | 是 | 缩略图采样大小,当前只能取1。 | | rotate | number | 是 | 是 | 旋转角度。 | | editable | boolean | 是 | 是 | 是否可编辑。当取值为false时,图片不可二次编辑,如crop等操作将失败。 | | desiredSize | [Size](#size) | 是 | 是 | 期望输出大小。 | | desiredRegion | [Region](#region7) | 是 | 是 | 解码区域。 | | desiredPixelFormat | [PixelMapFormat](#pixelmapformat7) | 是 | 是 | 解码的像素格式。 | | index | number | 是 | 是 | 解码图片序号。 | | fitDensity9+ | number | 是 | 是 | 图像像素密度,单位为ppi。 | ## Region7+ 表示区域信息。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 类型 | 可读 | 可写 | 说明 | | ---- | ------------- | ---- | ---- | ------------ | | size | [Size](#size) | 是 | 是 | 区域大小。 | | x | number | 是 | 是 | 区域横坐标。 | | y | number | 是 | 是 | 区域纵坐标。 | ## PackingOption 表示图片打包选项。 **系统能力:** SystemCapability.Multimedia.Image.ImagePacker | 名称 | 类型 | 可读 | 可写 | 说明 | | ------- | ------ | ---- | ---- | --------------------------------------------------- | | format | string | 是 | 是 | 目标格式。
当前只支持jpg和webp。 | | quality | number | 是 | 是 | JPEG编码中设定输出图片质量的参数,取值范围为1-100。 | | bufferSize9+ | number | 是 | 是 | 用于设置图片大小,默认为10M。 | ## GetImagePropertyOptions7+ 表示查询图片属性的索引。 **系统能力:** SystemCapability.Multimedia.Image.ImageSource | 名称 | 类型 | 可读 | 可写 | 说明 | | ------------ | ------ | ---- | ---- | ------------ | | index | number | 是 | 是 | 图片序号。 | | defaultValue | string | 是 | 是 | 默认属性值。 | ## PropertyKey7+ 枚举,Exif(Exchangeable image file format)图片信息。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 值 | 说明 | | ----------------- | ----------------------- | ------------------------ | | BITS_PER_SAMPLE | "BitsPerSample" | 每个像素比特数。 | | ORIENTATION | "Orientation" | 图片方向。 | | IMAGE_LENGTH | "ImageLength" | 图片长度。 | | IMAGE_WIDTH | "ImageWidth" | 图片宽度。 | | GPS_LATITUDE | "GPSLatitude" | 图片纬度。 | | GPS_LONGITUDE | "GPSLongitude" | 图片经度。 | | GPS_LATITUDE_REF | "GPSLatitudeRef" | 纬度引用,例如N或S。 | | GPS_LONGITUDE_REF | "GPSLongitudeRef" | 经度引用,例如W或E。 | | DATE_TIME_ORIGINAL9+ | "DateTimeOriginal" | 拍摄时间,例如2022:09:06 15:48:00。当前为只读属性。 | | EXPOSURE_TIME9+ | "ExposureTime" | 曝光时间,例如1/33 sec。当前为只读属性。 | | SCENE_TYPE9+ | "SceneType" | 拍摄场景模式,例如人像、风光、运动、夜景等。当前为只读属性。 | | ISO_SPEED_RATINGS9+ | "ISOSpeedRatings" | ISO感光度,例如400。当前为只读属性。 | | F_NUMBER9+ | "FNumber" | 光圈值,例如f/1.8。当前为只读属性。 | | DATE_TIME10+ | "DateTime" | 日期时间,当前为只读属性。 | | GPS_TIME_STAMP10+ | "GPSTimeStamp" | GPS时间戳,当前为只读属性。 | | GPS_DATE_STAMP10+ | "GPSDateStamp" | GPS日期戳,当前为只读属性。 | | IMAGE_DESCRIPTION10+ | "ImageDescription" | 图像信息描述,当前为只读属性。 | | MAKE10+ | "Make" | 生产商,当前为只读属性。 | | MODEL10+ | "Model" | 设备型号,当前为只读属性。 | | PHOTO_MODE10+ | "PhotoMode " | 拍照模式,当前为只读属性。 | | SENSITIVITY_TYPE10+ | "SensitivityType" | 灵敏度类型,当前为只读属性。 | | STANDARD_OUTPUT_SENSITIVITY10+ | "StandardOutputSensitivity" | 标准输出灵敏度,当前为只读属性。 | | RECOMMENDED_EXPOSURE_INDEX10+ | "RecommendedExposureIndex" | 推荐曝光指数,当前为只读属性。 | | ISO_SPEED10+ | "ISOSpeedRatings" | ISO速度等级,当前为只读属性。 | | APERTURE_VALUE10+ | "ApertureValue" | 光圈值,当前为只读属性。 | | EXPOSURE_BIAS_VALUE10+ | "ExposureBiasValue" | 曝光偏差值,当前为只读属性。 | | METERING_MODE10+ | "MeteringMode" | 测光模式,当前为只读属性。 | | LIGHT_SOURCE10+ | "LightSource" | 光源,当前为只读属性。 | | FLASH 10+ | "Flash" | 闪光灯,记录闪光灯状态,当前为只读属性。 | | FOCAL_LENGTH 10+ | "FocalLength" | 焦距,当前为只读属性。 | | USER_COMMENT 10+ | "UserComment" | 用户注释,当前为只读属性。 | | PIXEL_X_DIMENSION 10+ | "PixelXDimension" | 像素X尺寸,当前为只读属性。 | | PIXEL_Y_DIMENSION10+ | "PixelYDimension" | 像素Y尺寸,当前为只读属性。 | | WHITE_BALANCE 10+ | "WhiteBalance" | 白平衡,当前为只读属性。 | | FOCAL_LENGTH_IN_35_MM_FILM 10+ | "FocalLengthIn35mmFilm" | 焦距35毫米胶片,当前为只读属性。 | | CAPTURE_MODE 10+ | "HwMnoteCaptureMode" | 捕获模式,当前为只读属性。 | | PHYSICAL_APERTURE 10+ | "HwMnotePhysicalAperture" | 物理孔径,光圈大小,当前为只读属性。 | ## ImageFormat9+ 枚举,图片格式。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 值 | 说明 | | ------------ | ------ | -------------------- | | YCBCR_422_SP | 1000 | YCBCR422半平面格式。 | | JPEG | 2000 | JPEG编码格式。 | ## ComponentType9+ 枚举,图像的组件类型。 **系统能力:** SystemCapability.Multimedia.Image.ImageReceiver | 名称 | 值 | 说明 | | ----- | ------ | ----------- | | YUV_Y | 1 | 亮度信息。 | | YUV_U | 2 | 色度信息。 | | YUV_V | 3 | 色度信息。 | | JPEG | 4 | JPEG 类型。 | ## Component9+ 描述图像颜色分量。 **系统能力:** SystemCapability.Multimedia.Image.Core | 名称 | 类型 | 可读 | 可写 | 说明 | | ------------- | -------------------------------- | ---- | ---- | ------------ | | componentType | [ComponentType](#componenttype9) | 是 | 否 | 组件类型。 | | rowStride | number | 是 | 否 | 行距。 | | pixelStride | number | 是 | 否 | 像素间距。 | | byteBuffer | ArrayBuffer | 是 | 否 | 组件缓冲区。 | ## 补充说明 ### SVG标签说明 从API version 10开始支持SVG标签,使用版本为(SVG) 1.1,当前支持的标签列表有: - a - circla - clipPath - defs - ellipse - feBlend - feColorMatrix - feComposite - feDiffuseLighting - feDisplacementMap - feDistantLight - feFlood - feGaussianBlur - feImage - feMorphology - feOffset - fePointLight - feSpecularLighting - feSpotLight - feTurbulence - filter - g - image - line - linearGradient - mask - path - pattern - polygon - polyline - radialGradient - rect - stop - svg - text - textPath - tspan - use