1e41f4b71Sopenharmony_ci# @ohos.multimedia.image (图片处理) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci本模块提供图片处理效果,包括通过属性创建PixelMap、读取图像像素数据、读取区域内的图片数据等。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> - 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci> 9e41f4b71Sopenharmony_ci> - 从API version 12开始,本模块接口支持在ArkTS卡片中使用。 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci## 导入模块 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci```ts 14e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 15e41f4b71Sopenharmony_ci``` 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci## image.createPicture<sup>13+</sup> 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_cicreatePicture(mainPixelmap : PixelMap): Picture 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci通过主图的pixelmap创建一个Picture对象。 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci**参数:** 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 28e41f4b71Sopenharmony_ci| ------------ | ------------------- | ---- | ---------------- | 29e41f4b71Sopenharmony_ci| mainPixelmap | [PixelMap](#pixelmap7) | 是 | 主图的pixelmap。 | 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci**返回值:** 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci| 类型 | 说明 | 34e41f4b71Sopenharmony_ci| ------------------ | ----------------- | 35e41f4b71Sopenharmony_ci| [Picture](#picture13) | 返回Picture对象。 | 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci**错误码:** 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 42e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 43e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci**示例:** 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci```ts 48e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ciasync function CreatePicture() { 51e41f4b71Sopenharmony_ci const context = getContext(); 52e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 53e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("test.jpg"); 54e41f4b71Sopenharmony_ci let ops: image.SourceOptions = { 55e41f4b71Sopenharmony_ci sourceDensity: 98, 56e41f4b71Sopenharmony_ci } 57e41f4b71Sopenharmony_ci let imageSource: image.ImageSource = image.createImageSource(rawFile.buffer as ArrayBuffer, ops); 58e41f4b71Sopenharmony_ci let commodityPixelMap: image.PixelMap = await imageSource.createPixelMap(); 59e41f4b71Sopenharmony_ci let pictureObj: image.Picture = image.createPicture(commodityPixelMap); 60e41f4b71Sopenharmony_ci if (pictureObj != null) { 61e41f4b71Sopenharmony_ci console.info('Create picture succeeded'); 62e41f4b71Sopenharmony_ci } else { 63e41f4b71Sopenharmony_ci console.info('Create picture failed'); 64e41f4b71Sopenharmony_ci } 65e41f4b71Sopenharmony_ci} 66e41f4b71Sopenharmony_ci``` 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ci## image.createPictureFromParcel<sup>13+</sup> 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_cicreatePictureFromParcel(sequence: rpc.MessageSequence): Picture 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci从MessageSequence中获取Picture。 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ci**参数:** 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 79e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------- | ---- | ------------------------------------ | 80e41f4b71Sopenharmony_ci| sequence | [rpc.MessageSequence](../apis-ipc-kit/js-apis-rpc.md#messagesequence9) | 是 | 保存有Picture信息的MessageSequence。 | 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci**返回值:** 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci| 类型 | 说明 | 85e41f4b71Sopenharmony_ci| ------------------ | ----------------- | 86e41f4b71Sopenharmony_ci| [Picture](#picture13) | 返回Picture对象。 | 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci**错误码:** 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 93e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 94e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 95e41f4b71Sopenharmony_ci| 62980097 | IPC error. | 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci**示例:** 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_ci```ts 100e41f4b71Sopenharmony_ciimport { rpc } from '@kit.IPCKit'; 101e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 102e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ciclass MySequence implements rpc.Parcelable { 105e41f4b71Sopenharmony_ci picture: image.Picture | null = null; 106e41f4b71Sopenharmony_ci constructor(conPicture: image.Picture) { 107e41f4b71Sopenharmony_ci this.picture = conPicture; 108e41f4b71Sopenharmony_ci } 109e41f4b71Sopenharmony_ci marshalling(messageSequence: rpc.MessageSequence) { 110e41f4b71Sopenharmony_ci if(this.picture != null) { 111e41f4b71Sopenharmony_ci this.picture.marshalling(messageSequence); 112e41f4b71Sopenharmony_ci console.info('Marshalling success !'); 113e41f4b71Sopenharmony_ci return true; 114e41f4b71Sopenharmony_ci } else { 115e41f4b71Sopenharmony_ci console.info('Marshalling failed !'); 116e41f4b71Sopenharmony_ci return false; 117e41f4b71Sopenharmony_ci } 118e41f4b71Sopenharmony_ci } 119e41f4b71Sopenharmony_ci unmarshalling(messageSequence : rpc.MessageSequence) { 120e41f4b71Sopenharmony_ci this.picture = image.createPictureFromParcel(messageSequence); 121e41f4b71Sopenharmony_ci this.picture.getMainPixelmap().getImageInfo().then((imageInfo : image.ImageInfo) => { 122e41f4b71Sopenharmony_ci console.info('Unmarshalling to get mainPixelmap information height:' + imageInfo.size.height + ' width:' + imageInfo.size.width); 123e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 124e41f4b71Sopenharmony_ci console.error('Unmarshalling failed error.code: ${error.code} ,error.message: ${error.message}'); 125e41f4b71Sopenharmony_ci }); 126e41f4b71Sopenharmony_ci return true; 127e41f4b71Sopenharmony_ci } 128e41f4b71Sopenharmony_ci} 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ciasync function Marshalling_UnMarshalling() { 131e41f4b71Sopenharmony_ci const context = getContext(); 132e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 133e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("test.jpg"); 134e41f4b71Sopenharmony_ci let ops: image.SourceOptions = { 135e41f4b71Sopenharmony_ci sourceDensity: 98, 136e41f4b71Sopenharmony_ci } 137e41f4b71Sopenharmony_ci let imageSource: image.ImageSource = image.createImageSource(rawFile.buffer as ArrayBuffer, ops); 138e41f4b71Sopenharmony_ci let commodityPixelMap: image.PixelMap = await imageSource.createPixelMap(); 139e41f4b71Sopenharmony_ci let pictureObj: image.Picture = image.createPicture(commodityPixelMap); 140e41f4b71Sopenharmony_ci if (pictureObj != null) { 141e41f4b71Sopenharmony_ci let parcelable: MySequence = new MySequence(pictureObj); 142e41f4b71Sopenharmony_ci let data: rpc.MessageSequence = rpc.MessageSequence.create(); 143e41f4b71Sopenharmony_ci // marshalling 144e41f4b71Sopenharmony_ci data.writeParcelable(parcelable); 145e41f4b71Sopenharmony_ci let ret: MySequence = new MySequence(pictureObj); 146e41f4b71Sopenharmony_ci // unmarshalling 147e41f4b71Sopenharmony_ci data.readParcelable(ret); 148e41f4b71Sopenharmony_ci } else { 149e41f4b71Sopenharmony_ci console.info('PictureObj is null'); 150e41f4b71Sopenharmony_ci } 151e41f4b71Sopenharmony_ci} 152e41f4b71Sopenharmony_ci``` 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci## image.createPixelMap<sup>8+</sup> 155e41f4b71Sopenharmony_ci 156e41f4b71Sopenharmony_cicreatePixelMap(colors: ArrayBuffer, options: InitializationOptions): Promise\<PixelMap> 157e41f4b71Sopenharmony_ci 158e41f4b71Sopenharmony_ci通过属性创建PixelMap,默认采用BGRA_8888格式处理数据,通过Promise返回结果。 159e41f4b71Sopenharmony_ci 160e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 161e41f4b71Sopenharmony_ci 162e41f4b71Sopenharmony_ci**参数:** 163e41f4b71Sopenharmony_ci 164e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 165e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------ | ---- | ---------------------------------------------------------------- | 166e41f4b71Sopenharmony_ci| colors | ArrayBuffer | 是 | 图像像素数据的缓冲区,用于初始化PixelMap的像素。初始化前,缓冲区中的像素格式需要由[InitializationOptions](#initializationoptions8).srcPixelFormat指定。 | 167e41f4b71Sopenharmony_ci| options | [InitializationOptions](#initializationoptions8) | 是 | 创建像素的属性,包括透明度,尺寸,缩略值,像素格式和是否可编辑。 | 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_ci**返回值:** 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ci| 类型 | 说明 | 172e41f4b71Sopenharmony_ci| -------------------------------- | ----------------------------------------------------------------------- | 173e41f4b71Sopenharmony_ci| Promise\<[PixelMap](#pixelmap7)> | Promise对象,返回PixelMap。<br>当创建的pixelMap大小超过原图大小时,返回原图pixelMap大小。| 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci**示例:** 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci```ts 178e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 179e41f4b71Sopenharmony_ci 180e41f4b71Sopenharmony_ciasync function Demo() { 181e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 182e41f4b71Sopenharmony_ci let opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } 183e41f4b71Sopenharmony_ci image.createPixelMap(color, opts).then((pixelMap: image.PixelMap) => { 184e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelmap.'); 185e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 186e41f4b71Sopenharmony_ci console.error(`Failed to create pixelmap. code is ${error.code}, message is ${error.message}`); 187e41f4b71Sopenharmony_ci }) 188e41f4b71Sopenharmony_ci} 189e41f4b71Sopenharmony_ci``` 190e41f4b71Sopenharmony_ci 191e41f4b71Sopenharmony_ci## image.createPixelMap<sup>8+</sup> 192e41f4b71Sopenharmony_ci 193e41f4b71Sopenharmony_cicreatePixelMap(colors: ArrayBuffer, options: InitializationOptions, callback: AsyncCallback\<PixelMap>): void 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci通过属性创建PixelMap,默认采用BGRA_8888格式处理数据,通过回调函数返回结果。 196e41f4b71Sopenharmony_ci 197e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 198e41f4b71Sopenharmony_ci 199e41f4b71Sopenharmony_ci**参数:** 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 202e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------ | ---- | -------------------------- | 203e41f4b71Sopenharmony_ci| colors | ArrayBuffer | 是 | 图像像素数据的缓冲区,用于初始化PixelMap的像素。初始化前,缓冲区中的像素格式需要由[InitializationOptions](#initializationoptions8).srcPixelFormat指定。 | 204e41f4b71Sopenharmony_ci| options | [InitializationOptions](#initializationoptions8) | 是 | 创建像素的属性,包括透明度,尺寸,缩略值,像素格式和是否可编辑。 | 205e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[PixelMap](#pixelmap7)> | 是 | 回调函数,当创建PixelMap成功,err为undefined,data为获取到的PixelMap对象;否则为错误对象。 | 206e41f4b71Sopenharmony_ci 207e41f4b71Sopenharmony_ci**示例:** 208e41f4b71Sopenharmony_ci 209e41f4b71Sopenharmony_ci```ts 210e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ciasync function Demo() { 213e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 214e41f4b71Sopenharmony_ci let opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } 215e41f4b71Sopenharmony_ci image.createPixelMap(color, opts, (error: BusinessError, pixelMap: image.PixelMap) => { 216e41f4b71Sopenharmony_ci if(error) { 217e41f4b71Sopenharmony_ci console.error(`Failed to create pixelmap. code is ${error.code}, message is ${error.message}`); 218e41f4b71Sopenharmony_ci return; 219e41f4b71Sopenharmony_ci } else { 220e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelmap.'); 221e41f4b71Sopenharmony_ci } 222e41f4b71Sopenharmony_ci }) 223e41f4b71Sopenharmony_ci} 224e41f4b71Sopenharmony_ci``` 225e41f4b71Sopenharmony_ci 226e41f4b71Sopenharmony_ci## image.createPixelMapFromParcel<sup>11+</sup> 227e41f4b71Sopenharmony_ci 228e41f4b71Sopenharmony_cicreatePixelMapFromParcel(sequence: rpc.MessageSequence): PixelMap 229e41f4b71Sopenharmony_ci 230e41f4b71Sopenharmony_ci从MessageSequence中获取PixelMap。 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ci**参数:** 235e41f4b71Sopenharmony_ci 236e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 237e41f4b71Sopenharmony_ci| ---------------------- | ----------------------------------------------------- | ---- | ---------------------------------------- | 238e41f4b71Sopenharmony_ci| sequence | [rpc.MessageSequence](../apis-ipc-kit/js-apis-rpc.md#messagesequence9) | 是 | 保存有PixelMap信息的MessageSequence。 | 239e41f4b71Sopenharmony_ci 240e41f4b71Sopenharmony_ci**返回值:** 241e41f4b71Sopenharmony_ci 242e41f4b71Sopenharmony_ci| 类型 | 说明 | 243e41f4b71Sopenharmony_ci| -------------------------------- | --------------------- | 244e41f4b71Sopenharmony_ci| [PixelMap](#pixelmap7) | 成功同步返回PixelMap对象,失败抛出异常。 | 245e41f4b71Sopenharmony_ci 246e41f4b71Sopenharmony_ci**错误码:** 247e41f4b71Sopenharmony_ci 248e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 249e41f4b71Sopenharmony_ci 250e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 251e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 252e41f4b71Sopenharmony_ci| 62980096 | Operation failed| 253e41f4b71Sopenharmony_ci| 62980097 | IPC error.| 254e41f4b71Sopenharmony_ci| 62980115 | Invalid input parameter| 255e41f4b71Sopenharmony_ci| 62980105 | Failed to get the data| 256e41f4b71Sopenharmony_ci| 62980177 | Abnormal API environment| 257e41f4b71Sopenharmony_ci| 62980178 | Failed to create the PixelMap| 258e41f4b71Sopenharmony_ci| 62980179 | Abnormal buffer size| 259e41f4b71Sopenharmony_ci| 62980180 | FD mapping failed| 260e41f4b71Sopenharmony_ci| 62980246 | Failed to read the PixelMap| 261e41f4b71Sopenharmony_ci 262e41f4b71Sopenharmony_ci**示例:** 263e41f4b71Sopenharmony_ci 264e41f4b71Sopenharmony_ci```ts 265e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 266e41f4b71Sopenharmony_ciimport { rpc } from '@kit.IPCKit'; 267e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ciclass MySequence implements rpc.Parcelable { 270e41f4b71Sopenharmony_ci pixel_map: image.PixelMap; 271e41f4b71Sopenharmony_ci constructor(conPixelmap: image.PixelMap) { 272e41f4b71Sopenharmony_ci this.pixel_map = conPixelmap; 273e41f4b71Sopenharmony_ci } 274e41f4b71Sopenharmony_ci marshalling(messageSequence: rpc.MessageSequence) { 275e41f4b71Sopenharmony_ci this.pixel_map.marshalling(messageSequence); 276e41f4b71Sopenharmony_ci return true; 277e41f4b71Sopenharmony_ci } 278e41f4b71Sopenharmony_ci unmarshalling(messageSequence: rpc.MessageSequence) { 279e41f4b71Sopenharmony_ci try { 280e41f4b71Sopenharmony_ci this.pixel_map = image.createPixelMapFromParcel(messageSequence); 281e41f4b71Sopenharmony_ci } catch(e) { 282e41f4b71Sopenharmony_ci let error = e as BusinessError; 283e41f4b71Sopenharmony_ci console.error(`createPixelMapFromParcel error. code is ${error.code}, message is ${error.message}`); 284e41f4b71Sopenharmony_ci return false; 285e41f4b71Sopenharmony_ci } 286e41f4b71Sopenharmony_ci return true; 287e41f4b71Sopenharmony_ci } 288e41f4b71Sopenharmony_ci} 289e41f4b71Sopenharmony_ciasync function Demo() { 290e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(96); 291e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(color); 292e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i++) { 293e41f4b71Sopenharmony_ci bufferArr[i] = 0x80; 294e41f4b71Sopenharmony_ci } 295e41f4b71Sopenharmony_ci let opts: image.InitializationOptions = { 296e41f4b71Sopenharmony_ci editable: true, 297e41f4b71Sopenharmony_ci pixelFormat: 4, 298e41f4b71Sopenharmony_ci size: { height: 4, width: 6 }, 299e41f4b71Sopenharmony_ci alphaType: 3 300e41f4b71Sopenharmony_ci } 301e41f4b71Sopenharmony_ci let pixelMap: image.PixelMap | undefined = undefined; 302e41f4b71Sopenharmony_ci image.createPixelMap(color, opts).then((srcPixelMap: image.PixelMap) => { 303e41f4b71Sopenharmony_ci pixelMap = srcPixelMap; 304e41f4b71Sopenharmony_ci }) 305e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 306e41f4b71Sopenharmony_ci // 序列化 307e41f4b71Sopenharmony_ci let parcelable: MySequence = new MySequence(pixelMap); 308e41f4b71Sopenharmony_ci let data: rpc.MessageSequence = rpc.MessageSequence.create(); 309e41f4b71Sopenharmony_ci data.writeParcelable(parcelable); 310e41f4b71Sopenharmony_ci 311e41f4b71Sopenharmony_ci // 反序列化 rpc获取到data 312e41f4b71Sopenharmony_ci let ret: MySequence = new MySequence(pixelMap); 313e41f4b71Sopenharmony_ci data.readParcelable(ret); 314e41f4b71Sopenharmony_ci 315e41f4b71Sopenharmony_ci // 获取到pixelmap 316e41f4b71Sopenharmony_ci let unmarshPixelmap = ret.pixel_map; 317e41f4b71Sopenharmony_ci } 318e41f4b71Sopenharmony_ci} 319e41f4b71Sopenharmony_ci``` 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ci## image.createPixelMapFromSurface<sup>11+</sup> 322e41f4b71Sopenharmony_ci 323e41f4b71Sopenharmony_cicreatePixelMapFromSurface(surfaceId: string, region: Region): Promise\<PixelMap> 324e41f4b71Sopenharmony_ci 325e41f4b71Sopenharmony_ci根据Surface id和区域信息,创建一个PixelMap对象。该区域的大小由[Region](#region8).size指定。使用Promise形式返回。 326e41f4b71Sopenharmony_ci 327e41f4b71Sopenharmony_ci> **说明:** 328e41f4b71Sopenharmony_ci> 1. [Region](#region8).size的宽高需和[XComponent](../apis-arkui/arkui-ts/ts-basic-components-xcomponent.md)组件的宽高保持一致。 329e41f4b71Sopenharmony_ci> 2. 当开发设备为折叠屏,折叠状态切换时,需自行调整[XComponent](../apis-arkui/arkui-ts/ts-basic-components-xcomponent.md)组件的宽高。 330e41f4b71Sopenharmony_ci 331e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_ci**参数:** 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 336e41f4b71Sopenharmony_ci| ---------------------- | ------------- | ---- | ---------------------------------------- | 337e41f4b71Sopenharmony_ci| surfaceId | string | 是 | 从[XComponent](../apis-arkui/arkui-ts/ts-basic-components-xcomponent.md)组件获取的surfaceId。| 338e41f4b71Sopenharmony_ci| region | [Region](#region8) | 是 | 区域信息。 | 339e41f4b71Sopenharmony_ci 340e41f4b71Sopenharmony_ci**返回值:** 341e41f4b71Sopenharmony_ci| 类型 | 说明 | 342e41f4b71Sopenharmony_ci| -------------------------------- | --------------------- | 343e41f4b71Sopenharmony_ci| Promise\<[PixelMap](#pixelmap7)> | Promise对象,返回PixelMap。 | 344e41f4b71Sopenharmony_ci 345e41f4b71Sopenharmony_ci**错误码:** 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 348e41f4b71Sopenharmony_ci 349e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 350e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 351e41f4b71Sopenharmony_ci| 62980115 | If the image parameter invalid.| 352e41f4b71Sopenharmony_ci| 62980105 | Failed to get the data| 353e41f4b71Sopenharmony_ci| 62980178 | Failed to create the PixelMap| 354e41f4b71Sopenharmony_ci 355e41f4b71Sopenharmony_ci**示例:** 356e41f4b71Sopenharmony_ci 357e41f4b71Sopenharmony_ci```ts 358e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 359e41f4b71Sopenharmony_ci 360e41f4b71Sopenharmony_ciasync function Demo(surfaceId: string) { 361e41f4b71Sopenharmony_ci let region: image.Region = { x: 0, y: 0, size: { height: 100, width: 100 } }; 362e41f4b71Sopenharmony_ci image.createPixelMapFromSurface(surfaceId, region).then(() => { 363e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelmap from Surface'); 364e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 365e41f4b71Sopenharmony_ci console.error(`Failed to create pixelmap. code is ${error.code}, message is ${error.message}`); 366e41f4b71Sopenharmony_ci }); 367e41f4b71Sopenharmony_ci} 368e41f4b71Sopenharmony_ci``` 369e41f4b71Sopenharmony_ci 370e41f4b71Sopenharmony_ci## image.createPixelMapFromSurfaceSync<sup>12+</sup> 371e41f4b71Sopenharmony_ci 372e41f4b71Sopenharmony_cicreatePixelMapFromSurfaceSync(surfaceId: string, region: Region): PixelMap 373e41f4b71Sopenharmony_ci 374e41f4b71Sopenharmony_ci以同步方式,根据Surface id和区域信息,创建一个PixelMap对象。该区域的大小由[Region](#region8).size指定。 375e41f4b71Sopenharmony_ci 376e41f4b71Sopenharmony_ci> **说明:** 377e41f4b71Sopenharmony_ci> 1. [Region](#region8).size的宽高需和[XComponent](../apis-arkui/arkui-ts/ts-basic-components-xcomponent.md)组件的宽高保持一致。 378e41f4b71Sopenharmony_ci> 2. 当开发设备为折叠屏,折叠状态切换时,需自行调整[XComponent](../apis-arkui/arkui-ts/ts-basic-components-xcomponent.md)组件的宽高。 379e41f4b71Sopenharmony_ci 380e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 381e41f4b71Sopenharmony_ci 382e41f4b71Sopenharmony_ci**参数:** 383e41f4b71Sopenharmony_ci 384e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 385e41f4b71Sopenharmony_ci| ---------------------- | ------------- | ---- | ---------------------------------------- | 386e41f4b71Sopenharmony_ci| surfaceId | string | 是 | 从[XComponent](../apis-arkui/arkui-ts/ts-basic-components-xcomponent.md)组件获取的surfaceId。| 387e41f4b71Sopenharmony_ci| region | [Region](#region8) | 是 | 区域信息。 | 388e41f4b71Sopenharmony_ci 389e41f4b71Sopenharmony_ci**返回值:** 390e41f4b71Sopenharmony_ci| 类型 | 说明 | 391e41f4b71Sopenharmony_ci| -------------------------------- | --------------------- | 392e41f4b71Sopenharmony_ci| [PixelMap](#pixelmap7) | 成功同步返回PixelMap对象,失败抛出异常。 | 393e41f4b71Sopenharmony_ci 394e41f4b71Sopenharmony_ci**错误码:** 395e41f4b71Sopenharmony_ci 396e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 397e41f4b71Sopenharmony_ci 398e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 399e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 400e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed| 401e41f4b71Sopenharmony_ci| 62980105 | Failed to get the data| 402e41f4b71Sopenharmony_ci| 62980178 | Failed to create the PixelMap| 403e41f4b71Sopenharmony_ci 404e41f4b71Sopenharmony_ci**示例:** 405e41f4b71Sopenharmony_ci 406e41f4b71Sopenharmony_ci```ts 407e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 408e41f4b71Sopenharmony_ci 409e41f4b71Sopenharmony_ciasync function Demo(surfaceId: string) { 410e41f4b71Sopenharmony_ci let region: image.Region = { x: 0, y: 0, size: { height: 100, width: 100 } }; 411e41f4b71Sopenharmony_ci let pixelMap : image.PixelMap = image.createPixelMapFromSurfaceSync(surfaceId, region); 412e41f4b71Sopenharmony_ci return pixelMap; 413e41f4b71Sopenharmony_ci} 414e41f4b71Sopenharmony_ci``` 415e41f4b71Sopenharmony_ci 416e41f4b71Sopenharmony_ci## image.createPixelMapSync<sup>12+</sup> 417e41f4b71Sopenharmony_ci 418e41f4b71Sopenharmony_cicreatePixelMapSync(colors: ArrayBuffer, options: InitializationOptions): PixelMap 419e41f4b71Sopenharmony_ci 420e41f4b71Sopenharmony_ci通过属性创建PixelMap,同步返回PixelMap结果。 421e41f4b71Sopenharmony_ci 422e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 423e41f4b71Sopenharmony_ci 424e41f4b71Sopenharmony_ci**参数:** 425e41f4b71Sopenharmony_ci 426e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 427e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------ | ---- | ---------------------------------------------------------------- | 428e41f4b71Sopenharmony_ci| colors | ArrayBuffer | 是 | 图像像素数据的缓冲区,用于初始化PixelMap的像素。初始化前,缓冲区中的像素格式需要由[InitializationOptions](#initializationoptions8).srcPixelFormat指定。 | 429e41f4b71Sopenharmony_ci| options | [InitializationOptions](#initializationoptions8) | 是 | 创建像素的属性,包括透明度,尺寸,缩略值,像素格式和是否可编辑。 | 430e41f4b71Sopenharmony_ci 431e41f4b71Sopenharmony_ci**返回值:** 432e41f4b71Sopenharmony_ci| 类型 | 说明 | 433e41f4b71Sopenharmony_ci| -------------------------------- | --------------------- | 434e41f4b71Sopenharmony_ci| [PixelMap](#pixelmap7) | 成功同步返回PixelMap对象,失败抛出异常。 | 435e41f4b71Sopenharmony_ci 436e41f4b71Sopenharmony_ci**错误码:** 437e41f4b71Sopenharmony_ci 438e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 439e41f4b71Sopenharmony_ci 440e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 441e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 442e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed| 443e41f4b71Sopenharmony_ci 444e41f4b71Sopenharmony_ci**示例:** 445e41f4b71Sopenharmony_ci 446e41f4b71Sopenharmony_ci```ts 447e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 448e41f4b71Sopenharmony_ci 449e41f4b71Sopenharmony_ciasync function Demo() { 450e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 451e41f4b71Sopenharmony_ci let opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } 452e41f4b71Sopenharmony_ci let pixelMap : image.PixelMap = image.createPixelMapSync(color, opts); 453e41f4b71Sopenharmony_ci return pixelMap; 454e41f4b71Sopenharmony_ci} 455e41f4b71Sopenharmony_ci``` 456e41f4b71Sopenharmony_ci 457e41f4b71Sopenharmony_ci## image.createPixelMapSync<sup>12+</sup> 458e41f4b71Sopenharmony_ci 459e41f4b71Sopenharmony_cicreatePixelMapSync(options: InitializationOptions): PixelMap 460e41f4b71Sopenharmony_ci 461e41f4b71Sopenharmony_ci通过属性创建PixelMap,同步返回PixelMap结果。 462e41f4b71Sopenharmony_ci 463e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 464e41f4b71Sopenharmony_ci 465e41f4b71Sopenharmony_ci**参数:** 466e41f4b71Sopenharmony_ci 467e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 468e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------ | ---- | ---------------------------------------------------------------- | 469e41f4b71Sopenharmony_ci| options | [InitializationOptions](#initializationoptions8) | 是 | 创建像素的属性,包括透明度,尺寸,缩略值,像素格式和是否可编辑。 | 470e41f4b71Sopenharmony_ci 471e41f4b71Sopenharmony_ci**返回值:** 472e41f4b71Sopenharmony_ci| 类型 | 说明 | 473e41f4b71Sopenharmony_ci| -------------------------------- | --------------------- | 474e41f4b71Sopenharmony_ci| [PixelMap](#pixelmap7) | 成功同步返回PixelMap对象,失败抛出异常。 | 475e41f4b71Sopenharmony_ci 476e41f4b71Sopenharmony_ci**错误码:** 477e41f4b71Sopenharmony_ci 478e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 479e41f4b71Sopenharmony_ci 480e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 481e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 482e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed| 483e41f4b71Sopenharmony_ci 484e41f4b71Sopenharmony_ci**示例:** 485e41f4b71Sopenharmony_ci 486e41f4b71Sopenharmony_ci```ts 487e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 488e41f4b71Sopenharmony_ci 489e41f4b71Sopenharmony_ciasync function Demo() { 490e41f4b71Sopenharmony_ci let opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } 491e41f4b71Sopenharmony_ci let pixelMap : image.PixelMap = image.createPixelMapSync(opts); 492e41f4b71Sopenharmony_ci return pixelMap; 493e41f4b71Sopenharmony_ci} 494e41f4b71Sopenharmony_ci``` 495e41f4b71Sopenharmony_ci 496e41f4b71Sopenharmony_ci## image.createPremultipliedPixelMap<sup>12+</sup> 497e41f4b71Sopenharmony_ci 498e41f4b71Sopenharmony_cicreatePremultipliedPixelMap(src: PixelMap, dst: PixelMap, callback: AsyncCallback\<void>): void 499e41f4b71Sopenharmony_ci 500e41f4b71Sopenharmony_ci将PixelMap的透明通道非预乘模式转变为预乘模式,转换后的数据存入目标PixelMap,通过回调函数返回结果。 501e41f4b71Sopenharmony_ci 502e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 503e41f4b71Sopenharmony_ci 504e41f4b71Sopenharmony_ci**参数:** 505e41f4b71Sopenharmony_ci 506e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 507e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------ | ---- | -------------------------- | 508e41f4b71Sopenharmony_ci| src | [PixelMap](#pixelmap7) | 是 | 源PixelMap对象。 | 509e41f4b71Sopenharmony_ci| dst | [PixelMap](#pixelmap7) | 是 | 目标PixelMap对象。 | 510e41f4b71Sopenharmony_ci|callback | AsyncCallback\<void> | 是 | 回调函数,当创建PixelMap成功,err为undefined,否则为错误对象。 | 511e41f4b71Sopenharmony_ci 512e41f4b71Sopenharmony_ci**错误码:** 513e41f4b71Sopenharmony_ci 514e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 515e41f4b71Sopenharmony_ci 516e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 517e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 518e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed| 519e41f4b71Sopenharmony_ci| 62980103 | The image data is not supported | 520e41f4b71Sopenharmony_ci| 62980246 | Failed to read the pixelMap | 521e41f4b71Sopenharmony_ci| 62980248 | Pixelmap not allow modify | 522e41f4b71Sopenharmony_ci 523e41f4b71Sopenharmony_ci**示例:** 524e41f4b71Sopenharmony_ci 525e41f4b71Sopenharmony_ci```ts 526e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 527e41f4b71Sopenharmony_ci 528e41f4b71Sopenharmony_ciasync function Demo() { 529e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(16); // 16为需要创建的像素buffer大小,取值为:height * width *4 530e41f4b71Sopenharmony_ci let bufferArr = new Uint8Array(color); 531e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i += 4) { 532e41f4b71Sopenharmony_ci bufferArr[i] = 255; 533e41f4b71Sopenharmony_ci bufferArr[i+1] = 255; 534e41f4b71Sopenharmony_ci bufferArr[i+2] = 122; 535e41f4b71Sopenharmony_ci bufferArr[i+3] = 122; 536e41f4b71Sopenharmony_ci } 537e41f4b71Sopenharmony_ci let optsForUnpre: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 2, width: 2 } , alphaType: 3} 538e41f4b71Sopenharmony_ci let srcPixelmap = image.createPixelMapSync(color, optsForUnpre); 539e41f4b71Sopenharmony_ci let optsForPre: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 2, width: 2 } , alphaType: 2} 540e41f4b71Sopenharmony_ci let dstPixelMap = image.createPixelMapSync(optsForPre); 541e41f4b71Sopenharmony_ci image.createPremultipliedPixelMap(srcPixelmap, dstPixelMap, (error: BusinessError) => { 542e41f4b71Sopenharmony_ci if(error) { 543e41f4b71Sopenharmony_ci console.error(`Failed to convert pixelmap. code is ${error.code}, message is ${error.message}`); 544e41f4b71Sopenharmony_ci return; 545e41f4b71Sopenharmony_ci } else { 546e41f4b71Sopenharmony_ci console.info('Succeeded in converting pixelmap.'); 547e41f4b71Sopenharmony_ci } 548e41f4b71Sopenharmony_ci }) 549e41f4b71Sopenharmony_ci} 550e41f4b71Sopenharmony_ci``` 551e41f4b71Sopenharmony_ci 552e41f4b71Sopenharmony_ci## image.createPremultipliedPixelMap<sup>12+</sup> 553e41f4b71Sopenharmony_ci 554e41f4b71Sopenharmony_cicreatePremultipliedPixelMap(src: PixelMap, dst: PixelMap): Promise\<void> 555e41f4b71Sopenharmony_ci 556e41f4b71Sopenharmony_ci将PixelMap数据按照透明度非预乘格式转为预乘格式,转换后的数据存入另一个PixelMap,通过Promise返回结果。 557e41f4b71Sopenharmony_ci 558e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 559e41f4b71Sopenharmony_ci 560e41f4b71Sopenharmony_ci**参数:** 561e41f4b71Sopenharmony_ci 562e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 563e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------ | ---- | -------------------------- | 564e41f4b71Sopenharmony_ci| src | [PixelMap](#pixelmap7) | 是 | 源PixelMap对象 | 565e41f4b71Sopenharmony_ci| dst | [PixelMap](#pixelmap7) | 是 | 目标PixelMap对象 | 566e41f4b71Sopenharmony_ci 567e41f4b71Sopenharmony_ci**返回值:** 568e41f4b71Sopenharmony_ci 569e41f4b71Sopenharmony_ci| 类型 | 说明 | 570e41f4b71Sopenharmony_ci| -------------------------------- | ----------------------------------------------------------------------- | 571e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 572e41f4b71Sopenharmony_ci 573e41f4b71Sopenharmony_ci**错误码:** 574e41f4b71Sopenharmony_ci 575e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 576e41f4b71Sopenharmony_ci 577e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 578e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 579e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed| 580e41f4b71Sopenharmony_ci| 62980103 | The image data is not supported | 581e41f4b71Sopenharmony_ci| 62980246 | Failed to read the pixelMap | 582e41f4b71Sopenharmony_ci| 62980248 | Pixelmap not allow modify | 583e41f4b71Sopenharmony_ci 584e41f4b71Sopenharmony_ci**示例:** 585e41f4b71Sopenharmony_ci 586e41f4b71Sopenharmony_ci```ts 587e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 588e41f4b71Sopenharmony_ci 589e41f4b71Sopenharmony_ciasync function Demo() { 590e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(16); // 16为需要创建的像素buffer大小,取值为:height * width *4 591e41f4b71Sopenharmony_ci let bufferArr = new Uint8Array(color); 592e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i += 4) { 593e41f4b71Sopenharmony_ci bufferArr[i] = 255; 594e41f4b71Sopenharmony_ci bufferArr[i+1] = 255; 595e41f4b71Sopenharmony_ci bufferArr[i+2] = 122; 596e41f4b71Sopenharmony_ci bufferArr[i+3] = 122; 597e41f4b71Sopenharmony_ci } 598e41f4b71Sopenharmony_ci let optsForUnpre: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 2, width: 2 } , alphaType: 3} 599e41f4b71Sopenharmony_ci let srcPixelmap = image.createPixelMapSync(color, optsForUnpre); 600e41f4b71Sopenharmony_ci let optsForPre: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 2, width: 2 } , alphaType: 2} 601e41f4b71Sopenharmony_ci let dstPixelMap = image.createPixelMapSync(optsForPre); 602e41f4b71Sopenharmony_ci image.createPremultipliedPixelMap(srcPixelmap, dstPixelMap).then(() => { 603e41f4b71Sopenharmony_ci console.info('Succeeded in converting pixelmap.'); 604e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 605e41f4b71Sopenharmony_ci console.error(`Failed to convert pixelmap. code is ${error.code}, message is ${error.message}`); 606e41f4b71Sopenharmony_ci }) 607e41f4b71Sopenharmony_ci} 608e41f4b71Sopenharmony_ci``` 609e41f4b71Sopenharmony_ci 610e41f4b71Sopenharmony_ci## image.createUnpremultipliedPixelMap<sup>12+</sup> 611e41f4b71Sopenharmony_ci 612e41f4b71Sopenharmony_cicreateUnpremultipliedPixelMap(src: PixelMap, dst: PixelMap, callback: AsyncCallback\<void>): void 613e41f4b71Sopenharmony_ci 614e41f4b71Sopenharmony_ci将PixelMap的透明通道预乘模式转变为非预乘模式,转换后的数据存入目标PixelMap,通过回调函数返回结果。 615e41f4b71Sopenharmony_ci 616e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 617e41f4b71Sopenharmony_ci 618e41f4b71Sopenharmony_ci**参数:** 619e41f4b71Sopenharmony_ci 620e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 621e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------ | ---- | -------------------------- | 622e41f4b71Sopenharmony_ci| src | [PixelMap](#pixelmap7) | 是 | 源PixelMap对象。 | 623e41f4b71Sopenharmony_ci| dst | [PixelMap](#pixelmap7) | 是 | 目标PixelMap对象。| 624e41f4b71Sopenharmony_ci|callback | AsyncCallback\<void> | 是 | 回调函数,当创建PixelMap成功,err为undefined,否则为错误对象。| 625e41f4b71Sopenharmony_ci 626e41f4b71Sopenharmony_ci**错误码:** 627e41f4b71Sopenharmony_ci 628e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 629e41f4b71Sopenharmony_ci 630e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 631e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 632e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed| 633e41f4b71Sopenharmony_ci| 62980103 | The image data is not supported | 634e41f4b71Sopenharmony_ci| 62980246 | Failed to read the pixelMap | 635e41f4b71Sopenharmony_ci| 62980248 | Pixelmap not allow modify | 636e41f4b71Sopenharmony_ci 637e41f4b71Sopenharmony_ci**示例:** 638e41f4b71Sopenharmony_ci 639e41f4b71Sopenharmony_ci```ts 640e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 641e41f4b71Sopenharmony_ci 642e41f4b71Sopenharmony_ciasync function Demo() { 643e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(16); // 16为需要创建的像素buffer大小,取值为:height * width *4 644e41f4b71Sopenharmony_ci let bufferArr = new Uint8Array(color); 645e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i += 4) { 646e41f4b71Sopenharmony_ci bufferArr[i] = 255; 647e41f4b71Sopenharmony_ci bufferArr[i+1] = 255; 648e41f4b71Sopenharmony_ci bufferArr[i+2] = 122; 649e41f4b71Sopenharmony_ci bufferArr[i+3] = 122; 650e41f4b71Sopenharmony_ci } 651e41f4b71Sopenharmony_ci let optsForPre: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 2, width: 2 } , alphaType: 2} 652e41f4b71Sopenharmony_ci let srcPixelmap = image.createPixelMapSync(color, optsForPre); 653e41f4b71Sopenharmony_ci let optsForUnpre: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 2, width: 2 } , alphaType: 3} 654e41f4b71Sopenharmony_ci let dstPixelMap = image.createPixelMapSync(optsForUnpre); 655e41f4b71Sopenharmony_ci image.createUnpremultipliedPixelMap(srcPixelmap, dstPixelMap, (error: BusinessError) => { 656e41f4b71Sopenharmony_ci if(error) { 657e41f4b71Sopenharmony_ci console.error(`Failed to convert pixelmap. code is ${error.code}, message is ${error.message}`); 658e41f4b71Sopenharmony_ci return; 659e41f4b71Sopenharmony_ci } else { 660e41f4b71Sopenharmony_ci console.info('Succeeded in converting pixelmap.'); 661e41f4b71Sopenharmony_ci } 662e41f4b71Sopenharmony_ci }) 663e41f4b71Sopenharmony_ci} 664e41f4b71Sopenharmony_ci``` 665e41f4b71Sopenharmony_ci 666e41f4b71Sopenharmony_ci## image.createUnpremultipliedPixelMap<sup>12+</sup> 667e41f4b71Sopenharmony_ci 668e41f4b71Sopenharmony_cicreateUnpremultipliedPixelMap(src: PixelMap, dst: PixelMap): Promise\<void> 669e41f4b71Sopenharmony_ci 670e41f4b71Sopenharmony_ci将PixelMap的透明通道预乘模式转变为非预乘模式,转换后的数据存入目标PixelMap,通过Promise返回结果。 671e41f4b71Sopenharmony_ci 672e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 673e41f4b71Sopenharmony_ci 674e41f4b71Sopenharmony_ci**参数:** 675e41f4b71Sopenharmony_ci 676e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 677e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------ | ---- | ---------------------------------------------------------------- | 678e41f4b71Sopenharmony_ci| src | [PixelMap](#pixelmap7) | 是 | 源PixelMap对象。 | 679e41f4b71Sopenharmony_ci| dst | [PixelMap](#pixelmap7) | 是 | 目标PixelMap对象。 | 680e41f4b71Sopenharmony_ci 681e41f4b71Sopenharmony_ci**返回值:** 682e41f4b71Sopenharmony_ci 683e41f4b71Sopenharmony_ci| 类型 | 说明 | 684e41f4b71Sopenharmony_ci| -------------------------------- | ----------------------------------------------------------------------- | 685e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 686e41f4b71Sopenharmony_ci 687e41f4b71Sopenharmony_ci**错误码:** 688e41f4b71Sopenharmony_ci 689e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 690e41f4b71Sopenharmony_ci 691e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 692e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 693e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed| 694e41f4b71Sopenharmony_ci| 62980103 | The image data is not supported | 695e41f4b71Sopenharmony_ci| 62980246 | Failed to read the pixelMap. | 696e41f4b71Sopenharmony_ci| 62980248 | Pixelmap not allow modify. | 697e41f4b71Sopenharmony_ci 698e41f4b71Sopenharmony_ci**示例:** 699e41f4b71Sopenharmony_ci 700e41f4b71Sopenharmony_ci```ts 701e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 702e41f4b71Sopenharmony_ci 703e41f4b71Sopenharmony_ciasync function Demo() { 704e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(16); // 16为需要创建的像素buffer大小,取值为:height * width *4 705e41f4b71Sopenharmony_ci let bufferArr = new Uint8Array(color); 706e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i += 4) { 707e41f4b71Sopenharmony_ci bufferArr[i] = 255; 708e41f4b71Sopenharmony_ci bufferArr[i+1] = 255; 709e41f4b71Sopenharmony_ci bufferArr[i+2] = 122; 710e41f4b71Sopenharmony_ci bufferArr[i+3] = 122; 711e41f4b71Sopenharmony_ci } 712e41f4b71Sopenharmony_ci let optsForPre: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 2, width: 2 } , alphaType: 2} 713e41f4b71Sopenharmony_ci let srcPixelmap = image.createPixelMapSync(color, optsForPre); 714e41f4b71Sopenharmony_ci let optsForUnpre: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 2, width: 2 } , alphaType: 3} 715e41f4b71Sopenharmony_ci let dstPixelMap = image.createPixelMapSync(optsForUnpre); 716e41f4b71Sopenharmony_ci image.createUnpremultipliedPixelMap(srcPixelmap, dstPixelMap).then(() => { 717e41f4b71Sopenharmony_ci console.info('Succeeded in converting pixelmap.'); 718e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 719e41f4b71Sopenharmony_ci console.error(`Failed to convert pixelmap. code is ${error.code}, message is ${error.message}`); 720e41f4b71Sopenharmony_ci }) 721e41f4b71Sopenharmony_ci} 722e41f4b71Sopenharmony_ci``` 723e41f4b71Sopenharmony_ci 724e41f4b71Sopenharmony_ci 725e41f4b71Sopenharmony_ci## Picture<sup>13+</sup> 726e41f4b71Sopenharmony_ci 727e41f4b71Sopenharmony_ci一些包含特殊信息的图片可以解码为多图对象,多图对象一般包含主图、辅助图和元数据。其中主图包含图像的大部分信息,主要用于显示图像内容;辅助图用于存储与主图相关但不同的数据,展示图像更丰富的信息;元数据一般用来存储关于图像文件的信息。多图对象类用于读取或写入多图对象。在调用Picture的方法前,需要先通过[createPicture](#imagecreatepicture13)创建一个Picture实例。 728e41f4b71Sopenharmony_ci 729e41f4b71Sopenharmony_ci### 属性 730e41f4b71Sopenharmony_ci 731e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 732e41f4b71Sopenharmony_ci 733e41f4b71Sopenharmony_ci### getMainPixelmap<sup>13+</sup> 734e41f4b71Sopenharmony_ci 735e41f4b71Sopenharmony_cigetMainPixelmap(): PixelMap 736e41f4b71Sopenharmony_ci 737e41f4b71Sopenharmony_ci获取主图的pixelmap。 738e41f4b71Sopenharmony_ci 739e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 740e41f4b71Sopenharmony_ci 741e41f4b71Sopenharmony_ci**返回值:** 742e41f4b71Sopenharmony_ci 743e41f4b71Sopenharmony_ci| 类型 | 说明 | 744e41f4b71Sopenharmony_ci| ------------------- | ---------------------- | 745e41f4b71Sopenharmony_ci| [PixelMap](#pixelmap7) | 同步返回PixelMap对象。 | 746e41f4b71Sopenharmony_ci 747e41f4b71Sopenharmony_ci**示例:** 748e41f4b71Sopenharmony_ci 749e41f4b71Sopenharmony_ci```ts 750e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 751e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 752e41f4b71Sopenharmony_ci 753e41f4b71Sopenharmony_ciasync function GetMainPixelmap() { 754e41f4b71Sopenharmony_ci let funcName = "getMainPixelmap"; 755e41f4b71Sopenharmony_ci if (pictureObj != null) { 756e41f4b71Sopenharmony_ci let mainPixelmap: image.PixelMap = pictureObj.getMainPixelmap(); 757e41f4b71Sopenharmony_ci if (mainPixelmap != null) { 758e41f4b71Sopenharmony_ci mainPixelmap.getImageInfo().then((imageInfo: image.ImageInfo) => { 759e41f4b71Sopenharmony_ci if (imageInfo != null) { 760e41f4b71Sopenharmony_ci console.info('GetMainPixelmap information height:' + imageInfo.size.height + ' width:' + imageInfo.size.width); 761e41f4b71Sopenharmony_ci } 762e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 763e41f4b71Sopenharmony_ci console.error(funcName, 'Failed error.code: ${error.code} ,error.message: ${error.message}'); 764e41f4b71Sopenharmony_ci }); 765e41f4b71Sopenharmony_ci } 766e41f4b71Sopenharmony_ci } else { 767e41f4b71Sopenharmony_ci console.info('PictureObj is null'); 768e41f4b71Sopenharmony_ci } 769e41f4b71Sopenharmony_ci} 770e41f4b71Sopenharmony_ci``` 771e41f4b71Sopenharmony_ci 772e41f4b71Sopenharmony_ci### getHdrComposedPixelmap<sup>13+</sup> 773e41f4b71Sopenharmony_ci 774e41f4b71Sopenharmony_cigetHdrComposedPixelmap(): Promise\<PixelMap> 775e41f4b71Sopenharmony_ci 776e41f4b71Sopenharmony_ci合成hdr图并获取hdr图的pixelmap,使用Promise形式返回结果。 777e41f4b71Sopenharmony_ci 778e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 779e41f4b71Sopenharmony_ci 780e41f4b71Sopenharmony_ci**返回值:** 781e41f4b71Sopenharmony_ci 782e41f4b71Sopenharmony_ci| 类型 | 说明 | 783e41f4b71Sopenharmony_ci| ----------------------------- | --------------------------- | 784e41f4b71Sopenharmony_ci| Promise\<[PixelMap](#pixelmap7)> | Promise对象,返回PixelMap。 | 785e41f4b71Sopenharmony_ci 786e41f4b71Sopenharmony_ci**错误码:** 787e41f4b71Sopenharmony_ci 788e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 789e41f4b71Sopenharmony_ci 790e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 791e41f4b71Sopenharmony_ci| -------- | ---------------------- | 792e41f4b71Sopenharmony_ci| 7600901 | Unknown error. | 793e41f4b71Sopenharmony_ci| 7600201 | Unsupported operation. | 794e41f4b71Sopenharmony_ci 795e41f4b71Sopenharmony_ci**示例:** 796e41f4b71Sopenharmony_ci 797e41f4b71Sopenharmony_ci```ts 798e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 799e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 800e41f4b71Sopenharmony_ci 801e41f4b71Sopenharmony_ciasync function GetHdrComposedPixelmap() { 802e41f4b71Sopenharmony_ci let funcName = "getHdrComposedPixelmap"; 803e41f4b71Sopenharmony_ci if (pictureObj != null) { //图片包含Hdr图 804e41f4b71Sopenharmony_ci let hdrComposedPixelmap: image.PixelMap = await pictureObj.getHdrComposedPixelmap(); 805e41f4b71Sopenharmony_ci if (hdrComposedPixelmap != null) { 806e41f4b71Sopenharmony_ci hdrComposedPixelmap.getImageInfo().then((imageInfo: image.ImageInfo) => { 807e41f4b71Sopenharmony_ci if (imageInfo != null) { 808e41f4b71Sopenharmony_ci console.info('GetHdrComposedPixelmap information height:' + imageInfo.size.height + ' width:' + imageInfo.size.width); 809e41f4b71Sopenharmony_ci } 810e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 811e41f4b71Sopenharmony_ci console.error(funcName, 'Failed error.code: ${error.code} ,error.message: ${error.message}'); 812e41f4b71Sopenharmony_ci }); 813e41f4b71Sopenharmony_ci } 814e41f4b71Sopenharmony_ci } else { 815e41f4b71Sopenharmony_ci console.info('PictureObj is null'); 816e41f4b71Sopenharmony_ci } 817e41f4b71Sopenharmony_ci} 818e41f4b71Sopenharmony_ci``` 819e41f4b71Sopenharmony_ci 820e41f4b71Sopenharmony_ci### getGainmapPixelmap<sup>13+</sup> 821e41f4b71Sopenharmony_ci 822e41f4b71Sopenharmony_cigetGainmapPixelmap(): PixelMap | null 823e41f4b71Sopenharmony_ci 824e41f4b71Sopenharmony_ci获取增益图的pixelmap。 825e41f4b71Sopenharmony_ci 826e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 827e41f4b71Sopenharmony_ci 828e41f4b71Sopenharmony_ci**返回值:** 829e41f4b71Sopenharmony_ci 830e41f4b71Sopenharmony_ci| 类型 | 说明 | 831e41f4b71Sopenharmony_ci| ------------------------- | -------------------------------------- | 832e41f4b71Sopenharmony_ci| [PixelMap](#pixelmap7) \| null | 返回Pixelmap对象,如果没有则返回null。 | 833e41f4b71Sopenharmony_ci 834e41f4b71Sopenharmony_ci**示例:** 835e41f4b71Sopenharmony_ci 836e41f4b71Sopenharmony_ci```ts 837e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 838e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 839e41f4b71Sopenharmony_ci 840e41f4b71Sopenharmony_ciasync function GetGainmapPixelmap() { 841e41f4b71Sopenharmony_ci let funcName = "getGainmapPixelmap"; 842e41f4b71Sopenharmony_ci if (pictureObj != null) { //图片包含增益图 843e41f4b71Sopenharmony_ci let gainPixelmap: image.PixelMap | null = pictureObj.getGainmapPixelmap(); 844e41f4b71Sopenharmony_ci if (gainPixelmap != null) { 845e41f4b71Sopenharmony_ci gainPixelmap.getImageInfo().then((imageInfo: image.ImageInfo) => { 846e41f4b71Sopenharmony_ci if (imageInfo != null) { 847e41f4b71Sopenharmony_ci console.info('GetGainmapPixelmap information height:' + imageInfo.size.height + ' width:' + imageInfo.size.width); 848e41f4b71Sopenharmony_ci } else { 849e41f4b71Sopenharmony_ci console.info('GainPixelmap is null'); 850e41f4b71Sopenharmony_ci } 851e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 852e41f4b71Sopenharmony_ci console.error(funcName, 'Failed error.code: ${error.code} ,error.message: ${error.message}'); 853e41f4b71Sopenharmony_ci }); 854e41f4b71Sopenharmony_ci } else { 855e41f4b71Sopenharmony_ci console.info('GainPixelmap is null'); 856e41f4b71Sopenharmony_ci } 857e41f4b71Sopenharmony_ci } else { 858e41f4b71Sopenharmony_ci console.info('PictureObj is null'); 859e41f4b71Sopenharmony_ci } 860e41f4b71Sopenharmony_ci} 861e41f4b71Sopenharmony_ci``` 862e41f4b71Sopenharmony_ci 863e41f4b71Sopenharmony_ci### setAuxiliaryPicture<sup>13+</sup> 864e41f4b71Sopenharmony_ci 865e41f4b71Sopenharmony_cisetAuxiliaryPicture(type: AuxiliaryPictureType, auxiliaryPicture: AuxiliaryPicture): void 866e41f4b71Sopenharmony_ci 867e41f4b71Sopenharmony_ci设置辅助图。 868e41f4b71Sopenharmony_ci 869e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 870e41f4b71Sopenharmony_ci 871e41f4b71Sopenharmony_ci**参数:** 872e41f4b71Sopenharmony_ci 873e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 874e41f4b71Sopenharmony_ci| ---------------- | -------------------- | ---- | ------------ | 875e41f4b71Sopenharmony_ci| type | [AuxiliaryPictureType](#auxiliarypicturetype13) | 是 | 辅助图类型。 | 876e41f4b71Sopenharmony_ci| auxiliaryPicture | [AuxiliaryPicture](#auxiliarypicture13) | 是 | 辅助图对象。 | 877e41f4b71Sopenharmony_ci 878e41f4b71Sopenharmony_ci**错误码:** 879e41f4b71Sopenharmony_ci 880e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 881e41f4b71Sopenharmony_ci 882e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 883e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 884e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 885e41f4b71Sopenharmony_ci 886e41f4b71Sopenharmony_ci**示例:** 887e41f4b71Sopenharmony_ci 888e41f4b71Sopenharmony_ci```ts 889e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 890e41f4b71Sopenharmony_ci 891e41f4b71Sopenharmony_ciasync function SetAuxiliaryPicture() { 892e41f4b71Sopenharmony_ci const context = getContext(); 893e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 894e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("hdr.jpg");//需要支持hdr的图片 895e41f4b71Sopenharmony_ci let ops: image.SourceOptions = { 896e41f4b71Sopenharmony_ci sourceDensity: 98, 897e41f4b71Sopenharmony_ci } 898e41f4b71Sopenharmony_ci let imageSource: image.ImageSource = image.createImageSource(rawFile.buffer as ArrayBuffer, ops); 899e41f4b71Sopenharmony_ci let pixelMap: image.PixelMap = await imageSource.createPixelMap(); 900e41f4b71Sopenharmony_ci let auxPicture: image.Picture = image.createPicture(pixelMap); 901e41f4b71Sopenharmony_ci if (auxPicture != null) { 902e41f4b71Sopenharmony_ci console.info('Create picture succeeded'); 903e41f4b71Sopenharmony_ci } else { 904e41f4b71Sopenharmony_ci console.info('Create picture failed'); 905e41f4b71Sopenharmony_ci } 906e41f4b71Sopenharmony_ci 907e41f4b71Sopenharmony_ci if (pictureObj != null) { 908e41f4b71Sopenharmony_ci let type: image.AuxiliaryPictureType = image.AuxiliaryPictureType.GAINMAP; 909e41f4b71Sopenharmony_ci let auxPictureObj: image.AuxiliaryPicture | null = await auxPicture.getAuxiliaryPicture(type); 910e41f4b71Sopenharmony_ci if (auxPictureObj != null) { 911e41f4b71Sopenharmony_ci pictureObj.setAuxiliaryPicture(type, auxPictureObj); 912e41f4b71Sopenharmony_ci } 913e41f4b71Sopenharmony_ci } 914e41f4b71Sopenharmony_ci} 915e41f4b71Sopenharmony_ci``` 916e41f4b71Sopenharmony_ci 917e41f4b71Sopenharmony_ci### getAuxiliaryPicture<sup>13+</sup> 918e41f4b71Sopenharmony_ci 919e41f4b71Sopenharmony_cigetAuxiliaryPicture(type: AuxiliaryPictureType): AuxiliaryPicture | null 920e41f4b71Sopenharmony_ci 921e41f4b71Sopenharmony_ci根据类型获取辅助图。 922e41f4b71Sopenharmony_ci 923e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 924e41f4b71Sopenharmony_ci 925e41f4b71Sopenharmony_ci**参数:** 926e41f4b71Sopenharmony_ci 927e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 928e41f4b71Sopenharmony_ci| ------ | -------------------- | ---- | ------------ | 929e41f4b71Sopenharmony_ci| type | [AuxiliaryPictureType](#auxiliarypicturetype13) | 是 | 辅助图类型。 | 930e41f4b71Sopenharmony_ci 931e41f4b71Sopenharmony_ci**返回值:** 932e41f4b71Sopenharmony_ci 933e41f4b71Sopenharmony_ci| 类型 | 说明 | 934e41f4b71Sopenharmony_ci| ---------------------- | ---------------------------------------------- | 935e41f4b71Sopenharmony_ci| [AuxiliaryPicture](#auxiliarypicture13) \| null | 返回AuxiliaryPicture对象,如果没有则返回null。 | 936e41f4b71Sopenharmony_ci 937e41f4b71Sopenharmony_ci**错误码:** 938e41f4b71Sopenharmony_ci 939e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 940e41f4b71Sopenharmony_ci 941e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 942e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 943e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 944e41f4b71Sopenharmony_ci 945e41f4b71Sopenharmony_ci**示例:** 946e41f4b71Sopenharmony_ci 947e41f4b71Sopenharmony_ci```ts 948e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 949e41f4b71Sopenharmony_ci 950e41f4b71Sopenharmony_ciasync function GetAuxiliaryPicture() { 951e41f4b71Sopenharmony_ci if (pictureObj != null) { 952e41f4b71Sopenharmony_ci let type: image.AuxiliaryPictureType = image.AuxiliaryPictureType.GAINMAP; 953e41f4b71Sopenharmony_ci let auxPictureObj: image.AuxiliaryPicture | null = pictureObj.getAuxiliaryPicture(type); 954e41f4b71Sopenharmony_ci } 955e41f4b71Sopenharmony_ci} 956e41f4b71Sopenharmony_ci``` 957e41f4b71Sopenharmony_ci 958e41f4b71Sopenharmony_ci### setMetadata<sup>13+</sup> 959e41f4b71Sopenharmony_ci 960e41f4b71Sopenharmony_cisetMetadata(metadataType: MetadataType, metadata: Metadata): Promise\<void> 961e41f4b71Sopenharmony_ci 962e41f4b71Sopenharmony_ci设置主图的元数据。 963e41f4b71Sopenharmony_ci 964e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 965e41f4b71Sopenharmony_ci 966e41f4b71Sopenharmony_ci**参数:** 967e41f4b71Sopenharmony_ci 968e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 969e41f4b71Sopenharmony_ci| ------------ | ------------ | ---- | ------------ | 970e41f4b71Sopenharmony_ci| metadataType | [MetadataType](#metadatatype13) | 是 | 元数据类型。 | 971e41f4b71Sopenharmony_ci| metadata | [Metadata](#metadata13) | 是 | 元数据对象。 | 972e41f4b71Sopenharmony_ci 973e41f4b71Sopenharmony_ci**返回值:** 974e41f4b71Sopenharmony_ci 975e41f4b71Sopenharmony_ci| 类型 | 说明 | 976e41f4b71Sopenharmony_ci| -------------- | -------------------------------------- | 977e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 978e41f4b71Sopenharmony_ci 979e41f4b71Sopenharmony_ci**错误码:** 980e41f4b71Sopenharmony_ci 981e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 982e41f4b71Sopenharmony_ci 983e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 984e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 985e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 986e41f4b71Sopenharmony_ci| 7600202 | Unsupported metadata. Possible causes: Unsupported metadata type. | 987e41f4b71Sopenharmony_ci 988e41f4b71Sopenharmony_ci**示例:** 989e41f4b71Sopenharmony_ci 990e41f4b71Sopenharmony_ci```ts 991e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 992e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 993e41f4b71Sopenharmony_ci 994e41f4b71Sopenharmony_ciasync function SetPictureObjMetadata() { 995e41f4b71Sopenharmony_ci const exifContext = getContext(); 996e41f4b71Sopenharmony_ci const exifResourceMgr = exifContext.resourceManager; 997e41f4b71Sopenharmony_ci const exifRawFile = await exifResourceMgr.getRawFileContent("exif.jpg");//含有exif metadata的图片 998e41f4b71Sopenharmony_ci let exifOps: image.SourceOptions = { 999e41f4b71Sopenharmony_ci sourceDensity: 98, 1000e41f4b71Sopenharmony_ci } 1001e41f4b71Sopenharmony_ci let exifImageSource: image.ImageSource = image.createImageSource(exifRawFile.buffer as ArrayBuffer, exifOps); 1002e41f4b71Sopenharmony_ci let exifCommodityPixelMap: image.PixelMap = await exifImageSource.createPixelMap(); 1003e41f4b71Sopenharmony_ci let exifPictureObj: image.Picture = image.createPicture(exifCommodityPixelMap); 1004e41f4b71Sopenharmony_ci if (exifPictureObj != null) { 1005e41f4b71Sopenharmony_ci console.info('Create picture succeeded'); 1006e41f4b71Sopenharmony_ci } else { 1007e41f4b71Sopenharmony_ci console.info('Create picture failed'); 1008e41f4b71Sopenharmony_ci } 1009e41f4b71Sopenharmony_ci 1010e41f4b71Sopenharmony_ci if (pictureObj != null) { 1011e41f4b71Sopenharmony_ci let metadataType: image.MetadataType = image.MetadataType.EXIF_METADATA; 1012e41f4b71Sopenharmony_ci let exifMetaData: image.Metadata = await exifPictureObj.getMetadata(metadataType); 1013e41f4b71Sopenharmony_ci pictureObj.setMetadata(metadataType, exifMetaData).then(() => { 1014e41f4b71Sopenharmony_ci console.info('Set metadata success'); 1015e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1016e41f4b71Sopenharmony_ci console.error('Failed to set metadata. error.code: ' +JSON.stringify(error.code) + ' ,error.message:' + JSON.stringify(error.message)); 1017e41f4b71Sopenharmony_ci }); 1018e41f4b71Sopenharmony_ci } else { 1019e41f4b71Sopenharmony_ci console.info('PictureObj is null'); 1020e41f4b71Sopenharmony_ci } 1021e41f4b71Sopenharmony_ci} 1022e41f4b71Sopenharmony_ci``` 1023e41f4b71Sopenharmony_ci 1024e41f4b71Sopenharmony_ci### getMetadata<sup>13+</sup> 1025e41f4b71Sopenharmony_ci 1026e41f4b71Sopenharmony_cigetMetadata(metadataType: MetadataType): Promise\<Metadata> 1027e41f4b71Sopenharmony_ci 1028e41f4b71Sopenharmony_ci获取主图的元数据。 1029e41f4b71Sopenharmony_ci 1030e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1031e41f4b71Sopenharmony_ci 1032e41f4b71Sopenharmony_ci**参数:** 1033e41f4b71Sopenharmony_ci 1034e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1035e41f4b71Sopenharmony_ci| ------------ | ------------ | ---- | ------------ | 1036e41f4b71Sopenharmony_ci| metadataType | [MetadataType](#metadatatype13) | 是 | 元数据类型。 | 1037e41f4b71Sopenharmony_ci 1038e41f4b71Sopenharmony_ci**返回值:** 1039e41f4b71Sopenharmony_ci 1040e41f4b71Sopenharmony_ci| 类型 | 说明 | 1041e41f4b71Sopenharmony_ci| ------------------ | ------------------------- | 1042e41f4b71Sopenharmony_ci| Promise\<[Metadata](#metadata13)> | Promise对象。返回元数据。 | 1043e41f4b71Sopenharmony_ci 1044e41f4b71Sopenharmony_ci**错误码:** 1045e41f4b71Sopenharmony_ci 1046e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 1047e41f4b71Sopenharmony_ci 1048e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1049e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 1050e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 1051e41f4b71Sopenharmony_ci| 7600202 | Unsupported metadata. Possible causes: Unsupported metadata type. | 1052e41f4b71Sopenharmony_ci 1053e41f4b71Sopenharmony_ci**示例:** 1054e41f4b71Sopenharmony_ci 1055e41f4b71Sopenharmony_ci```ts 1056e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1057e41f4b71Sopenharmony_ci 1058e41f4b71Sopenharmony_ciasync function GetPictureObjMetadataProperties() { 1059e41f4b71Sopenharmony_ci if (pictureObj != null) { 1060e41f4b71Sopenharmony_ci let metadataType: image.MetadataType = image.MetadataType.EXIF_METADATA; 1061e41f4b71Sopenharmony_ci let pictureObjMetaData: image.Metadata = await pictureObj.getMetadata(metadataType); 1062e41f4b71Sopenharmony_ci if (pictureObjMetaData != null) { 1063e41f4b71Sopenharmony_ci console.info('get picture metadata success'); 1064e41f4b71Sopenharmony_ci } else { 1065e41f4b71Sopenharmony_ci console.info('get picture metadata is failed'); 1066e41f4b71Sopenharmony_ci } 1067e41f4b71Sopenharmony_ci } else { 1068e41f4b71Sopenharmony_ci console.info(" pictureObj is null"); 1069e41f4b71Sopenharmony_ci } 1070e41f4b71Sopenharmony_ci} 1071e41f4b71Sopenharmony_ci``` 1072e41f4b71Sopenharmony_ci 1073e41f4b71Sopenharmony_ci### marshalling<sup>13+</sup> 1074e41f4b71Sopenharmony_ci 1075e41f4b71Sopenharmony_cimarshalling(sequence: rpc.MessageSequence): void 1076e41f4b71Sopenharmony_ci 1077e41f4b71Sopenharmony_ci将picture序列化后写入MessageSequence。 1078e41f4b71Sopenharmony_ci 1079e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1080e41f4b71Sopenharmony_ci 1081e41f4b71Sopenharmony_ci**参数:** 1082e41f4b71Sopenharmony_ci 1083e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1084e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------------- | ---- | ------------------------- | 1085e41f4b71Sopenharmony_ci| sequence | [rpc.MessageSequence](../apis-ipc-kit/js-apis-rpc.md#messagesequence9) | 是 | 新创建的MessageSequence。 | 1086e41f4b71Sopenharmony_ci 1087e41f4b71Sopenharmony_ci**错误码:** 1088e41f4b71Sopenharmony_ci 1089e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 1090e41f4b71Sopenharmony_ci 1091e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1092e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 1093e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 1094e41f4b71Sopenharmony_ci| 62980097 | IPC error. | 1095e41f4b71Sopenharmony_ci 1096e41f4b71Sopenharmony_ci**示例:** 1097e41f4b71Sopenharmony_ci 1098e41f4b71Sopenharmony_ci```ts 1099e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1100e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1101e41f4b71Sopenharmony_ciimport { rpc } from '@kit.IPCKit'; 1102e41f4b71Sopenharmony_ci 1103e41f4b71Sopenharmony_ciclass MySequence implements rpc.Parcelable { 1104e41f4b71Sopenharmony_ci picture: image.Picture | null = null; 1105e41f4b71Sopenharmony_ci constructor(conPicture: image.Picture) { 1106e41f4b71Sopenharmony_ci this.picture = conPicture; 1107e41f4b71Sopenharmony_ci } 1108e41f4b71Sopenharmony_ci marshalling(messageSequence: rpc.MessageSequence) { 1109e41f4b71Sopenharmony_ci if(this.picture != null) { 1110e41f4b71Sopenharmony_ci this.picture.marshalling(messageSequence); 1111e41f4b71Sopenharmony_ci console.info('Marshalling success !'); 1112e41f4b71Sopenharmony_ci return true; 1113e41f4b71Sopenharmony_ci } else { 1114e41f4b71Sopenharmony_ci console.info('Marshalling failed !'); 1115e41f4b71Sopenharmony_ci return false; 1116e41f4b71Sopenharmony_ci } 1117e41f4b71Sopenharmony_ci } 1118e41f4b71Sopenharmony_ci unmarshalling(messageSequence : rpc.MessageSequence) { 1119e41f4b71Sopenharmony_ci this.picture = image.createPictureFromParcel(messageSequence); 1120e41f4b71Sopenharmony_ci this.picture.getMainPixelmap().getImageInfo().then((imageInfo : image.ImageInfo) => { 1121e41f4b71Sopenharmony_ci console.info('Unmarshalling to get mainPixelmap information height:' + imageInfo.size.height + ' width:' + imageInfo.size.width); 1122e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1123e41f4b71Sopenharmony_ci console.error('Unmarshalling failed error.code: ${error.code} ,error.message: ${error.message}'); 1124e41f4b71Sopenharmony_ci }); 1125e41f4b71Sopenharmony_ci return true; 1126e41f4b71Sopenharmony_ci } 1127e41f4b71Sopenharmony_ci} 1128e41f4b71Sopenharmony_ci 1129e41f4b71Sopenharmony_ciasync function Marshalling_UnMarshalling() { 1130e41f4b71Sopenharmony_ci if (pictureObj != null) { 1131e41f4b71Sopenharmony_ci let parcelable: MySequence = new MySequence(pictureObj); 1132e41f4b71Sopenharmony_ci let data: rpc.MessageSequence = rpc.MessageSequence.create(); 1133e41f4b71Sopenharmony_ci // marshalling 1134e41f4b71Sopenharmony_ci data.writeParcelable(parcelable); 1135e41f4b71Sopenharmony_ci let ret: MySequence = new MySequence(pictureObj); 1136e41f4b71Sopenharmony_ci // unmarshalling 1137e41f4b71Sopenharmony_ci data.readParcelable(ret); 1138e41f4b71Sopenharmony_ci } else { 1139e41f4b71Sopenharmony_ci console.info('PictureObj is null'); 1140e41f4b71Sopenharmony_ci } 1141e41f4b71Sopenharmony_ci} 1142e41f4b71Sopenharmony_ci``` 1143e41f4b71Sopenharmony_ci 1144e41f4b71Sopenharmony_ci### release<sup>13+</sup> 1145e41f4b71Sopenharmony_ci 1146e41f4b71Sopenharmony_cirelease(): void 1147e41f4b71Sopenharmony_ci 1148e41f4b71Sopenharmony_ci释放picture对象。 1149e41f4b71Sopenharmony_ci 1150e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1151e41f4b71Sopenharmony_ci 1152e41f4b71Sopenharmony_ci**示例:** 1153e41f4b71Sopenharmony_ci 1154e41f4b71Sopenharmony_ci```ts 1155e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1156e41f4b71Sopenharmony_ci 1157e41f4b71Sopenharmony_ciasync function Release() { 1158e41f4b71Sopenharmony_ci let funcName = "Release"; 1159e41f4b71Sopenharmony_ci if (pictureObj != null) { 1160e41f4b71Sopenharmony_ci pictureObj.release(); 1161e41f4b71Sopenharmony_ci if (pictureObj.getMainPixelmap() == null) { 1162e41f4b71Sopenharmony_ci console.info(funcName, 'Success !'); 1163e41f4b71Sopenharmony_ci } else { 1164e41f4b71Sopenharmony_ci console.info(funcName, 'Failed !'); 1165e41f4b71Sopenharmony_ci } 1166e41f4b71Sopenharmony_ci } else { 1167e41f4b71Sopenharmony_ci console.info('PictureObj is null'); 1168e41f4b71Sopenharmony_ci } 1169e41f4b71Sopenharmony_ci} 1170e41f4b71Sopenharmony_ci``` 1171e41f4b71Sopenharmony_ci 1172e41f4b71Sopenharmony_ci## PixelMap<sup>7+</sup> 1173e41f4b71Sopenharmony_ci 1174e41f4b71Sopenharmony_ci图像像素类,用于读取或写入图像数据以及获取图像信息。在调用PixelMap的方法前,需要先通过[createPixelMap](#imagecreatepixelmap8)创建一个PixelMap实例。目前pixelmap序列化大小最大128MB,超过会送显失败。大小计算方式为(宽\*高\*每像素占用字节数)。 1175e41f4b71Sopenharmony_ci 1176e41f4b71Sopenharmony_ci从API version 11开始,PixelMap支持通过worker跨线程调用。当PixelMap通过[Worker](../apis-arkts/js-apis-worker.md)跨线程后,原线程的PixelMap的所有接口均不能调用,否则将报错501 服务器不具备完成请求的功能。 1177e41f4b71Sopenharmony_ci 1178e41f4b71Sopenharmony_ci在调用PixelMap的方法前,需要先通过[image.createPixelMap](#imagecreatepixelmap8)构建一个PixelMap对象。 1179e41f4b71Sopenharmony_ci 1180e41f4b71Sopenharmony_ci### 属性 1181e41f4b71Sopenharmony_ci 1182e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1183e41f4b71Sopenharmony_ci 1184e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 1185e41f4b71Sopenharmony_ci| -----------------| ------- | ---- | ---- | -------------------------- | 1186e41f4b71Sopenharmony_ci| isEditable | boolean | 是 | 否 | 设定是否图像像素可被编辑。 <br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 1187e41f4b71Sopenharmony_ci| isStrideAlignment<sup>11+</sup> | boolean | 是 | 否 | 设定图像内存是否为DMA内存。 | 1188e41f4b71Sopenharmony_ci 1189e41f4b71Sopenharmony_ci### readPixelsToBuffer<sup>7+</sup> 1190e41f4b71Sopenharmony_ci 1191e41f4b71Sopenharmony_cireadPixelsToBuffer(dst: ArrayBuffer): Promise\<void> 1192e41f4b71Sopenharmony_ci 1193e41f4b71Sopenharmony_ci读取图像像素数据,并按照PixelMap的像素格式写入缓冲区中,使用Promise形式返回。 1194e41f4b71Sopenharmony_ci 1195e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1196e41f4b71Sopenharmony_ci 1197e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1198e41f4b71Sopenharmony_ci 1199e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1200e41f4b71Sopenharmony_ci 1201e41f4b71Sopenharmony_ci**参数:** 1202e41f4b71Sopenharmony_ci 1203e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1204e41f4b71Sopenharmony_ci| ------ | ----------- | ---- | ----------------------------------------------------------------------------------------------------- | 1205e41f4b71Sopenharmony_ci| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由[getPixelBytesNumber](#getpixelbytesnumber7)接口获取。 | 1206e41f4b71Sopenharmony_ci 1207e41f4b71Sopenharmony_ci**返回值:** 1208e41f4b71Sopenharmony_ci 1209e41f4b71Sopenharmony_ci| 类型 | 说明 | 1210e41f4b71Sopenharmony_ci| -------------- | ----------------------------------------------- | 1211e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1212e41f4b71Sopenharmony_ci 1213e41f4b71Sopenharmony_ci**示例:** 1214e41f4b71Sopenharmony_ci 1215e41f4b71Sopenharmony_ci```ts 1216e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1217e41f4b71Sopenharmony_ci 1218e41f4b71Sopenharmony_ciasync function Demo() { 1219e41f4b71Sopenharmony_ci const readBuffer: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 1220e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1221e41f4b71Sopenharmony_ci pixelMap.readPixelsToBuffer(readBuffer).then(() => { 1222e41f4b71Sopenharmony_ci console.info('Succeeded in reading image pixel data.'); // 符合条件则进入 1223e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1224e41f4b71Sopenharmony_ci console.error(`Failed to read image pixel data. code is ${error.code}, message is ${error.message}`);// 不符合条件则进入 1225e41f4b71Sopenharmony_ci }) 1226e41f4b71Sopenharmony_ci } 1227e41f4b71Sopenharmony_ci} 1228e41f4b71Sopenharmony_ci``` 1229e41f4b71Sopenharmony_ci 1230e41f4b71Sopenharmony_ci### readPixelsToBuffer<sup>7+</sup> 1231e41f4b71Sopenharmony_ci 1232e41f4b71Sopenharmony_cireadPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback\<void>): void 1233e41f4b71Sopenharmony_ci 1234e41f4b71Sopenharmony_ci读取图像像素数据,并按照PixelMap的像素格式写入缓冲区中,使用callback形式返回。 1235e41f4b71Sopenharmony_ci 1236e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1237e41f4b71Sopenharmony_ci 1238e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1239e41f4b71Sopenharmony_ci 1240e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1241e41f4b71Sopenharmony_ci 1242e41f4b71Sopenharmony_ci**参数:** 1243e41f4b71Sopenharmony_ci 1244e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1245e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ----------------------------------------------------------------------------------------------------- | 1246e41f4b71Sopenharmony_ci| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由[getPixelBytesNumber](#getpixelbytesnumber7)接口获取。 | 1247e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当读取像素数据到ArrayBuffer成功,err为undefined,否则为错误对象。 | 1248e41f4b71Sopenharmony_ci 1249e41f4b71Sopenharmony_ci**示例:** 1250e41f4b71Sopenharmony_ci 1251e41f4b71Sopenharmony_ci```ts 1252e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1253e41f4b71Sopenharmony_ci 1254e41f4b71Sopenharmony_ciasync function Demo() { 1255e41f4b71Sopenharmony_ci const readBuffer: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 1256e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1257e41f4b71Sopenharmony_ci pixelMap.readPixelsToBuffer(readBuffer, (error: BusinessError, res: void) => { 1258e41f4b71Sopenharmony_ci if(error) { 1259e41f4b71Sopenharmony_ci console.error(`Failed to read image pixel data. code is ${error.code}, message is ${error.message}`);// 不符合条件则进入 1260e41f4b71Sopenharmony_ci return; 1261e41f4b71Sopenharmony_ci } else { 1262e41f4b71Sopenharmony_ci console.info('Succeeded in reading image pixel data.'); //符合条件则进入 1263e41f4b71Sopenharmony_ci } 1264e41f4b71Sopenharmony_ci }) 1265e41f4b71Sopenharmony_ci } 1266e41f4b71Sopenharmony_ci} 1267e41f4b71Sopenharmony_ci``` 1268e41f4b71Sopenharmony_ci 1269e41f4b71Sopenharmony_ci### readPixelsToBufferSync<sup>12+</sup> 1270e41f4b71Sopenharmony_ci 1271e41f4b71Sopenharmony_cireadPixelsToBufferSync(dst: ArrayBuffer): void 1272e41f4b71Sopenharmony_ci 1273e41f4b71Sopenharmony_ci以同步方式读取图像像素数据,并按照PixelMap的像素格式写入缓冲区中。 1274e41f4b71Sopenharmony_ci 1275e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1276e41f4b71Sopenharmony_ci 1277e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1278e41f4b71Sopenharmony_ci 1279e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1280e41f4b71Sopenharmony_ci 1281e41f4b71Sopenharmony_ci**参数:** 1282e41f4b71Sopenharmony_ci 1283e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1284e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ----------------------------------------------------------------------------------------------------- | 1285e41f4b71Sopenharmony_ci| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由[getPixelBytesNumber](#getpixelbytesnumber7)接口获取。 | 1286e41f4b71Sopenharmony_ci 1287e41f4b71Sopenharmony_ci**错误码:** 1288e41f4b71Sopenharmony_ci 1289e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 1290e41f4b71Sopenharmony_ci 1291e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1292e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 1293e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 1294e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 1295e41f4b71Sopenharmony_ci 1296e41f4b71Sopenharmony_ci**示例:** 1297e41f4b71Sopenharmony_ci 1298e41f4b71Sopenharmony_ci```ts 1299e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1300e41f4b71Sopenharmony_ci 1301e41f4b71Sopenharmony_ciasync function Demo() { 1302e41f4b71Sopenharmony_ci const readBuffer: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 1303e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1304e41f4b71Sopenharmony_ci pixelMap.readPixelsToBufferSync(readBuffer); 1305e41f4b71Sopenharmony_ci } 1306e41f4b71Sopenharmony_ci} 1307e41f4b71Sopenharmony_ci``` 1308e41f4b71Sopenharmony_ci 1309e41f4b71Sopenharmony_ci### readPixels<sup>7+</sup> 1310e41f4b71Sopenharmony_ci 1311e41f4b71Sopenharmony_cireadPixels(area: PositionArea): Promise\<void> 1312e41f4b71Sopenharmony_ci 1313e41f4b71Sopenharmony_ci读取PixelMap指定区域内的图像像素数据,并写入[PositionArea](#positionarea7).pixels缓冲区中,该区域由[PositionArea](#positionarea7).region指定。 1314e41f4b71Sopenharmony_ci当PixelMap的像素格式为RGB类型时,固定按照BGRA_8888格式从PixelMap读取。使用Promise形式返回。 1315e41f4b71Sopenharmony_ci 1316e41f4b71Sopenharmony_ci可用公式计算PositionArea需要申请的内存大小。 1317e41f4b71Sopenharmony_ci 1318e41f4b71Sopenharmony_ciYUV的区域计算公式:读取区域(region.size{width * height})* 1.5 (1倍的Y分量+0.25倍U分量+0.25倍V分量) 1319e41f4b71Sopenharmony_ci 1320e41f4b71Sopenharmony_ciRGBA的区域计算公式:读取区域(region.size{width * height})* 4 (1倍的R分量+1倍G分量+1倍B分量+1倍A分量) 1321e41f4b71Sopenharmony_ci 1322e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1323e41f4b71Sopenharmony_ci 1324e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1325e41f4b71Sopenharmony_ci 1326e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1327e41f4b71Sopenharmony_ci 1328e41f4b71Sopenharmony_ci**参数:** 1329e41f4b71Sopenharmony_ci 1330e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1331e41f4b71Sopenharmony_ci| ------ | ------------------------------ | ---- | ------------------------ | 1332e41f4b71Sopenharmony_ci| area | [PositionArea](#positionarea7) | 是 | 区域大小,根据区域读取。 | 1333e41f4b71Sopenharmony_ci 1334e41f4b71Sopenharmony_ci**返回值:** 1335e41f4b71Sopenharmony_ci 1336e41f4b71Sopenharmony_ci| 类型 | 说明 | 1337e41f4b71Sopenharmony_ci| :------------- | :-------------------------------------------------- | 1338e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1339e41f4b71Sopenharmony_ci 1340e41f4b71Sopenharmony_ci**示例:** 1341e41f4b71Sopenharmony_ci 1342e41f4b71Sopenharmony_ci```ts 1343e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1344e41f4b71Sopenharmony_ci 1345e41f4b71Sopenharmony_ciasync function Demo() { 1346e41f4b71Sopenharmony_ci const area: image.PositionArea = { 1347e41f4b71Sopenharmony_ci pixels: new ArrayBuffer(8), // 8为需要创建的像素buffer大小,取值为:height * width *4 1348e41f4b71Sopenharmony_ci offset: 0, 1349e41f4b71Sopenharmony_ci stride: 8, 1350e41f4b71Sopenharmony_ci region: { size: { height: 1, width: 2 }, x: 0, y: 0 } 1351e41f4b71Sopenharmony_ci }; 1352e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1353e41f4b71Sopenharmony_ci pixelMap.readPixels(area).then(() => { 1354e41f4b71Sopenharmony_ci console.info('Succeeded in reading the image data in the area.'); //符合条件则进入 1355e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1356e41f4b71Sopenharmony_ci console.error(`Failed to read the image data in the area. code is ${error.code}, message is ${error.message}`);// 不符合条件则进入 1357e41f4b71Sopenharmony_ci }) 1358e41f4b71Sopenharmony_ci } 1359e41f4b71Sopenharmony_ci} 1360e41f4b71Sopenharmony_ci 1361e41f4b71Sopenharmony_ciasync function Demo() { 1362e41f4b71Sopenharmony_ci const area: image.PositionArea = { 1363e41f4b71Sopenharmony_ci pixels: new ArrayBuffer(6), // 6为需要创建的像素buffer大小,取值为:height * width *1.5 1364e41f4b71Sopenharmony_ci offset: 0, 1365e41f4b71Sopenharmony_ci stride: 8, 1366e41f4b71Sopenharmony_ci region: { size: { height: 2, width: 2 }, x: 0, y: 0 } 1367e41f4b71Sopenharmony_ci }; 1368e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1369e41f4b71Sopenharmony_ci pixelMap.readPixels(area).then(() => { 1370e41f4b71Sopenharmony_ci console.info('Succeeded in reading the image data in the area.'); //符合条件则进入 1371e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1372e41f4b71Sopenharmony_ci console.error(`Failed to read the image data in the area. code is ${error.code}, message is ${error.message}`);// 不符合条件则进入 1373e41f4b71Sopenharmony_ci }) 1374e41f4b71Sopenharmony_ci } 1375e41f4b71Sopenharmony_ci} 1376e41f4b71Sopenharmony_ci``` 1377e41f4b71Sopenharmony_ci 1378e41f4b71Sopenharmony_ci### readPixels<sup>7+</sup> 1379e41f4b71Sopenharmony_ci 1380e41f4b71Sopenharmony_cireadPixels(area: PositionArea, callback: AsyncCallback\<void>): void 1381e41f4b71Sopenharmony_ci 1382e41f4b71Sopenharmony_ci读取PixelMap指定区域内的图像像素数据,并写入[PositionArea](#positionarea7).pixels缓冲区中,该区域由[PositionArea](#positionarea7).region指定。 1383e41f4b71Sopenharmony_ci当像素格式为RGBA 类型时,固定按照BGRA_8888格式从PixelMap读取。使用callback形式返回。 1384e41f4b71Sopenharmony_ci 1385e41f4b71Sopenharmony_ci可用公式计算PositionArea需要申请的内存大小。 1386e41f4b71Sopenharmony_ci 1387e41f4b71Sopenharmony_ciYUV的区域计算公式:读取区域(region.size{width * height})* 1.5 (1倍的Y分量+0.25倍U分量+0.25倍V分量) 1388e41f4b71Sopenharmony_ci 1389e41f4b71Sopenharmony_ciRGBA的区域计算公式:读取区域(region.size{width * height})* 4 (1倍的R分量+1倍G分量+1倍B分量+1倍A分量) 1390e41f4b71Sopenharmony_ci 1391e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1392e41f4b71Sopenharmony_ci 1393e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1394e41f4b71Sopenharmony_ci 1395e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1396e41f4b71Sopenharmony_ci 1397e41f4b71Sopenharmony_ci**参数:** 1398e41f4b71Sopenharmony_ci 1399e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1400e41f4b71Sopenharmony_ci| -------- | ------------------------------ | ---- | ------------------------------ | 1401e41f4b71Sopenharmony_ci| area | [PositionArea](#positionarea7) | 是 | 区域大小,根据区域读取。 | 1402e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当读取区域内的图片数据成功,err为undefined,否则为错误对象。 | 1403e41f4b71Sopenharmony_ci 1404e41f4b71Sopenharmony_ci**示例:** 1405e41f4b71Sopenharmony_ci 1406e41f4b71Sopenharmony_ci```ts 1407e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1408e41f4b71Sopenharmony_ci 1409e41f4b71Sopenharmony_ciasync function Demo() { 1410e41f4b71Sopenharmony_ci const area: image.PositionArea = { 1411e41f4b71Sopenharmony_ci pixels: new ArrayBuffer(8), // 8为需要创建的像素buffer大小,取值为:height * width *4 1412e41f4b71Sopenharmony_ci offset: 0, 1413e41f4b71Sopenharmony_ci stride: 8, 1414e41f4b71Sopenharmony_ci region: { size: { height: 1, width: 2 }, x: 0, y: 0 } 1415e41f4b71Sopenharmony_ci }; 1416e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1417e41f4b71Sopenharmony_ci pixelMap.readPixels(area, (error: BusinessError) => { 1418e41f4b71Sopenharmony_ci if (error) { 1419e41f4b71Sopenharmony_ci console.error(`Failed to read pixelmap from the specified area. code is ${error.code}, message is ${error.message}`); 1420e41f4b71Sopenharmony_ci return; 1421e41f4b71Sopenharmony_ci } else { 1422e41f4b71Sopenharmony_ci console.info('Succeeded in reading pixelmap from the specified area.'); 1423e41f4b71Sopenharmony_ci } 1424e41f4b71Sopenharmony_ci }) 1425e41f4b71Sopenharmony_ci } 1426e41f4b71Sopenharmony_ci} 1427e41f4b71Sopenharmony_ci 1428e41f4b71Sopenharmony_ciasync function Demo() { 1429e41f4b71Sopenharmony_ci const area: image.PositionArea = { 1430e41f4b71Sopenharmony_ci pixels: new ArrayBuffer(6), // 6为需要创建的像素buffer大小,取值为:height * width *1.5 1431e41f4b71Sopenharmony_ci offset: 0, 1432e41f4b71Sopenharmony_ci stride: 8, 1433e41f4b71Sopenharmony_ci region: { size: { height: 2, width: 2 }, x: 0, y: 0 } 1434e41f4b71Sopenharmony_ci }; 1435e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1436e41f4b71Sopenharmony_ci pixelMap.readPixels(area, (error: BusinessError) => { 1437e41f4b71Sopenharmony_ci if (error) { 1438e41f4b71Sopenharmony_ci console.error(`Failed to read pixelmap from the specified area. code is ${error.code}, message is ${error.message}`); 1439e41f4b71Sopenharmony_ci return; 1440e41f4b71Sopenharmony_ci } else { 1441e41f4b71Sopenharmony_ci console.info('Succeeded in reading pixelmap from the specified area.'); 1442e41f4b71Sopenharmony_ci } 1443e41f4b71Sopenharmony_ci }) 1444e41f4b71Sopenharmony_ci } 1445e41f4b71Sopenharmony_ci} 1446e41f4b71Sopenharmony_ci``` 1447e41f4b71Sopenharmony_ci 1448e41f4b71Sopenharmony_ci### readPixelsSync<sup>12+</sup> 1449e41f4b71Sopenharmony_ci 1450e41f4b71Sopenharmony_cireadPixelsSync(area: PositionArea): void 1451e41f4b71Sopenharmony_ci 1452e41f4b71Sopenharmony_ci以同步方式读取PixelMap指定区域内的图像像素数据,并写入[PositionArea](#positionarea7).pixels缓冲区中,该区域由[PositionArea](#positionarea7).region指定。 1453e41f4b71Sopenharmony_ci当PixelMap的像素格式为RGB类型时,固定按照BGRA_8888格式从PixelMap读取。 1454e41f4b71Sopenharmony_ci 1455e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1456e41f4b71Sopenharmony_ci 1457e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1458e41f4b71Sopenharmony_ci 1459e41f4b71Sopenharmony_ci**参数:** 1460e41f4b71Sopenharmony_ci 1461e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1462e41f4b71Sopenharmony_ci| ------ | ------------------------------ | ---- | ------------------------ | 1463e41f4b71Sopenharmony_ci| area | [PositionArea](#positionarea7) | 是 | 区域大小,根据区域读取。 | 1464e41f4b71Sopenharmony_ci 1465e41f4b71Sopenharmony_ci**错误码:** 1466e41f4b71Sopenharmony_ci 1467e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 1468e41f4b71Sopenharmony_ci 1469e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1470e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 1471e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 1472e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 1473e41f4b71Sopenharmony_ci 1474e41f4b71Sopenharmony_ci**示例:** 1475e41f4b71Sopenharmony_ci 1476e41f4b71Sopenharmony_ci```ts 1477e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1478e41f4b71Sopenharmony_ci 1479e41f4b71Sopenharmony_ciasync function Demo() { 1480e41f4b71Sopenharmony_ci const area : image.PositionArea = { 1481e41f4b71Sopenharmony_ci pixels: new ArrayBuffer(8), 1482e41f4b71Sopenharmony_ci offset: 0, 1483e41f4b71Sopenharmony_ci stride: 8, 1484e41f4b71Sopenharmony_ci region: { size: { height: 1, width: 2 }, x: 0, y: 0 } 1485e41f4b71Sopenharmony_ci }; 1486e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1487e41f4b71Sopenharmony_ci pixelMap.readPixelsSync(area); 1488e41f4b71Sopenharmony_ci } 1489e41f4b71Sopenharmony_ci} 1490e41f4b71Sopenharmony_ci``` 1491e41f4b71Sopenharmony_ci 1492e41f4b71Sopenharmony_ci### writePixels<sup>7+</sup> 1493e41f4b71Sopenharmony_ci 1494e41f4b71Sopenharmony_ciwritePixels(area: PositionArea): Promise\<void> 1495e41f4b71Sopenharmony_ci 1496e41f4b71Sopenharmony_ci读取[PositionArea](#positionarea7).pixels缓冲区中的图像像素数据,并写入PixelMap指定区域内,该区域由[PositionArea](#positionarea7).region指定。 1497e41f4b71Sopenharmony_ci当PixelMap的像素格式为RGB类型时,固定按照BGRA_8888格式写入PixelMap。使用Promise形式返回。 1498e41f4b71Sopenharmony_ci 1499e41f4b71Sopenharmony_ci可用公式计算PositionArea需要申请的内存大小。 1500e41f4b71Sopenharmony_ci 1501e41f4b71Sopenharmony_ciYUV的区域计算公式:读取区域(region.size{width * height})* 1.5 (1倍的Y分量+0.25倍U分量+0.25倍V分量) 1502e41f4b71Sopenharmony_ci 1503e41f4b71Sopenharmony_ciRGBA的区域计算公式:读取区域(region.size{width * height})* 4 (1倍的R分量+1倍G分量+1倍B分量+1倍A分量) 1504e41f4b71Sopenharmony_ci 1505e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1506e41f4b71Sopenharmony_ci 1507e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1508e41f4b71Sopenharmony_ci 1509e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1510e41f4b71Sopenharmony_ci 1511e41f4b71Sopenharmony_ci**参数:** 1512e41f4b71Sopenharmony_ci 1513e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1514e41f4b71Sopenharmony_ci| ------ | ------------------------------ | ---- | -------------------- | 1515e41f4b71Sopenharmony_ci| area | [PositionArea](#positionarea7) | 是 | 区域,根据区域写入。 | 1516e41f4b71Sopenharmony_ci 1517e41f4b71Sopenharmony_ci**返回值:** 1518e41f4b71Sopenharmony_ci 1519e41f4b71Sopenharmony_ci| 类型 | 说明 | 1520e41f4b71Sopenharmony_ci| :------------- | :-------------------------------------------------- | 1521e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1522e41f4b71Sopenharmony_ci 1523e41f4b71Sopenharmony_ci**示例:** 1524e41f4b71Sopenharmony_ci 1525e41f4b71Sopenharmony_ci```ts 1526e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1527e41f4b71Sopenharmony_ci 1528e41f4b71Sopenharmony_ciasync function Demo() { 1529e41f4b71Sopenharmony_ci const area: image.PositionArea = { 1530e41f4b71Sopenharmony_ci pixels: new ArrayBuffer(8), // 8为需要创建的像素buffer大小,取值为:height * width *4 1531e41f4b71Sopenharmony_ci offset: 0, 1532e41f4b71Sopenharmony_ci stride: 8, 1533e41f4b71Sopenharmony_ci region: { size: { height: 1, width: 2 }, x: 0, y: 0 } 1534e41f4b71Sopenharmony_ci }; 1535e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(area.pixels); 1536e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i++) { 1537e41f4b71Sopenharmony_ci bufferArr[i] = i + 1; 1538e41f4b71Sopenharmony_ci } 1539e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1540e41f4b71Sopenharmony_ci pixelMap.writePixels(area).then(() => { 1541e41f4b71Sopenharmony_ci console.info('Succeeded in writing pixelmap into the specified area.'); 1542e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1543e41f4b71Sopenharmony_ci console.error(`Failed to write pixelmap into the specified area. code is ${error.code}, message is ${error.message}`); 1544e41f4b71Sopenharmony_ci }) 1545e41f4b71Sopenharmony_ci } 1546e41f4b71Sopenharmony_ci} 1547e41f4b71Sopenharmony_ci 1548e41f4b71Sopenharmony_ciasync function Demo() { 1549e41f4b71Sopenharmony_ci const area: image.PositionArea = { 1550e41f4b71Sopenharmony_ci pixels: new ArrayBuffer(6), // 6为需要创建的像素buffer大小,取值为:height * width *1.5 1551e41f4b71Sopenharmony_ci offset: 0, 1552e41f4b71Sopenharmony_ci stride: 8, 1553e41f4b71Sopenharmony_ci region: { size: { height: 2, width: 2 }, x: 0, y: 0 } 1554e41f4b71Sopenharmony_ci }; 1555e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(area.pixels); 1556e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i++) { 1557e41f4b71Sopenharmony_ci bufferArr[i] = i + 1; 1558e41f4b71Sopenharmony_ci } 1559e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1560e41f4b71Sopenharmony_ci pixelMap.writePixels(area).then(() => { 1561e41f4b71Sopenharmony_ci console.info('Succeeded in writing pixelmap into the specified area.'); 1562e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1563e41f4b71Sopenharmony_ci console.error(`Failed to write pixelmap into the specified area. code is ${error.code}, message is ${error.message}`); 1564e41f4b71Sopenharmony_ci }) 1565e41f4b71Sopenharmony_ci } 1566e41f4b71Sopenharmony_ci} 1567e41f4b71Sopenharmony_ci``` 1568e41f4b71Sopenharmony_ci 1569e41f4b71Sopenharmony_ci### writePixels<sup>7+</sup> 1570e41f4b71Sopenharmony_ci 1571e41f4b71Sopenharmony_ciwritePixels(area: PositionArea, callback: AsyncCallback\<void>): void 1572e41f4b71Sopenharmony_ci 1573e41f4b71Sopenharmony_ci读取[PositionArea](#positionarea7).pixels缓冲区中的图像像素数据,并写入PixelMap指定区域内,该区域由[PositionArea](#positionarea7).region指定。 1574e41f4b71Sopenharmony_ci当PixelMap的像素格式为RGB类型时,固定按照BGRA_8888格式写入PixelMap。使用callback形式返回。 1575e41f4b71Sopenharmony_ci 1576e41f4b71Sopenharmony_ci可用公式计算PositionArea需要申请的内存大小。 1577e41f4b71Sopenharmony_ci 1578e41f4b71Sopenharmony_ciYUV的区域计算公式:读取区域(region.size{width * height})* 1.5 (1倍的Y分量+0.25倍U分量+0.25倍V分量) 1579e41f4b71Sopenharmony_ci 1580e41f4b71Sopenharmony_ciRGBA的区域计算公式:读取区域(region.size{width * height})* 4 (1倍的R分量+1倍G分量+1倍B分量+1倍A分量) 1581e41f4b71Sopenharmony_ci 1582e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1583e41f4b71Sopenharmony_ci 1584e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1585e41f4b71Sopenharmony_ci 1586e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1587e41f4b71Sopenharmony_ci 1588e41f4b71Sopenharmony_ci**参数:** 1589e41f4b71Sopenharmony_ci 1590e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1591e41f4b71Sopenharmony_ci| --------- | ------------------------------ | ---- | ------------------------------ | 1592e41f4b71Sopenharmony_ci| area | [PositionArea](#positionarea7) | 是 | 区域,根据区域写入。 | 1593e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当写入成功,err为undefined,否则为错误对象。 | 1594e41f4b71Sopenharmony_ci 1595e41f4b71Sopenharmony_ci**示例:** 1596e41f4b71Sopenharmony_ci 1597e41f4b71Sopenharmony_ci```ts 1598e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1599e41f4b71Sopenharmony_ci 1600e41f4b71Sopenharmony_ciasync function Demo() { 1601e41f4b71Sopenharmony_ci const area: image.PositionArea = { pixels: new ArrayBuffer(8), // 8为需要创建的像素buffer大小,取值为:height * width *4 1602e41f4b71Sopenharmony_ci offset: 0, 1603e41f4b71Sopenharmony_ci stride: 8, 1604e41f4b71Sopenharmony_ci region: { size: { height: 1, width: 2 }, x: 0, y: 0 } 1605e41f4b71Sopenharmony_ci }; 1606e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(area.pixels); 1607e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i++) { 1608e41f4b71Sopenharmony_ci bufferArr[i] = i + 1; 1609e41f4b71Sopenharmony_ci } 1610e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1611e41f4b71Sopenharmony_ci pixelMap.writePixels(area, (error : BusinessError) => { 1612e41f4b71Sopenharmony_ci if (error) { 1613e41f4b71Sopenharmony_ci console.error(`Failed to write pixelmap into the specified area. code is ${error.code}, message is ${error.message}`); 1614e41f4b71Sopenharmony_ci return; 1615e41f4b71Sopenharmony_ci } else { 1616e41f4b71Sopenharmony_ci console.info('Succeeded in writing pixelmap into the specified area.'); 1617e41f4b71Sopenharmony_ci } 1618e41f4b71Sopenharmony_ci }) 1619e41f4b71Sopenharmony_ci } 1620e41f4b71Sopenharmony_ci} 1621e41f4b71Sopenharmony_ci 1622e41f4b71Sopenharmony_ciasync function Demo() { 1623e41f4b71Sopenharmony_ci const area: image.PositionArea = { pixels: new ArrayBuffer(6), // 6为需要创建的像素buffer大小,取值为:height * width *1.5 1624e41f4b71Sopenharmony_ci offset: 0, 1625e41f4b71Sopenharmony_ci stride: 8, 1626e41f4b71Sopenharmony_ci region: { size: { height: 2, width: 2 }, x: 0, y: 0 } 1627e41f4b71Sopenharmony_ci }; 1628e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(area.pixels); 1629e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i++) { 1630e41f4b71Sopenharmony_ci bufferArr[i] = i + 1; 1631e41f4b71Sopenharmony_ci } 1632e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1633e41f4b71Sopenharmony_ci pixelMap.writePixels(area, (error : BusinessError) => { 1634e41f4b71Sopenharmony_ci if (error) { 1635e41f4b71Sopenharmony_ci console.error(`Failed to write pixelmap into the specified area. code is ${error.code}, message is ${error.message}`); 1636e41f4b71Sopenharmony_ci return; 1637e41f4b71Sopenharmony_ci } else { 1638e41f4b71Sopenharmony_ci console.info('Succeeded in writing pixelmap into the specified area.'); 1639e41f4b71Sopenharmony_ci } 1640e41f4b71Sopenharmony_ci }) 1641e41f4b71Sopenharmony_ci } 1642e41f4b71Sopenharmony_ci} 1643e41f4b71Sopenharmony_ci``` 1644e41f4b71Sopenharmony_ci 1645e41f4b71Sopenharmony_ci### writePixelsSync<sup>12+</sup> 1646e41f4b71Sopenharmony_ci 1647e41f4b71Sopenharmony_ciwritePixelsSync(area: PositionArea): void 1648e41f4b71Sopenharmony_ci 1649e41f4b71Sopenharmony_ci以同步方式读取[PositionArea](#positionarea7).pixels缓冲区中的图像像素数据,并写入PixelMap指定区域内,该区域由[PositionArea](#positionarea7).region指定。 1650e41f4b71Sopenharmony_ci当PixelMap的像素格式为RGB类型时,固定按照BGRA_8888格式写入PixelMap。 1651e41f4b71Sopenharmony_ci 1652e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1653e41f4b71Sopenharmony_ci 1654e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1655e41f4b71Sopenharmony_ci 1656e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1657e41f4b71Sopenharmony_ci 1658e41f4b71Sopenharmony_ci**参数:** 1659e41f4b71Sopenharmony_ci 1660e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1661e41f4b71Sopenharmony_ci| ------ | ------------------------------ | ---- | -------------------- | 1662e41f4b71Sopenharmony_ci| area | [PositionArea](#positionarea7) | 是 | 区域,根据区域写入。 | 1663e41f4b71Sopenharmony_ci 1664e41f4b71Sopenharmony_ci**错误码:** 1665e41f4b71Sopenharmony_ci 1666e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 1667e41f4b71Sopenharmony_ci 1668e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1669e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 1670e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 1671e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 1672e41f4b71Sopenharmony_ci 1673e41f4b71Sopenharmony_ci**示例:** 1674e41f4b71Sopenharmony_ci 1675e41f4b71Sopenharmony_ci```ts 1676e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1677e41f4b71Sopenharmony_ci 1678e41f4b71Sopenharmony_ciasync function Demo() { 1679e41f4b71Sopenharmony_ci const area: image.PositionArea = { 1680e41f4b71Sopenharmony_ci pixels: new ArrayBuffer(8), 1681e41f4b71Sopenharmony_ci offset: 0, 1682e41f4b71Sopenharmony_ci stride: 8, 1683e41f4b71Sopenharmony_ci region: { size: { height: 1, width: 2 }, x: 0, y: 0 } 1684e41f4b71Sopenharmony_ci }; 1685e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(area.pixels); 1686e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i++) { 1687e41f4b71Sopenharmony_ci bufferArr[i] = i + 1; 1688e41f4b71Sopenharmony_ci } 1689e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1690e41f4b71Sopenharmony_ci pixelMap.writePixelsSync(area); 1691e41f4b71Sopenharmony_ci } 1692e41f4b71Sopenharmony_ci} 1693e41f4b71Sopenharmony_ci``` 1694e41f4b71Sopenharmony_ci 1695e41f4b71Sopenharmony_ci### writeBufferToPixels<sup>7+</sup> 1696e41f4b71Sopenharmony_ci 1697e41f4b71Sopenharmony_ciwriteBufferToPixels(src: ArrayBuffer): Promise\<void> 1698e41f4b71Sopenharmony_ci 1699e41f4b71Sopenharmony_ci读取缓冲区中的图像像素数据,并按照PixelMap的像素格式将结果写入PixelMap,使用Promise形式返回。 1700e41f4b71Sopenharmony_ci 1701e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1702e41f4b71Sopenharmony_ci 1703e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1704e41f4b71Sopenharmony_ci 1705e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1706e41f4b71Sopenharmony_ci 1707e41f4b71Sopenharmony_ci**参数:** 1708e41f4b71Sopenharmony_ci 1709e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1710e41f4b71Sopenharmony_ci| ------ | ----------- | ---- | -------------- | 1711e41f4b71Sopenharmony_ci| src | ArrayBuffer | 是 | 缓冲区,函数执行时会将该缓冲区中的图像像素数据写入到PixelMap。缓冲区大小由[getPixelBytesNumber](#getpixelbytesnumber7)接口获取。 | 1712e41f4b71Sopenharmony_ci 1713e41f4b71Sopenharmony_ci**返回值:** 1714e41f4b71Sopenharmony_ci 1715e41f4b71Sopenharmony_ci| 类型 | 说明 | 1716e41f4b71Sopenharmony_ci| -------------- | ----------------------------------------------- | 1717e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1718e41f4b71Sopenharmony_ci 1719e41f4b71Sopenharmony_ci**示例:** 1720e41f4b71Sopenharmony_ci 1721e41f4b71Sopenharmony_ci```ts 1722e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1723e41f4b71Sopenharmony_ci 1724e41f4b71Sopenharmony_ciasync function Demo() { 1725e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 1726e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(color); 1727e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i++) { 1728e41f4b71Sopenharmony_ci bufferArr[i] = i + 1; 1729e41f4b71Sopenharmony_ci } 1730e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1731e41f4b71Sopenharmony_ci pixelMap.writeBufferToPixels(color).then(() => { 1732e41f4b71Sopenharmony_ci console.info("Succeeded in writing data from a buffer to a PixelMap."); 1733e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1734e41f4b71Sopenharmony_ci console.error(`Failed to write data from a buffer to a PixelMap. code is ${error.code}, message is ${error.message}`); 1735e41f4b71Sopenharmony_ci }) 1736e41f4b71Sopenharmony_ci } 1737e41f4b71Sopenharmony_ci} 1738e41f4b71Sopenharmony_ci``` 1739e41f4b71Sopenharmony_ci 1740e41f4b71Sopenharmony_ci### writeBufferToPixels<sup>7+</sup> 1741e41f4b71Sopenharmony_ci 1742e41f4b71Sopenharmony_ciwriteBufferToPixels(src: ArrayBuffer, callback: AsyncCallback\<void>): void 1743e41f4b71Sopenharmony_ci 1744e41f4b71Sopenharmony_ci读取缓冲区中的图像像素数据,并按照PixelMap的像素格式将结果写入PixelMap,通过回调函数形式返回。 1745e41f4b71Sopenharmony_ci 1746e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1747e41f4b71Sopenharmony_ci 1748e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1749e41f4b71Sopenharmony_ci 1750e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1751e41f4b71Sopenharmony_ci 1752e41f4b71Sopenharmony_ci**参数:** 1753e41f4b71Sopenharmony_ci 1754e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1755e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------ | 1756e41f4b71Sopenharmony_ci| src | ArrayBuffer | 是 | 缓冲区,函数执行时会将该缓冲区中的图像像素数据写入到PixelMap。缓冲区大小由[getPixelBytesNumber](#getpixelbytesnumber7)接口获取。 | 1757e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当缓冲区中的图像像素数据写入PixelMap成功,err为undefined,否则为错误对象。 | 1758e41f4b71Sopenharmony_ci 1759e41f4b71Sopenharmony_ci**示例:** 1760e41f4b71Sopenharmony_ci 1761e41f4b71Sopenharmony_ci```ts 1762e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1763e41f4b71Sopenharmony_ci 1764e41f4b71Sopenharmony_ciasync function Demo() { 1765e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 1766e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(color); 1767e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i++) { 1768e41f4b71Sopenharmony_ci bufferArr[i] = i + 1; 1769e41f4b71Sopenharmony_ci } 1770e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1771e41f4b71Sopenharmony_ci pixelMap.writeBufferToPixels(color, (error: BusinessError) => { 1772e41f4b71Sopenharmony_ci if (error) { 1773e41f4b71Sopenharmony_ci console.error(`Failed to write data from a buffer to a PixelMap. code is ${error.code}, message is ${error.message}`); 1774e41f4b71Sopenharmony_ci return; 1775e41f4b71Sopenharmony_ci } else { 1776e41f4b71Sopenharmony_ci console.info("Succeeded in writing data from a buffer to a PixelMap."); 1777e41f4b71Sopenharmony_ci } 1778e41f4b71Sopenharmony_ci }) 1779e41f4b71Sopenharmony_ci } 1780e41f4b71Sopenharmony_ci} 1781e41f4b71Sopenharmony_ci``` 1782e41f4b71Sopenharmony_ci 1783e41f4b71Sopenharmony_ci### writeBufferToPixelsSync<sup>12+</sup> 1784e41f4b71Sopenharmony_ci 1785e41f4b71Sopenharmony_ciwriteBufferToPixelsSync(src: ArrayBuffer): void 1786e41f4b71Sopenharmony_ci 1787e41f4b71Sopenharmony_ci读取缓冲区中的图像像素数据,按照PixelMap的像素格式将结果写入PixelMap并同步返回结果。 1788e41f4b71Sopenharmony_ci 1789e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1790e41f4b71Sopenharmony_ci 1791e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1792e41f4b71Sopenharmony_ci 1793e41f4b71Sopenharmony_ci**参数:** 1794e41f4b71Sopenharmony_ci 1795e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1796e41f4b71Sopenharmony_ci| ------ | ----------- | ---- | -------------- | 1797e41f4b71Sopenharmony_ci| src | ArrayBuffer | 是 | 缓冲区,函数执行时会将该缓冲区中的图像像素数据写入到PixelMap。缓冲区大小由[getPixelBytesNumber](#getpixelbytesnumber7)接口获取。 | 1798e41f4b71Sopenharmony_ci 1799e41f4b71Sopenharmony_ci**错误码:** 1800e41f4b71Sopenharmony_ci 1801e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 1802e41f4b71Sopenharmony_ci 1803e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1804e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 1805e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 1806e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 1807e41f4b71Sopenharmony_ci 1808e41f4b71Sopenharmony_ci**示例:** 1809e41f4b71Sopenharmony_ci 1810e41f4b71Sopenharmony_ci```ts 1811e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1812e41f4b71Sopenharmony_ci 1813e41f4b71Sopenharmony_ciasync function Demo() { 1814e41f4b71Sopenharmony_ci const color : ArrayBuffer = new ArrayBuffer(96); //96为需要创建的像素buffer大小,取值为:height * width *4 1815e41f4b71Sopenharmony_ci let bufferArr : Uint8Array = new Uint8Array(color); 1816e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i++) { 1817e41f4b71Sopenharmony_ci bufferArr[i] = i + 1; 1818e41f4b71Sopenharmony_ci } 1819e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1820e41f4b71Sopenharmony_ci pixelMap.writeBufferToPixelsSync(color); 1821e41f4b71Sopenharmony_ci } 1822e41f4b71Sopenharmony_ci} 1823e41f4b71Sopenharmony_ci``` 1824e41f4b71Sopenharmony_ci 1825e41f4b71Sopenharmony_ci 1826e41f4b71Sopenharmony_ci### getImageInfo<sup>7+</sup> 1827e41f4b71Sopenharmony_ci 1828e41f4b71Sopenharmony_cigetImageInfo(): Promise\<ImageInfo> 1829e41f4b71Sopenharmony_ci 1830e41f4b71Sopenharmony_ci获取图像像素信息,使用Promise形式返回获取的图像像素信息。 1831e41f4b71Sopenharmony_ci 1832e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1833e41f4b71Sopenharmony_ci 1834e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1835e41f4b71Sopenharmony_ci 1836e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1837e41f4b71Sopenharmony_ci 1838e41f4b71Sopenharmony_ci**返回值:** 1839e41f4b71Sopenharmony_ci 1840e41f4b71Sopenharmony_ci| 类型 | 说明 | 1841e41f4b71Sopenharmony_ci| --------------------------------- | ----------------------------------------------------------- | 1842e41f4b71Sopenharmony_ci| Promise\<[ImageInfo](#imageinfo)> | Promise对象,返回图像像素信息。 | 1843e41f4b71Sopenharmony_ci 1844e41f4b71Sopenharmony_ci**示例:** 1845e41f4b71Sopenharmony_ci 1846e41f4b71Sopenharmony_ci```ts 1847e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1848e41f4b71Sopenharmony_ci 1849e41f4b71Sopenharmony_ciasync function Demo() { 1850e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1851e41f4b71Sopenharmony_ci pixelMap.getImageInfo().then((imageInfo: image.ImageInfo) => { 1852e41f4b71Sopenharmony_ci if (imageInfo != undefined) { 1853e41f4b71Sopenharmony_ci console.info("Succeeded in obtaining the image pixel map information."+ imageInfo.size.height); 1854e41f4b71Sopenharmony_ci } 1855e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1856e41f4b71Sopenharmony_ci console.error(`Failed to obtain the image pixel map information. code is ${error.code}, message is ${error.message}`); 1857e41f4b71Sopenharmony_ci }) 1858e41f4b71Sopenharmony_ci } 1859e41f4b71Sopenharmony_ci} 1860e41f4b71Sopenharmony_ci``` 1861e41f4b71Sopenharmony_ci 1862e41f4b71Sopenharmony_ci### getImageInfo<sup>7+</sup> 1863e41f4b71Sopenharmony_ci 1864e41f4b71Sopenharmony_cigetImageInfo(callback: AsyncCallback\<ImageInfo>): void 1865e41f4b71Sopenharmony_ci 1866e41f4b71Sopenharmony_ci获取图像像素信息,使用callback形式返回获取的图像像素信息。 1867e41f4b71Sopenharmony_ci 1868e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1869e41f4b71Sopenharmony_ci 1870e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1871e41f4b71Sopenharmony_ci 1872e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1873e41f4b71Sopenharmony_ci 1874e41f4b71Sopenharmony_ci**参数:** 1875e41f4b71Sopenharmony_ci 1876e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1877e41f4b71Sopenharmony_ci| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ | 1878e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[ImageInfo](#imageinfo)> | 是 | 回调函数。当获取图像像素信息成功,err为undefined,data为获取到的图像像素信息;否则为错误对象。 | 1879e41f4b71Sopenharmony_ci 1880e41f4b71Sopenharmony_ci**示例:** 1881e41f4b71Sopenharmony_ci 1882e41f4b71Sopenharmony_ci```ts 1883e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1884e41f4b71Sopenharmony_ci 1885e41f4b71Sopenharmony_ciasync function Demo() { 1886e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1887e41f4b71Sopenharmony_ci pixelMap.getImageInfo((error: BusinessError, imageInfo: image.ImageInfo) => { 1888e41f4b71Sopenharmony_ci if (error) { 1889e41f4b71Sopenharmony_ci console.error(`Failed to obtain the image pixel map information. code is ${error.code}, message is ${error.message}`); 1890e41f4b71Sopenharmony_ci return; 1891e41f4b71Sopenharmony_ci } else { 1892e41f4b71Sopenharmony_ci console.info("Succeeded in obtaining the image pixel map information."+ imageInfo.size.height); 1893e41f4b71Sopenharmony_ci } 1894e41f4b71Sopenharmony_ci }) 1895e41f4b71Sopenharmony_ci } 1896e41f4b71Sopenharmony_ci} 1897e41f4b71Sopenharmony_ci``` 1898e41f4b71Sopenharmony_ci 1899e41f4b71Sopenharmony_ci### getImageInfoSync<sup>12+</sup> 1900e41f4b71Sopenharmony_ci 1901e41f4b71Sopenharmony_cigetImageInfoSync(): ImageInfo 1902e41f4b71Sopenharmony_ci 1903e41f4b71Sopenharmony_ci以同步方法获取图像像素信息。 1904e41f4b71Sopenharmony_ci 1905e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1906e41f4b71Sopenharmony_ci 1907e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1908e41f4b71Sopenharmony_ci 1909e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 1910e41f4b71Sopenharmony_ci 1911e41f4b71Sopenharmony_ci**返回值:** 1912e41f4b71Sopenharmony_ci 1913e41f4b71Sopenharmony_ci| 类型 | 说明 | 1914e41f4b71Sopenharmony_ci| --------------------------------- | ----------------------------------------------------------- | 1915e41f4b71Sopenharmony_ci| [ImageInfo](#imageinfo) | 图像像素信息 | 1916e41f4b71Sopenharmony_ci 1917e41f4b71Sopenharmony_ci**错误码:** 1918e41f4b71Sopenharmony_ci 1919e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 1920e41f4b71Sopenharmony_ci 1921e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1922e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 1923e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 1924e41f4b71Sopenharmony_ci 1925e41f4b71Sopenharmony_ci**示例:** 1926e41f4b71Sopenharmony_ci 1927e41f4b71Sopenharmony_ci```ts 1928e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1929e41f4b71Sopenharmony_ci 1930e41f4b71Sopenharmony_ciasync function Demo() { 1931e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 1932e41f4b71Sopenharmony_ci let imageInfo : image.ImageInfo = pixelMap.getImageInfoSync(); 1933e41f4b71Sopenharmony_ci return imageInfo; 1934e41f4b71Sopenharmony_ci } 1935e41f4b71Sopenharmony_ci return undefined; 1936e41f4b71Sopenharmony_ci} 1937e41f4b71Sopenharmony_ci``` 1938e41f4b71Sopenharmony_ci 1939e41f4b71Sopenharmony_ci### getBytesNumberPerRow<sup>7+</sup> 1940e41f4b71Sopenharmony_ci 1941e41f4b71Sopenharmony_cigetBytesNumberPerRow(): number 1942e41f4b71Sopenharmony_ci 1943e41f4b71Sopenharmony_ci获取图像像素每行字节数。 1944e41f4b71Sopenharmony_ci 1945e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1946e41f4b71Sopenharmony_ci 1947e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1948e41f4b71Sopenharmony_ci 1949e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1950e41f4b71Sopenharmony_ci 1951e41f4b71Sopenharmony_ci**返回值:** 1952e41f4b71Sopenharmony_ci 1953e41f4b71Sopenharmony_ci| 类型 | 说明 | 1954e41f4b71Sopenharmony_ci| ------ | -------------------- | 1955e41f4b71Sopenharmony_ci| number | 图像像素的行字节数。 | 1956e41f4b71Sopenharmony_ci 1957e41f4b71Sopenharmony_ci**示例:** 1958e41f4b71Sopenharmony_ci 1959e41f4b71Sopenharmony_ci```ts 1960e41f4b71Sopenharmony_cilet rowCount: number = pixelMap.getBytesNumberPerRow(); 1961e41f4b71Sopenharmony_ci``` 1962e41f4b71Sopenharmony_ci 1963e41f4b71Sopenharmony_ci### getPixelBytesNumber<sup>7+</sup> 1964e41f4b71Sopenharmony_ci 1965e41f4b71Sopenharmony_cigetPixelBytesNumber(): number 1966e41f4b71Sopenharmony_ci 1967e41f4b71Sopenharmony_ci获取图像像素的总字节数。 1968e41f4b71Sopenharmony_ci 1969e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1970e41f4b71Sopenharmony_ci 1971e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1972e41f4b71Sopenharmony_ci 1973e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1974e41f4b71Sopenharmony_ci 1975e41f4b71Sopenharmony_ci**返回值:** 1976e41f4b71Sopenharmony_ci 1977e41f4b71Sopenharmony_ci| 类型 | 说明 | 1978e41f4b71Sopenharmony_ci| ------ | -------------------- | 1979e41f4b71Sopenharmony_ci| number | 图像像素的总字节数。 | 1980e41f4b71Sopenharmony_ci 1981e41f4b71Sopenharmony_ci**示例:** 1982e41f4b71Sopenharmony_ci 1983e41f4b71Sopenharmony_ci```ts 1984e41f4b71Sopenharmony_cilet pixelBytesNumber: number = pixelMap.getPixelBytesNumber(); 1985e41f4b71Sopenharmony_ci``` 1986e41f4b71Sopenharmony_ci 1987e41f4b71Sopenharmony_ci### getDensity<sup>9+</sup> 1988e41f4b71Sopenharmony_ci 1989e41f4b71Sopenharmony_cigetDensity():number 1990e41f4b71Sopenharmony_ci 1991e41f4b71Sopenharmony_ci获取当前图像像素的密度。 1992e41f4b71Sopenharmony_ci 1993e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 1994e41f4b71Sopenharmony_ci 1995e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1996e41f4b71Sopenharmony_ci 1997e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 1998e41f4b71Sopenharmony_ci 1999e41f4b71Sopenharmony_ci**返回值:** 2000e41f4b71Sopenharmony_ci 2001e41f4b71Sopenharmony_ci| 类型 | 说明 | 2002e41f4b71Sopenharmony_ci| ------ | --------------- | 2003e41f4b71Sopenharmony_ci| number | 图像像素的密度。| 2004e41f4b71Sopenharmony_ci 2005e41f4b71Sopenharmony_ci**示例:** 2006e41f4b71Sopenharmony_ci 2007e41f4b71Sopenharmony_ci```ts 2008e41f4b71Sopenharmony_cilet getDensity: number = pixelMap.getDensity(); 2009e41f4b71Sopenharmony_ci``` 2010e41f4b71Sopenharmony_ci 2011e41f4b71Sopenharmony_ci### opacity<sup>9+</sup> 2012e41f4b71Sopenharmony_ci 2013e41f4b71Sopenharmony_ciopacity(rate: number, callback: AsyncCallback\<void>): void 2014e41f4b71Sopenharmony_ci 2015e41f4b71Sopenharmony_ci通过设置透明比率来让PixelMap达到对应的透明效果,yuv图片不支持设置透明度,使用callback形式返回。 2016e41f4b71Sopenharmony_ci 2017e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2018e41f4b71Sopenharmony_ci 2019e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2020e41f4b71Sopenharmony_ci 2021e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2022e41f4b71Sopenharmony_ci 2023e41f4b71Sopenharmony_ci**参数:** 2024e41f4b71Sopenharmony_ci 2025e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2026e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------ | 2027e41f4b71Sopenharmony_ci| rate | number | 是 | 透明比率的值。 | 2028e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当设置透明比率成功,err为undefined,否则为错误对象。 | 2029e41f4b71Sopenharmony_ci 2030e41f4b71Sopenharmony_ci**示例:** 2031e41f4b71Sopenharmony_ci 2032e41f4b71Sopenharmony_ci```ts 2033e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2034e41f4b71Sopenharmony_ci 2035e41f4b71Sopenharmony_ciasync function Demo() { 2036e41f4b71Sopenharmony_ci let rate: number = 0.5; 2037e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2038e41f4b71Sopenharmony_ci pixelMap.opacity(rate, (err: BusinessError) => { 2039e41f4b71Sopenharmony_ci if (err) { 2040e41f4b71Sopenharmony_ci console.error(`Failed to set opacity. code is ${err.code}, message is ${err.message}`); 2041e41f4b71Sopenharmony_ci return; 2042e41f4b71Sopenharmony_ci } else { 2043e41f4b71Sopenharmony_ci console.info("Succeeded in setting opacity."); 2044e41f4b71Sopenharmony_ci } 2045e41f4b71Sopenharmony_ci }) 2046e41f4b71Sopenharmony_ci } 2047e41f4b71Sopenharmony_ci} 2048e41f4b71Sopenharmony_ci``` 2049e41f4b71Sopenharmony_ci 2050e41f4b71Sopenharmony_ci### opacity<sup>9+</sup> 2051e41f4b71Sopenharmony_ci 2052e41f4b71Sopenharmony_ciopacity(rate: number): Promise\<void> 2053e41f4b71Sopenharmony_ci 2054e41f4b71Sopenharmony_ci通过设置透明比率来让PixelMap达到对应的透明效果,yuv图片不支持设置透明度,使用Promise形式返回。 2055e41f4b71Sopenharmony_ci 2056e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2057e41f4b71Sopenharmony_ci 2058e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2059e41f4b71Sopenharmony_ci 2060e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2061e41f4b71Sopenharmony_ci 2062e41f4b71Sopenharmony_ci**参数:** 2063e41f4b71Sopenharmony_ci 2064e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2065e41f4b71Sopenharmony_ci| ------ | ------ | ---- | --------------------------- | 2066e41f4b71Sopenharmony_ci| rate | number | 是 | 透明比率的值。| 2067e41f4b71Sopenharmony_ci 2068e41f4b71Sopenharmony_ci**返回值:** 2069e41f4b71Sopenharmony_ci 2070e41f4b71Sopenharmony_ci| 类型 | 说明 | 2071e41f4b71Sopenharmony_ci| -------------- | ----------------------------------------------- | 2072e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2073e41f4b71Sopenharmony_ci 2074e41f4b71Sopenharmony_ci**示例:** 2075e41f4b71Sopenharmony_ci 2076e41f4b71Sopenharmony_ci```ts 2077e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2078e41f4b71Sopenharmony_ci 2079e41f4b71Sopenharmony_ciasync function Demo() { 2080e41f4b71Sopenharmony_ci let rate: number = 0.5; 2081e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2082e41f4b71Sopenharmony_ci pixelMap.opacity(rate).then(() => { 2083e41f4b71Sopenharmony_ci console.info('Succeeded in setting opacity.'); 2084e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2085e41f4b71Sopenharmony_ci console.error(`Failed to set opacity. code is ${err.code}, message is ${err.message}`); 2086e41f4b71Sopenharmony_ci }) 2087e41f4b71Sopenharmony_ci } 2088e41f4b71Sopenharmony_ci} 2089e41f4b71Sopenharmony_ci``` 2090e41f4b71Sopenharmony_ci 2091e41f4b71Sopenharmony_ci### opacitySync<sup>12+</sup> 2092e41f4b71Sopenharmony_ci 2093e41f4b71Sopenharmony_ciopacitySync(rate: number): void 2094e41f4b71Sopenharmony_ci 2095e41f4b71Sopenharmony_ci设置PixelMap的透明比率,yuv图片不支持设置透明度,初始化PixelMap并同步返回结果。 2096e41f4b71Sopenharmony_ci 2097e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2098e41f4b71Sopenharmony_ci 2099e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2100e41f4b71Sopenharmony_ci 2101e41f4b71Sopenharmony_ci**参数:** 2102e41f4b71Sopenharmony_ci 2103e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2104e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------ | 2105e41f4b71Sopenharmony_ci| rate | number | 是 | 透明比率的值。 | 2106e41f4b71Sopenharmony_ci 2107e41f4b71Sopenharmony_ci**错误码:** 2108e41f4b71Sopenharmony_ci 2109e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 2110e41f4b71Sopenharmony_ci 2111e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2112e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2113e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 2114e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 2115e41f4b71Sopenharmony_ci 2116e41f4b71Sopenharmony_ci**示例:** 2117e41f4b71Sopenharmony_ci 2118e41f4b71Sopenharmony_ci```ts 2119e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2120e41f4b71Sopenharmony_ci 2121e41f4b71Sopenharmony_ciasync function Demo() { 2122e41f4b71Sopenharmony_ci let rate : number = 0.5; 2123e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2124e41f4b71Sopenharmony_ci pixelMap.opacitySync(rate); 2125e41f4b71Sopenharmony_ci } 2126e41f4b71Sopenharmony_ci} 2127e41f4b71Sopenharmony_ci``` 2128e41f4b71Sopenharmony_ci 2129e41f4b71Sopenharmony_ci### createAlphaPixelmap<sup>9+</sup> 2130e41f4b71Sopenharmony_ci 2131e41f4b71Sopenharmony_cicreateAlphaPixelmap(): Promise\<PixelMap> 2132e41f4b71Sopenharmony_ci 2133e41f4b71Sopenharmony_ci根据Alpha通道的信息,来生成一个仅包含Alpha通道信息的pixelmap,可用于阴影效果,yuv格式不支持此接口,使用Promise形式返回。 2134e41f4b71Sopenharmony_ci 2135e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2136e41f4b71Sopenharmony_ci 2137e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2138e41f4b71Sopenharmony_ci 2139e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2140e41f4b71Sopenharmony_ci 2141e41f4b71Sopenharmony_ci**返回值:** 2142e41f4b71Sopenharmony_ci 2143e41f4b71Sopenharmony_ci| 类型 | 说明 | 2144e41f4b71Sopenharmony_ci| -------------------------------- | --------------------------- | 2145e41f4b71Sopenharmony_ci| Promise\<[PixelMap](#pixelmap7)> | Promise对象,返回PixelMap。 | 2146e41f4b71Sopenharmony_ci 2147e41f4b71Sopenharmony_ci**示例:** 2148e41f4b71Sopenharmony_ci 2149e41f4b71Sopenharmony_ci```ts 2150e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2151e41f4b71Sopenharmony_ci 2152e41f4b71Sopenharmony_ciasync function Demo() { 2153e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2154e41f4b71Sopenharmony_ci pixelMap.createAlphaPixelmap().then((alphaPixelMap: image.PixelMap) => { 2155e41f4b71Sopenharmony_ci console.info('Succeeded in creating alpha pixelmap.'); 2156e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 2157e41f4b71Sopenharmony_ci console.error(`Failed to create alpha pixelmap. code is ${error.code}, message is ${error.message}`); 2158e41f4b71Sopenharmony_ci }) 2159e41f4b71Sopenharmony_ci } 2160e41f4b71Sopenharmony_ci} 2161e41f4b71Sopenharmony_ci``` 2162e41f4b71Sopenharmony_ci 2163e41f4b71Sopenharmony_ci### createAlphaPixelmap<sup>9+</sup> 2164e41f4b71Sopenharmony_ci 2165e41f4b71Sopenharmony_cicreateAlphaPixelmap(callback: AsyncCallback\<PixelMap>): void 2166e41f4b71Sopenharmony_ci 2167e41f4b71Sopenharmony_ci根据Alpha通道的信息,来生成一个仅包含Alpha通道信息的pixelmap,可用于阴影效果,yuv格式不支持此接口,使用callback形式返回。 2168e41f4b71Sopenharmony_ci 2169e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2170e41f4b71Sopenharmony_ci 2171e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2172e41f4b71Sopenharmony_ci 2173e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2174e41f4b71Sopenharmony_ci 2175e41f4b71Sopenharmony_ci**参数:** 2176e41f4b71Sopenharmony_ci 2177e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2178e41f4b71Sopenharmony_ci| -------- | ------------------------ | ---- | ------------------------ | 2179e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[PixelMap](#pixelmap7)> | 是 | 回调函数,当创建PixelMap成功,err为undefined,data为获取到的PixelMap对象;否则为错误对象。 | 2180e41f4b71Sopenharmony_ci 2181e41f4b71Sopenharmony_ci**示例:** 2182e41f4b71Sopenharmony_ci 2183e41f4b71Sopenharmony_ci```ts 2184e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2185e41f4b71Sopenharmony_ci 2186e41f4b71Sopenharmony_ciasync function Demo() { 2187e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2188e41f4b71Sopenharmony_ci pixelMap.createAlphaPixelmap((err: BusinessError, alphaPixelMap: image.PixelMap) => { 2189e41f4b71Sopenharmony_ci if (alphaPixelMap == undefined) { 2190e41f4b71Sopenharmony_ci console.error(`Failed to obtain new pixel map. code is ${err.code}, message is ${err.message}`); 2191e41f4b71Sopenharmony_ci return; 2192e41f4b71Sopenharmony_ci } else { 2193e41f4b71Sopenharmony_ci console.info('Succeeded in obtaining new pixel map.'); 2194e41f4b71Sopenharmony_ci } 2195e41f4b71Sopenharmony_ci }) 2196e41f4b71Sopenharmony_ci } 2197e41f4b71Sopenharmony_ci} 2198e41f4b71Sopenharmony_ci``` 2199e41f4b71Sopenharmony_ci 2200e41f4b71Sopenharmony_ci### createAlphaPixelmapSync<sup>12+</sup> 2201e41f4b71Sopenharmony_ci 2202e41f4b71Sopenharmony_cicreateAlphaPixelmapSync(): PixelMap 2203e41f4b71Sopenharmony_ci 2204e41f4b71Sopenharmony_ci根据Alpha通道的信息,生成一个仅包含Alpha通道信息的PixelMap,可用于阴影效果,yuv格式不支持此接口,同步返回PixelMap类型的结果。 2205e41f4b71Sopenharmony_ci 2206e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2207e41f4b71Sopenharmony_ci 2208e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2209e41f4b71Sopenharmony_ci 2210e41f4b71Sopenharmony_ci**返回值:** 2211e41f4b71Sopenharmony_ci 2212e41f4b71Sopenharmony_ci| 类型 | 说明 | 2213e41f4b71Sopenharmony_ci| -------------------------------- | --------------------- | 2214e41f4b71Sopenharmony_ci| [PixelMap](#pixelmap7) | 成功同步返回PixelMap对象,失败抛出异常。 | 2215e41f4b71Sopenharmony_ci 2216e41f4b71Sopenharmony_ci**错误码:** 2217e41f4b71Sopenharmony_ci 2218e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 2219e41f4b71Sopenharmony_ci 2220e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2221e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2222e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Parameter verification failed | 2223e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 2224e41f4b71Sopenharmony_ci 2225e41f4b71Sopenharmony_ci**示例:** 2226e41f4b71Sopenharmony_ci 2227e41f4b71Sopenharmony_ci```ts 2228e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2229e41f4b71Sopenharmony_ci 2230e41f4b71Sopenharmony_ciasync function Demo() { 2231e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2232e41f4b71Sopenharmony_ci let pixelmap : image.PixelMap = pixelMap.createAlphaPixelmapSync(); 2233e41f4b71Sopenharmony_ci return pixelmap; 2234e41f4b71Sopenharmony_ci } 2235e41f4b71Sopenharmony_ci return undefined; 2236e41f4b71Sopenharmony_ci} 2237e41f4b71Sopenharmony_ci``` 2238e41f4b71Sopenharmony_ci 2239e41f4b71Sopenharmony_ci### scale<sup>9+</sup> 2240e41f4b71Sopenharmony_ci 2241e41f4b71Sopenharmony_ciscale(x: number, y: number, callback: AsyncCallback\<void>): void 2242e41f4b71Sopenharmony_ci 2243e41f4b71Sopenharmony_ci根据输入的宽高对图片进行缩放,使用callback形式返回。 2244e41f4b71Sopenharmony_ci 2245e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2246e41f4b71Sopenharmony_ci 2247e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2248e41f4b71Sopenharmony_ci 2249e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2250e41f4b71Sopenharmony_ci 2251e41f4b71Sopenharmony_ci**参数:** 2252e41f4b71Sopenharmony_ci 2253e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2254e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------- | 2255e41f4b71Sopenharmony_ci| x | number | 是 | 宽度的缩放倍数。| 2256e41f4b71Sopenharmony_ci| y | number | 是 | 高度的缩放倍数。| 2257e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当对图片进行缩放成功,err为undefined,否则为错误对象。 | 2258e41f4b71Sopenharmony_ci 2259e41f4b71Sopenharmony_ci**示例:** 2260e41f4b71Sopenharmony_ci 2261e41f4b71Sopenharmony_ci```ts 2262e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2263e41f4b71Sopenharmony_ci 2264e41f4b71Sopenharmony_ciasync function Demo() { 2265e41f4b71Sopenharmony_ci let scaleX: number = 2.0; 2266e41f4b71Sopenharmony_ci let scaleY: number = 1.0; 2267e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2268e41f4b71Sopenharmony_ci pixelMap.scale(scaleX, scaleY, (err: BusinessError) => { 2269e41f4b71Sopenharmony_ci if (err) { 2270e41f4b71Sopenharmony_ci console.error(`Failed to scale pixelmap. code is ${err.code}, message is ${err.message}`); 2271e41f4b71Sopenharmony_ci return; 2272e41f4b71Sopenharmony_ci } else { 2273e41f4b71Sopenharmony_ci console.info("Succeeded in scaling pixelmap."); 2274e41f4b71Sopenharmony_ci } 2275e41f4b71Sopenharmony_ci }) 2276e41f4b71Sopenharmony_ci } 2277e41f4b71Sopenharmony_ci} 2278e41f4b71Sopenharmony_ci``` 2279e41f4b71Sopenharmony_ci 2280e41f4b71Sopenharmony_ci### scale<sup>9+</sup> 2281e41f4b71Sopenharmony_ci 2282e41f4b71Sopenharmony_ciscale(x: number, y: number): Promise\<void> 2283e41f4b71Sopenharmony_ci 2284e41f4b71Sopenharmony_ci根据输入的宽高对图片进行缩放,使用Promise形式返回。 2285e41f4b71Sopenharmony_ci 2286e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2287e41f4b71Sopenharmony_ci 2288e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2289e41f4b71Sopenharmony_ci 2290e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2291e41f4b71Sopenharmony_ci 2292e41f4b71Sopenharmony_ci**参数:** 2293e41f4b71Sopenharmony_ci 2294e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2295e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------- | 2296e41f4b71Sopenharmony_ci| x | number | 是 | 宽度的缩放倍数。| 2297e41f4b71Sopenharmony_ci| y | number | 是 | 高度的缩放倍数。| 2298e41f4b71Sopenharmony_ci 2299e41f4b71Sopenharmony_ci**返回值:** 2300e41f4b71Sopenharmony_ci 2301e41f4b71Sopenharmony_ci| 类型 | 说明 | 2302e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 2303e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。| 2304e41f4b71Sopenharmony_ci 2305e41f4b71Sopenharmony_ci**示例:** 2306e41f4b71Sopenharmony_ci 2307e41f4b71Sopenharmony_ci```ts 2308e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2309e41f4b71Sopenharmony_ci 2310e41f4b71Sopenharmony_ciasync function Demo() { 2311e41f4b71Sopenharmony_ci let scaleX: number = 2.0; 2312e41f4b71Sopenharmony_ci let scaleY: number = 1.0; 2313e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2314e41f4b71Sopenharmony_ci pixelMap.scale(scaleX, scaleY).then(() => { 2315e41f4b71Sopenharmony_ci console.info('Succeeded in scaling pixelmap.'); 2316e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2317e41f4b71Sopenharmony_ci console.error(`Failed to scale pixelmap. code is ${err.code}, message is ${err.message}`); 2318e41f4b71Sopenharmony_ci 2319e41f4b71Sopenharmony_ci }) 2320e41f4b71Sopenharmony_ci } 2321e41f4b71Sopenharmony_ci} 2322e41f4b71Sopenharmony_ci``` 2323e41f4b71Sopenharmony_ci 2324e41f4b71Sopenharmony_ci### scaleSync<sup>12+</sup> 2325e41f4b71Sopenharmony_ci 2326e41f4b71Sopenharmony_ciscaleSync(x: number, y: number): void 2327e41f4b71Sopenharmony_ci 2328e41f4b71Sopenharmony_ci以同步方法根据输入的宽高对图片进行缩放。 2329e41f4b71Sopenharmony_ci 2330e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2331e41f4b71Sopenharmony_ci 2332e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2333e41f4b71Sopenharmony_ci 2334e41f4b71Sopenharmony_ci**参数:** 2335e41f4b71Sopenharmony_ci 2336e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2337e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------- | 2338e41f4b71Sopenharmony_ci| x | number | 是 | 宽度的缩放倍数。| 2339e41f4b71Sopenharmony_ci| y | number | 是 | 高度的缩放倍数。| 2340e41f4b71Sopenharmony_ci 2341e41f4b71Sopenharmony_ci**错误码:** 2342e41f4b71Sopenharmony_ci 2343e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 2344e41f4b71Sopenharmony_ci 2345e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2346e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2347e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 2348e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 2349e41f4b71Sopenharmony_ci 2350e41f4b71Sopenharmony_ci**示例:** 2351e41f4b71Sopenharmony_ci 2352e41f4b71Sopenharmony_ci```ts 2353e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2354e41f4b71Sopenharmony_ci 2355e41f4b71Sopenharmony_ciasync function Demo() { 2356e41f4b71Sopenharmony_ci let scaleX: number = 2.0; 2357e41f4b71Sopenharmony_ci let scaleY: number = 1.0; 2358e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2359e41f4b71Sopenharmony_ci pixelMap.scaleSync(scaleX, scaleY); 2360e41f4b71Sopenharmony_ci } 2361e41f4b71Sopenharmony_ci} 2362e41f4b71Sopenharmony_ci``` 2363e41f4b71Sopenharmony_ci 2364e41f4b71Sopenharmony_ci### scale<sup>12+</sup> 2365e41f4b71Sopenharmony_ci 2366e41f4b71Sopenharmony_ciscale(x: number, y: number, level: AntiAliasingLevel): Promise\<void> 2367e41f4b71Sopenharmony_ci 2368e41f4b71Sopenharmony_ci根据输入的宽高对图片进行缩放,使用Promise形式返回。 2369e41f4b71Sopenharmony_ci 2370e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2371e41f4b71Sopenharmony_ci 2372e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2373e41f4b71Sopenharmony_ci 2374e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2375e41f4b71Sopenharmony_ci 2376e41f4b71Sopenharmony_ci**参数:** 2377e41f4b71Sopenharmony_ci 2378e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2379e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------- | 2380e41f4b71Sopenharmony_ci| x | number | 是 | 宽度的缩放倍数。| 2381e41f4b71Sopenharmony_ci| y | number | 是 | 高度的缩放倍数。| 2382e41f4b71Sopenharmony_ci| level | [AntiAliasingLevel](#antialiasinglevel12) | 是 | 采用的缩放算法。| 2383e41f4b71Sopenharmony_ci 2384e41f4b71Sopenharmony_ci**返回值:** 2385e41f4b71Sopenharmony_ci 2386e41f4b71Sopenharmony_ci| 类型 | 说明 | 2387e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 2388e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。| 2389e41f4b71Sopenharmony_ci 2390e41f4b71Sopenharmony_ci**错误码:** 2391e41f4b71Sopenharmony_ci 2392e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 2393e41f4b71Sopenharmony_ci 2394e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2395e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2396e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 2397e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 2398e41f4b71Sopenharmony_ci 2399e41f4b71Sopenharmony_ci**示例:** 2400e41f4b71Sopenharmony_ci 2401e41f4b71Sopenharmony_ci```ts 2402e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2403e41f4b71Sopenharmony_ci 2404e41f4b71Sopenharmony_ciasync function Demo() { 2405e41f4b71Sopenharmony_ci let scaleX: number = 2.0; 2406e41f4b71Sopenharmony_ci let scaleY: number = 1.0; 2407e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2408e41f4b71Sopenharmony_ci pixelMap.scale(scaleX, scaleY, image.AntiAliasingLevel.LOW).then(() => { 2409e41f4b71Sopenharmony_ci console.info('Succeeded in scaling pixelmap.'); 2410e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2411e41f4b71Sopenharmony_ci console.error(`Failed to scale pixelmap. code is ${err.code}, message is ${err.message}`); 2412e41f4b71Sopenharmony_ci 2413e41f4b71Sopenharmony_ci }) 2414e41f4b71Sopenharmony_ci } 2415e41f4b71Sopenharmony_ci} 2416e41f4b71Sopenharmony_ci``` 2417e41f4b71Sopenharmony_ci 2418e41f4b71Sopenharmony_ci### scaleSync<sup>12+</sup> 2419e41f4b71Sopenharmony_ci 2420e41f4b71Sopenharmony_ciscaleSync(x: number, y: number, level: AntiAliasingLevel): void 2421e41f4b71Sopenharmony_ci 2422e41f4b71Sopenharmony_ci以同步方法根据输入的宽高对图片进行缩放。 2423e41f4b71Sopenharmony_ci 2424e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2425e41f4b71Sopenharmony_ci 2426e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2427e41f4b71Sopenharmony_ci 2428e41f4b71Sopenharmony_ci**参数:** 2429e41f4b71Sopenharmony_ci 2430e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2431e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------- | 2432e41f4b71Sopenharmony_ci| x | number | 是 | 宽度的缩放倍数。| 2433e41f4b71Sopenharmony_ci| y | number | 是 | 高度的缩放倍数。| 2434e41f4b71Sopenharmony_ci| level | [AntiAliasingLevel](#antialiasinglevel12) | 是 | 采用的缩放算法。| 2435e41f4b71Sopenharmony_ci 2436e41f4b71Sopenharmony_ci**错误码:** 2437e41f4b71Sopenharmony_ci 2438e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 2439e41f4b71Sopenharmony_ci 2440e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2441e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2442e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 2443e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 2444e41f4b71Sopenharmony_ci 2445e41f4b71Sopenharmony_ci**示例:** 2446e41f4b71Sopenharmony_ci 2447e41f4b71Sopenharmony_ci```ts 2448e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2449e41f4b71Sopenharmony_ci 2450e41f4b71Sopenharmony_ciasync function Demo() { 2451e41f4b71Sopenharmony_ci let scaleX: number = 2.0; 2452e41f4b71Sopenharmony_ci let scaleY: number = 1.0; 2453e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2454e41f4b71Sopenharmony_ci pixelMap.scaleSync(scaleX, scaleY, image.AntiAliasingLevel.LOW); 2455e41f4b71Sopenharmony_ci } 2456e41f4b71Sopenharmony_ci} 2457e41f4b71Sopenharmony_ci``` 2458e41f4b71Sopenharmony_ci 2459e41f4b71Sopenharmony_ci### translate<sup>9+</sup> 2460e41f4b71Sopenharmony_ci 2461e41f4b71Sopenharmony_citranslate(x: number, y: number, callback: AsyncCallback\<void>): void 2462e41f4b71Sopenharmony_ci 2463e41f4b71Sopenharmony_ci根据输入的坐标对图片进行位置变换,translate后的图片尺寸:width+X ,height+Y,使用callback形式返回。 2464e41f4b71Sopenharmony_ci 2465e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2466e41f4b71Sopenharmony_ci 2467e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2468e41f4b71Sopenharmony_ci 2469e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2470e41f4b71Sopenharmony_ci 2471e41f4b71Sopenharmony_ci**参数:** 2472e41f4b71Sopenharmony_ci 2473e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2474e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ----------------------------- | 2475e41f4b71Sopenharmony_ci| x | number | 是 | 区域横坐标。 | 2476e41f4b71Sopenharmony_ci| y | number | 是 | 区域纵坐标。 | 2477e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当对图片进行位置变换成功,err为undefined,否则为错误对象。| 2478e41f4b71Sopenharmony_ci 2479e41f4b71Sopenharmony_ci**示例:** 2480e41f4b71Sopenharmony_ci 2481e41f4b71Sopenharmony_ci```ts 2482e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2483e41f4b71Sopenharmony_ci 2484e41f4b71Sopenharmony_ciasync function Demo() { 2485e41f4b71Sopenharmony_ci let translateX: number = 50.0; 2486e41f4b71Sopenharmony_ci let translateY: number = 10.0; 2487e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2488e41f4b71Sopenharmony_ci pixelMap.translate(translateX, translateY, (err: BusinessError) => { 2489e41f4b71Sopenharmony_ci if (err) { 2490e41f4b71Sopenharmony_ci console.error(`Failed to translate pixelmap. code is ${err.code}, message is ${err.message}`); 2491e41f4b71Sopenharmony_ci return; 2492e41f4b71Sopenharmony_ci } else { 2493e41f4b71Sopenharmony_ci console.info("Succeeded in translating pixelmap."); 2494e41f4b71Sopenharmony_ci } 2495e41f4b71Sopenharmony_ci }) 2496e41f4b71Sopenharmony_ci } 2497e41f4b71Sopenharmony_ci} 2498e41f4b71Sopenharmony_ci``` 2499e41f4b71Sopenharmony_ci 2500e41f4b71Sopenharmony_ci### translate<sup>9+</sup> 2501e41f4b71Sopenharmony_ci 2502e41f4b71Sopenharmony_citranslate(x: number, y: number): Promise\<void> 2503e41f4b71Sopenharmony_ci 2504e41f4b71Sopenharmony_ci根据输入的坐标对图片进行位置变换,translate后的图片尺寸:width+X ,height+Y,使用Promise形式返回。 2505e41f4b71Sopenharmony_ci 2506e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2507e41f4b71Sopenharmony_ci 2508e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2509e41f4b71Sopenharmony_ci 2510e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2511e41f4b71Sopenharmony_ci 2512e41f4b71Sopenharmony_ci**参数:** 2513e41f4b71Sopenharmony_ci 2514e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2515e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ----------- | 2516e41f4b71Sopenharmony_ci| x | number | 是 | 区域横坐标。| 2517e41f4b71Sopenharmony_ci| y | number | 是 | 区域纵坐标。| 2518e41f4b71Sopenharmony_ci 2519e41f4b71Sopenharmony_ci**返回值:** 2520e41f4b71Sopenharmony_ci 2521e41f4b71Sopenharmony_ci| 类型 | 说明 | 2522e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 2523e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2524e41f4b71Sopenharmony_ci 2525e41f4b71Sopenharmony_ci**示例:** 2526e41f4b71Sopenharmony_ci 2527e41f4b71Sopenharmony_ci```ts 2528e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2529e41f4b71Sopenharmony_ci 2530e41f4b71Sopenharmony_ciasync function Demo() { 2531e41f4b71Sopenharmony_ci let translateX: number = 50.0; 2532e41f4b71Sopenharmony_ci let translateY: number = 10.0; 2533e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2534e41f4b71Sopenharmony_ci pixelMap.translate(translateX, translateY).then(() => { 2535e41f4b71Sopenharmony_ci console.info('Succeeded in translating pixelmap.'); 2536e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2537e41f4b71Sopenharmony_ci console.error(`Failed to translate pixelmap. code is ${err.code}, message is ${err.message}`); 2538e41f4b71Sopenharmony_ci }) 2539e41f4b71Sopenharmony_ci } 2540e41f4b71Sopenharmony_ci} 2541e41f4b71Sopenharmony_ci``` 2542e41f4b71Sopenharmony_ci 2543e41f4b71Sopenharmony_ci### translateSync<sup>12+</sup> 2544e41f4b71Sopenharmony_ci 2545e41f4b71Sopenharmony_citranslateSync(x: number, y: number): void 2546e41f4b71Sopenharmony_ci 2547e41f4b71Sopenharmony_ci根据输入的坐标对图片进行位置变换并同步返回结果。 2548e41f4b71Sopenharmony_ci 2549e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2550e41f4b71Sopenharmony_ci 2551e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2552e41f4b71Sopenharmony_ci 2553e41f4b71Sopenharmony_ci**参数:** 2554e41f4b71Sopenharmony_ci 2555e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2556e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------- | 2557e41f4b71Sopenharmony_ci| x | number | 是 | 宽度的缩放倍数。| 2558e41f4b71Sopenharmony_ci| y | number | 是 | 高度的缩放倍数。| 2559e41f4b71Sopenharmony_ci 2560e41f4b71Sopenharmony_ci**错误码:** 2561e41f4b71Sopenharmony_ci 2562e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 2563e41f4b71Sopenharmony_ci 2564e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2565e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2566e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 2567e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 2568e41f4b71Sopenharmony_ci 2569e41f4b71Sopenharmony_ci**示例:** 2570e41f4b71Sopenharmony_ci 2571e41f4b71Sopenharmony_ci```ts 2572e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2573e41f4b71Sopenharmony_ci 2574e41f4b71Sopenharmony_ciasync function Demo() { 2575e41f4b71Sopenharmony_ci let translateX : number = 50.0; 2576e41f4b71Sopenharmony_ci let translateY : number = 10.0; 2577e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2578e41f4b71Sopenharmony_ci pixelMap.translateSync(translateX, translateY); 2579e41f4b71Sopenharmony_ci } 2580e41f4b71Sopenharmony_ci} 2581e41f4b71Sopenharmony_ci``` 2582e41f4b71Sopenharmony_ci 2583e41f4b71Sopenharmony_ci### rotate<sup>9+</sup> 2584e41f4b71Sopenharmony_ci 2585e41f4b71Sopenharmony_cirotate(angle: number, callback: AsyncCallback\<void>): void 2586e41f4b71Sopenharmony_ci 2587e41f4b71Sopenharmony_ci根据输入的角度对图片进行旋转,使用callback形式返回。 2588e41f4b71Sopenharmony_ci 2589e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2590e41f4b71Sopenharmony_ci 2591e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2592e41f4b71Sopenharmony_ci 2593e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2594e41f4b71Sopenharmony_ci 2595e41f4b71Sopenharmony_ci**参数:** 2596e41f4b71Sopenharmony_ci 2597e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2598e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ----------------------------- | 2599e41f4b71Sopenharmony_ci| angle | number | 是 | 图片旋转的角度。 | 2600e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当对图片进行旋转成功,err为undefined,否则为错误对象。| 2601e41f4b71Sopenharmony_ci 2602e41f4b71Sopenharmony_ci**示例:** 2603e41f4b71Sopenharmony_ci 2604e41f4b71Sopenharmony_ci```ts 2605e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2606e41f4b71Sopenharmony_ci 2607e41f4b71Sopenharmony_ciasync function Demo() { 2608e41f4b71Sopenharmony_ci let angle: number = 90.0; 2609e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2610e41f4b71Sopenharmony_ci pixelMap.rotate(angle, (err: BusinessError) => { 2611e41f4b71Sopenharmony_ci if (err) { 2612e41f4b71Sopenharmony_ci console.error(`Failed to rotate pixelmap. code is ${err.code}, message is ${err.message}`); 2613e41f4b71Sopenharmony_ci return; 2614e41f4b71Sopenharmony_ci } else { 2615e41f4b71Sopenharmony_ci console.info("Succeeded in rotating pixelmap."); 2616e41f4b71Sopenharmony_ci } 2617e41f4b71Sopenharmony_ci }) 2618e41f4b71Sopenharmony_ci } 2619e41f4b71Sopenharmony_ci} 2620e41f4b71Sopenharmony_ci``` 2621e41f4b71Sopenharmony_ci 2622e41f4b71Sopenharmony_ci### rotate<sup>9+</sup> 2623e41f4b71Sopenharmony_ci 2624e41f4b71Sopenharmony_cirotate(angle: number): Promise\<void> 2625e41f4b71Sopenharmony_ci 2626e41f4b71Sopenharmony_ci根据输入的角度对图片进行旋转,使用Promise形式返回。 2627e41f4b71Sopenharmony_ci 2628e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2629e41f4b71Sopenharmony_ci 2630e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2631e41f4b71Sopenharmony_ci 2632e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2633e41f4b71Sopenharmony_ci 2634e41f4b71Sopenharmony_ci**参数:** 2635e41f4b71Sopenharmony_ci 2636e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2637e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ----------------------------- | 2638e41f4b71Sopenharmony_ci| angle | number | 是 | 图片旋转的角度。 | 2639e41f4b71Sopenharmony_ci 2640e41f4b71Sopenharmony_ci**返回值:** 2641e41f4b71Sopenharmony_ci 2642e41f4b71Sopenharmony_ci| 类型 | 说明 | 2643e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 2644e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2645e41f4b71Sopenharmony_ci 2646e41f4b71Sopenharmony_ci**示例:** 2647e41f4b71Sopenharmony_ci 2648e41f4b71Sopenharmony_ci```ts 2649e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2650e41f4b71Sopenharmony_ci 2651e41f4b71Sopenharmony_ciasync function Demo() { 2652e41f4b71Sopenharmony_ci let angle: number = 90.0; 2653e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2654e41f4b71Sopenharmony_ci pixelMap.rotate(angle).then(() => { 2655e41f4b71Sopenharmony_ci console.info('Succeeded in rotating pixelmap.'); 2656e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2657e41f4b71Sopenharmony_ci console.error(`Failed to rotate pixelmap. code is ${err.code}, message is ${err.message}`); 2658e41f4b71Sopenharmony_ci }) 2659e41f4b71Sopenharmony_ci } 2660e41f4b71Sopenharmony_ci} 2661e41f4b71Sopenharmony_ci``` 2662e41f4b71Sopenharmony_ci 2663e41f4b71Sopenharmony_ci### rotateSync<sup>12+</sup> 2664e41f4b71Sopenharmony_ci 2665e41f4b71Sopenharmony_cirotateSync(angle: number): void 2666e41f4b71Sopenharmony_ci 2667e41f4b71Sopenharmony_ci根据输入的角度对图片进行旋转并同步返回结果。 2668e41f4b71Sopenharmony_ci 2669e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2670e41f4b71Sopenharmony_ci 2671e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2672e41f4b71Sopenharmony_ci 2673e41f4b71Sopenharmony_ci**参数:** 2674e41f4b71Sopenharmony_ci 2675e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2676e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ----------------------------- | 2677e41f4b71Sopenharmony_ci| angle | number | 是 | 图片旋转的角度。 | 2678e41f4b71Sopenharmony_ci 2679e41f4b71Sopenharmony_ci**错误码:** 2680e41f4b71Sopenharmony_ci 2681e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 2682e41f4b71Sopenharmony_ci 2683e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2684e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2685e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 2686e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 2687e41f4b71Sopenharmony_ci 2688e41f4b71Sopenharmony_ci**示例:** 2689e41f4b71Sopenharmony_ci 2690e41f4b71Sopenharmony_ci```ts 2691e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2692e41f4b71Sopenharmony_ci 2693e41f4b71Sopenharmony_ciasync function Demo() { 2694e41f4b71Sopenharmony_ci let angle : number = 90.0; 2695e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2696e41f4b71Sopenharmony_ci pixelMap.rotateSync(angle); 2697e41f4b71Sopenharmony_ci } 2698e41f4b71Sopenharmony_ci} 2699e41f4b71Sopenharmony_ci``` 2700e41f4b71Sopenharmony_ci 2701e41f4b71Sopenharmony_ci### flip<sup>9+</sup> 2702e41f4b71Sopenharmony_ci 2703e41f4b71Sopenharmony_ciflip(horizontal: boolean, vertical: boolean, callback: AsyncCallback\<void>): void 2704e41f4b71Sopenharmony_ci 2705e41f4b71Sopenharmony_ci根据输入的条件对图片进行翻转,使用callback形式返回。 2706e41f4b71Sopenharmony_ci 2707e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2708e41f4b71Sopenharmony_ci 2709e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2710e41f4b71Sopenharmony_ci 2711e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2712e41f4b71Sopenharmony_ci 2713e41f4b71Sopenharmony_ci**参数:** 2714e41f4b71Sopenharmony_ci 2715e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2716e41f4b71Sopenharmony_ci| ---------- | -------------------- | ---- | ----------------------------- | 2717e41f4b71Sopenharmony_ci| horizontal | boolean | 是 | 水平翻转。 | 2718e41f4b71Sopenharmony_ci| vertical | boolean | 是 | 垂直翻转。 | 2719e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当对图片翻转成功,err为undefined,否则为错误对象。| 2720e41f4b71Sopenharmony_ci 2721e41f4b71Sopenharmony_ci**示例:** 2722e41f4b71Sopenharmony_ci 2723e41f4b71Sopenharmony_ci```ts 2724e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2725e41f4b71Sopenharmony_ci 2726e41f4b71Sopenharmony_ciasync function Demo() { 2727e41f4b71Sopenharmony_ci let horizontal: boolean = true; 2728e41f4b71Sopenharmony_ci let vertical: boolean = false; 2729e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2730e41f4b71Sopenharmony_ci pixelMap.flip(horizontal, vertical, (err: BusinessError) => { 2731e41f4b71Sopenharmony_ci if (err) { 2732e41f4b71Sopenharmony_ci console.error(`Failed to flip pixelmap. code is ${err.code}, message is ${err.message}`); 2733e41f4b71Sopenharmony_ci return; 2734e41f4b71Sopenharmony_ci } else { 2735e41f4b71Sopenharmony_ci console.info("Succeeded in flipping pixelmap."); 2736e41f4b71Sopenharmony_ci } 2737e41f4b71Sopenharmony_ci }) 2738e41f4b71Sopenharmony_ci } 2739e41f4b71Sopenharmony_ci} 2740e41f4b71Sopenharmony_ci``` 2741e41f4b71Sopenharmony_ci 2742e41f4b71Sopenharmony_ci### flip<sup>9+</sup> 2743e41f4b71Sopenharmony_ci 2744e41f4b71Sopenharmony_ciflip(horizontal: boolean, vertical: boolean): Promise\<void> 2745e41f4b71Sopenharmony_ci 2746e41f4b71Sopenharmony_ci根据输入的条件对图片进行翻转,使用Promise形式返回。 2747e41f4b71Sopenharmony_ci 2748e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2749e41f4b71Sopenharmony_ci 2750e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2751e41f4b71Sopenharmony_ci 2752e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2753e41f4b71Sopenharmony_ci 2754e41f4b71Sopenharmony_ci**参数:** 2755e41f4b71Sopenharmony_ci 2756e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2757e41f4b71Sopenharmony_ci| ---------- | ------- | ---- | --------- | 2758e41f4b71Sopenharmony_ci| horizontal | boolean | 是 | 水平翻转。| 2759e41f4b71Sopenharmony_ci| vertical | boolean | 是 | 垂直翻转。| 2760e41f4b71Sopenharmony_ci 2761e41f4b71Sopenharmony_ci**返回值:** 2762e41f4b71Sopenharmony_ci 2763e41f4b71Sopenharmony_ci| 类型 | 说明 | 2764e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 2765e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2766e41f4b71Sopenharmony_ci 2767e41f4b71Sopenharmony_ci**示例:** 2768e41f4b71Sopenharmony_ci 2769e41f4b71Sopenharmony_ci```ts 2770e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2771e41f4b71Sopenharmony_ci 2772e41f4b71Sopenharmony_ciasync function Demo() { 2773e41f4b71Sopenharmony_ci let horizontal: boolean = true; 2774e41f4b71Sopenharmony_ci let vertical: boolean = false; 2775e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2776e41f4b71Sopenharmony_ci pixelMap.flip(horizontal, vertical).then(() => { 2777e41f4b71Sopenharmony_ci console.info('Succeeded in flipping pixelmap.'); 2778e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2779e41f4b71Sopenharmony_ci console.error(`Failed to flip pixelmap. code is ${err.code}, message is ${err.message}`); 2780e41f4b71Sopenharmony_ci }) 2781e41f4b71Sopenharmony_ci } 2782e41f4b71Sopenharmony_ci} 2783e41f4b71Sopenharmony_ci``` 2784e41f4b71Sopenharmony_ci 2785e41f4b71Sopenharmony_ci### flipSync<sup>12+</sup> 2786e41f4b71Sopenharmony_ci 2787e41f4b71Sopenharmony_ciflipSync(horizontal: boolean, vertical: boolean): void 2788e41f4b71Sopenharmony_ci 2789e41f4b71Sopenharmony_ci根据输入的条件对图片进行翻转并同步返回结果。 2790e41f4b71Sopenharmony_ci 2791e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2792e41f4b71Sopenharmony_ci 2793e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2794e41f4b71Sopenharmony_ci 2795e41f4b71Sopenharmony_ci**参数:** 2796e41f4b71Sopenharmony_ci 2797e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2798e41f4b71Sopenharmony_ci| ---------- | -------------------- | ---- | ----------------------------- | 2799e41f4b71Sopenharmony_ci| horizontal | boolean | 是 | 水平翻转。 | 2800e41f4b71Sopenharmony_ci| vertical | boolean | 是 | 垂直翻转。 | 2801e41f4b71Sopenharmony_ci 2802e41f4b71Sopenharmony_ci**错误码:** 2803e41f4b71Sopenharmony_ci 2804e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 2805e41f4b71Sopenharmony_ci 2806e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2807e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2808e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 2809e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 2810e41f4b71Sopenharmony_ci 2811e41f4b71Sopenharmony_ci**示例:** 2812e41f4b71Sopenharmony_ci 2813e41f4b71Sopenharmony_ci```ts 2814e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2815e41f4b71Sopenharmony_ci 2816e41f4b71Sopenharmony_ciasync function Demo() { 2817e41f4b71Sopenharmony_ci let horizontal : boolean = true; 2818e41f4b71Sopenharmony_ci let vertical : boolean = false; 2819e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2820e41f4b71Sopenharmony_ci pixelMap.flipSync(horizontal, vertical); 2821e41f4b71Sopenharmony_ci } 2822e41f4b71Sopenharmony_ci} 2823e41f4b71Sopenharmony_ci``` 2824e41f4b71Sopenharmony_ci 2825e41f4b71Sopenharmony_ci### crop<sup>9+</sup> 2826e41f4b71Sopenharmony_ci 2827e41f4b71Sopenharmony_cicrop(region: Region, callback: AsyncCallback\<void>): void 2828e41f4b71Sopenharmony_ci 2829e41f4b71Sopenharmony_ci根据输入的尺寸对图片进行裁剪,使用callback形式返回。 2830e41f4b71Sopenharmony_ci 2831e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2832e41f4b71Sopenharmony_ci 2833e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2834e41f4b71Sopenharmony_ci 2835e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2836e41f4b71Sopenharmony_ci 2837e41f4b71Sopenharmony_ci**参数:** 2838e41f4b71Sopenharmony_ci 2839e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2840e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ----------------------------- | 2841e41f4b71Sopenharmony_ci| region | [Region](#region8) | 是 | 裁剪的尺寸。 | 2842e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当对图片进行裁剪成功,err为undefined,否则为错误对象。| 2843e41f4b71Sopenharmony_ci 2844e41f4b71Sopenharmony_ci**示例:** 2845e41f4b71Sopenharmony_ci 2846e41f4b71Sopenharmony_ci```ts 2847e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2848e41f4b71Sopenharmony_ci 2849e41f4b71Sopenharmony_ciasync function Demo() { 2850e41f4b71Sopenharmony_ci let region: image.Region = { x: 0, y: 0, size: { height: 100, width: 100 } }; 2851e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2852e41f4b71Sopenharmony_ci pixelMap.crop(region, (err: BusinessError) => { 2853e41f4b71Sopenharmony_ci if (err) { 2854e41f4b71Sopenharmony_ci console.error(`Failed to crop pixelmap. code is ${err.code}, message is ${err.message}`); 2855e41f4b71Sopenharmony_ci return; 2856e41f4b71Sopenharmony_ci } else { 2857e41f4b71Sopenharmony_ci console.info("Succeeded in cropping pixelmap."); 2858e41f4b71Sopenharmony_ci } 2859e41f4b71Sopenharmony_ci }) 2860e41f4b71Sopenharmony_ci } 2861e41f4b71Sopenharmony_ci} 2862e41f4b71Sopenharmony_ci``` 2863e41f4b71Sopenharmony_ci 2864e41f4b71Sopenharmony_ci### crop<sup>9+</sup> 2865e41f4b71Sopenharmony_ci 2866e41f4b71Sopenharmony_cicrop(region: Region): Promise\<void> 2867e41f4b71Sopenharmony_ci 2868e41f4b71Sopenharmony_ci根据输入的尺寸对图片进行裁剪,使用Promise形式返回。 2869e41f4b71Sopenharmony_ci 2870e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 2871e41f4b71Sopenharmony_ci 2872e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2873e41f4b71Sopenharmony_ci 2874e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2875e41f4b71Sopenharmony_ci 2876e41f4b71Sopenharmony_ci**参数:** 2877e41f4b71Sopenharmony_ci 2878e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2879e41f4b71Sopenharmony_ci| ------ | ------------------ | ---- | ----------- | 2880e41f4b71Sopenharmony_ci| region | [Region](#region8) | 是 | 裁剪的尺寸。| 2881e41f4b71Sopenharmony_ci 2882e41f4b71Sopenharmony_ci**返回值:** 2883e41f4b71Sopenharmony_ci 2884e41f4b71Sopenharmony_ci| 类型 | 说明 | 2885e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 2886e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。| 2887e41f4b71Sopenharmony_ci 2888e41f4b71Sopenharmony_ci**示例:** 2889e41f4b71Sopenharmony_ci 2890e41f4b71Sopenharmony_ci```ts 2891e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2892e41f4b71Sopenharmony_ci 2893e41f4b71Sopenharmony_ciasync function Demo() { 2894e41f4b71Sopenharmony_ci let region: image.Region = { x: 0, y: 0, size: { height: 100, width: 100 } }; 2895e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2896e41f4b71Sopenharmony_ci pixelMap.crop(region).then(() => { 2897e41f4b71Sopenharmony_ci console.info('Succeeded in cropping pixelmap.'); 2898e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2899e41f4b71Sopenharmony_ci console.error(`Failed to crop pixelmap. code is ${err.code}, message is ${err.message}`); 2900e41f4b71Sopenharmony_ci 2901e41f4b71Sopenharmony_ci }); 2902e41f4b71Sopenharmony_ci } 2903e41f4b71Sopenharmony_ci} 2904e41f4b71Sopenharmony_ci``` 2905e41f4b71Sopenharmony_ci 2906e41f4b71Sopenharmony_ci### cropSync<sup>12+</sup> 2907e41f4b71Sopenharmony_ci 2908e41f4b71Sopenharmony_cicropSync(region: Region): void 2909e41f4b71Sopenharmony_ci 2910e41f4b71Sopenharmony_ci根据输入的尺寸裁剪图片。 2911e41f4b71Sopenharmony_ci 2912e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2913e41f4b71Sopenharmony_ci 2914e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2915e41f4b71Sopenharmony_ci 2916e41f4b71Sopenharmony_ci**参数:** 2917e41f4b71Sopenharmony_ci 2918e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2919e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ----------------------------- | 2920e41f4b71Sopenharmony_ci| region | [Region](#region8) | 是 | 裁剪的尺寸。 | 2921e41f4b71Sopenharmony_ci 2922e41f4b71Sopenharmony_ci**错误码:** 2923e41f4b71Sopenharmony_ci 2924e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 2925e41f4b71Sopenharmony_ci 2926e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2927e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2928e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 2929e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 2930e41f4b71Sopenharmony_ci 2931e41f4b71Sopenharmony_ci**示例:** 2932e41f4b71Sopenharmony_ci 2933e41f4b71Sopenharmony_ci```ts 2934e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2935e41f4b71Sopenharmony_ci 2936e41f4b71Sopenharmony_ciasync function Demo() { 2937e41f4b71Sopenharmony_ci let region : image.Region = { x: 0, y: 0, size: { height: 100, width: 100 } }; 2938e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2939e41f4b71Sopenharmony_ci pixelMap.cropSync(region); 2940e41f4b71Sopenharmony_ci } 2941e41f4b71Sopenharmony_ci} 2942e41f4b71Sopenharmony_ci``` 2943e41f4b71Sopenharmony_ci 2944e41f4b71Sopenharmony_ci### getColorSpace<sup>10+</sup> 2945e41f4b71Sopenharmony_ci 2946e41f4b71Sopenharmony_cigetColorSpace(): colorSpaceManager.ColorSpaceManager 2947e41f4b71Sopenharmony_ci 2948e41f4b71Sopenharmony_ci获取图像广色域信息。 2949e41f4b71Sopenharmony_ci 2950e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2951e41f4b71Sopenharmony_ci 2952e41f4b71Sopenharmony_ci**返回值:** 2953e41f4b71Sopenharmony_ci 2954e41f4b71Sopenharmony_ci| 类型 | 说明 | 2955e41f4b71Sopenharmony_ci| ----------------------------------- | ---------------- | 2956e41f4b71Sopenharmony_ci| [colorSpaceManager.ColorSpaceManager](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspacemanager) | 图像广色域信息。 | 2957e41f4b71Sopenharmony_ci 2958e41f4b71Sopenharmony_ci**错误码:** 2959e41f4b71Sopenharmony_ci 2960e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 2961e41f4b71Sopenharmony_ci 2962e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2963e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2964e41f4b71Sopenharmony_ci| 62980101| If the image data abnormal. | 2965e41f4b71Sopenharmony_ci| 62980103| If the image data unsupport. | 2966e41f4b71Sopenharmony_ci| 62980115| If the image parameter invalid. | 2967e41f4b71Sopenharmony_ci 2968e41f4b71Sopenharmony_ci**示例:** 2969e41f4b71Sopenharmony_ci 2970e41f4b71Sopenharmony_ci```ts 2971e41f4b71Sopenharmony_ciasync function Demo() { 2972e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 2973e41f4b71Sopenharmony_ci let csm = pixelMap.getColorSpace(); 2974e41f4b71Sopenharmony_ci } 2975e41f4b71Sopenharmony_ci} 2976e41f4b71Sopenharmony_ci``` 2977e41f4b71Sopenharmony_ci 2978e41f4b71Sopenharmony_ci### setColorSpace<sup>10+</sup> 2979e41f4b71Sopenharmony_ci 2980e41f4b71Sopenharmony_cisetColorSpace(colorSpace: colorSpaceManager.ColorSpaceManager): void 2981e41f4b71Sopenharmony_ci 2982e41f4b71Sopenharmony_ci设置图像广色域信息。 2983e41f4b71Sopenharmony_ci 2984e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 2985e41f4b71Sopenharmony_ci 2986e41f4b71Sopenharmony_ci**参数:** 2987e41f4b71Sopenharmony_ci 2988e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2989e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | --------------- | 2990e41f4b71Sopenharmony_ci| colorSpace | [colorSpaceManager.ColorSpaceManager](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspacemanager) | 是 | 图像广色域信息。| 2991e41f4b71Sopenharmony_ci 2992e41f4b71Sopenharmony_ci**错误码:** 2993e41f4b71Sopenharmony_ci 2994e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 2995e41f4b71Sopenharmony_ci 2996e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2997e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2998e41f4b71Sopenharmony_ci| 62980111| The image source data is incomplete. | 2999e41f4b71Sopenharmony_ci| 62980115| If the image parameter invalid. | 3000e41f4b71Sopenharmony_ci 3001e41f4b71Sopenharmony_ci**示例:** 3002e41f4b71Sopenharmony_ci 3003e41f4b71Sopenharmony_ci```ts 3004e41f4b71Sopenharmony_ciimport { colorSpaceManager } from '@kit.ArkGraphics2D'; 3005e41f4b71Sopenharmony_ciasync function Demo() { 3006e41f4b71Sopenharmony_ci let colorSpaceName = colorSpaceManager.ColorSpace.SRGB; 3007e41f4b71Sopenharmony_ci let csm: colorSpaceManager.ColorSpaceManager = colorSpaceManager.create(colorSpaceName); 3008e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 3009e41f4b71Sopenharmony_ci pixelMap.setColorSpace(csm); 3010e41f4b71Sopenharmony_ci } 3011e41f4b71Sopenharmony_ci} 3012e41f4b71Sopenharmony_ci``` 3013e41f4b71Sopenharmony_ci 3014e41f4b71Sopenharmony_ci### applyColorSpace<sup>11+</sup> 3015e41f4b71Sopenharmony_ci 3016e41f4b71Sopenharmony_ciapplyColorSpace(targetColorSpace: colorSpaceManager.ColorSpaceManager, callback: AsyncCallback\<void>): void 3017e41f4b71Sopenharmony_ci 3018e41f4b71Sopenharmony_ci根据输入的目标色彩空间对图像像素颜色进行色彩空间转换,使用callback形式返回。 3019e41f4b71Sopenharmony_ci 3020e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3021e41f4b71Sopenharmony_ci 3022e41f4b71Sopenharmony_ci**参数:** 3023e41f4b71Sopenharmony_ci 3024e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3025e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ----------------------------- | 3026e41f4b71Sopenharmony_ci| targetColorSpace | [colorSpaceManager.ColorSpaceManager](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspacemanager) | 是 | 目标色彩空间,支持SRGB、DCI_P3、DISPLAY_P3、ADOBE_RGB_1998。| 3027e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当对图像像素颜色进行色彩空间转换成功,err为undefined,否则为错误对象。| 3028e41f4b71Sopenharmony_ci 3029e41f4b71Sopenharmony_ci**错误码:** 3030e41f4b71Sopenharmony_ci 3031e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 3032e41f4b71Sopenharmony_ci 3033e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3034e41f4b71Sopenharmony_ci| ------- | ------------------------------------------| 3035e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 3036e41f4b71Sopenharmony_ci| 62980104| Failed to initialize the internal object. | 3037e41f4b71Sopenharmony_ci| 62980108| Failed to convert the color space. | 3038e41f4b71Sopenharmony_ci| 62980115| Invalid image parameter. | 3039e41f4b71Sopenharmony_ci 3040e41f4b71Sopenharmony_ci**示例:** 3041e41f4b71Sopenharmony_ci 3042e41f4b71Sopenharmony_ci```ts 3043e41f4b71Sopenharmony_ciimport { colorSpaceManager } from '@kit.ArkGraphics2D'; 3044e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3045e41f4b71Sopenharmony_ci 3046e41f4b71Sopenharmony_ciasync function Demo() { 3047e41f4b71Sopenharmony_ci let colorSpaceName = colorSpaceManager.ColorSpace.SRGB; 3048e41f4b71Sopenharmony_ci let targetColorSpace: colorSpaceManager.ColorSpaceManager = colorSpaceManager.create(colorSpaceName); 3049e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 3050e41f4b71Sopenharmony_ci pixelMap.applyColorSpace(targetColorSpace, (err: BusinessError) => { 3051e41f4b71Sopenharmony_ci if (err) { 3052e41f4b71Sopenharmony_ci console.error(`Failed to apply color space for pixelmap object. code is ${err.code}, message is ${err.message}`); 3053e41f4b71Sopenharmony_ci return; 3054e41f4b71Sopenharmony_ci } else { 3055e41f4b71Sopenharmony_ci console.info('Succeeded in applying color space for pixelmap object.'); 3056e41f4b71Sopenharmony_ci } 3057e41f4b71Sopenharmony_ci }) 3058e41f4b71Sopenharmony_ci } 3059e41f4b71Sopenharmony_ci} 3060e41f4b71Sopenharmony_ci``` 3061e41f4b71Sopenharmony_ci 3062e41f4b71Sopenharmony_ci### applyColorSpace<sup>11+</sup> 3063e41f4b71Sopenharmony_ci 3064e41f4b71Sopenharmony_ciapplyColorSpace(targetColorSpace: colorSpaceManager.ColorSpaceManager): Promise\<void> 3065e41f4b71Sopenharmony_ci 3066e41f4b71Sopenharmony_ci根据输入的目标色彩空间对图像像素颜色进行色彩空间转换,使用Promise形式返回。 3067e41f4b71Sopenharmony_ci 3068e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3069e41f4b71Sopenharmony_ci 3070e41f4b71Sopenharmony_ci**参数:** 3071e41f4b71Sopenharmony_ci 3072e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3073e41f4b71Sopenharmony_ci| ------ | ------------------ | ---- | ----------- | 3074e41f4b71Sopenharmony_ci| targetColorSpace | [colorSpaceManager.ColorSpaceManager](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspacemanager) | 是 | 目标色彩空间,支持SRGB、DCI_P3、DISPLAY_P3、ADOBE_RGB_1998。| 3075e41f4b71Sopenharmony_ci 3076e41f4b71Sopenharmony_ci**返回值:** 3077e41f4b71Sopenharmony_ci 3078e41f4b71Sopenharmony_ci| 类型 | 说明 | 3079e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 3080e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3081e41f4b71Sopenharmony_ci 3082e41f4b71Sopenharmony_ci**错误码:** 3083e41f4b71Sopenharmony_ci 3084e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 3085e41f4b71Sopenharmony_ci 3086e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3087e41f4b71Sopenharmony_ci| ------- | ------------------------------------------| 3088e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed | 3089e41f4b71Sopenharmony_ci| 62980104| Failed to initialize the internal object. | 3090e41f4b71Sopenharmony_ci| 62980108| Failed to convert the color space. | 3091e41f4b71Sopenharmony_ci| 62980115| Invalid image parameter. | 3092e41f4b71Sopenharmony_ci 3093e41f4b71Sopenharmony_ci**示例:** 3094e41f4b71Sopenharmony_ci 3095e41f4b71Sopenharmony_ci```ts 3096e41f4b71Sopenharmony_ciimport { colorSpaceManager } from '@kit.ArkGraphics2D'; 3097e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3098e41f4b71Sopenharmony_ci 3099e41f4b71Sopenharmony_ciasync function Demo() { 3100e41f4b71Sopenharmony_ci let colorSpaceName = colorSpaceManager.ColorSpace.SRGB; 3101e41f4b71Sopenharmony_ci let targetColorSpace: colorSpaceManager.ColorSpaceManager = colorSpaceManager.create(colorSpaceName); 3102e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 3103e41f4b71Sopenharmony_ci pixelMap.applyColorSpace(targetColorSpace).then(() => { 3104e41f4b71Sopenharmony_ci console.info('Succeeded in applying color space for pixelmap object.'); 3105e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 3106e41f4b71Sopenharmony_ci console.error(`Failed to apply color space for pixelmap object. code is ${error.code}, message is ${error.message}`); 3107e41f4b71Sopenharmony_ci }) 3108e41f4b71Sopenharmony_ci } 3109e41f4b71Sopenharmony_ci} 3110e41f4b71Sopenharmony_ci``` 3111e41f4b71Sopenharmony_ci 3112e41f4b71Sopenharmony_ci### toSdr<sup>12+<sup> 3113e41f4b71Sopenharmony_ci 3114e41f4b71Sopenharmony_citoSdr(): Promise\<void> 3115e41f4b71Sopenharmony_ci 3116e41f4b71Sopenharmony_ci将HDR的图像内容转换为SDR的图像内容,异步使用Promise形式返回。 3117e41f4b71Sopenharmony_ci 3118e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3119e41f4b71Sopenharmony_ci 3120e41f4b71Sopenharmony_ci**返回值:** 3121e41f4b71Sopenharmony_ci 3122e41f4b71Sopenharmony_ci| 类型 | 说明 | 3123e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 3124e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3125e41f4b71Sopenharmony_ci 3126e41f4b71Sopenharmony_ci**错误码:** 3127e41f4b71Sopenharmony_ci 3128e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 3129e41f4b71Sopenharmony_ci 3130e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3131e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3132e41f4b71Sopenharmony_ci| 62980137 | Invalid image operation. | 3133e41f4b71Sopenharmony_ci 3134e41f4b71Sopenharmony_ci**示例:** 3135e41f4b71Sopenharmony_ci 3136e41f4b71Sopenharmony_ci```ts 3137e41f4b71Sopenharmony_ciimport image from '@ohos.multimedia.image' 3138e41f4b71Sopenharmony_ciimport resourceManager from '@ohos.resourceManager' 3139e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3140e41f4b71Sopenharmony_ci 3141e41f4b71Sopenharmony_ci//此处'hdr.jpg'仅作示例,请开发者自行替换,否则imageSource创建失败会导致后续无法正常执行。 3142e41f4b71Sopenharmony_cilet img = getContext().resourceManager.getMediaContentSync($r('app.media.hdr')); 3143e41f4b71Sopenharmony_cilet imageSource = image.createImageSource(img.buffer.slice(0)); 3144e41f4b71Sopenharmony_cilet decodingOptions: image.DecodingOptions = { 3145e41f4b71Sopenharmony_ci desiredDynamicRange: image.DecodingDynamicRange.AUTO 3146e41f4b71Sopenharmony_ci}; 3147e41f4b71Sopenharmony_cilet pixelmap = imageSource.createPixelMapSync(decodingOptions); 3148e41f4b71Sopenharmony_ciif (pixelmap != undefined) { 3149e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelMap object.'); 3150e41f4b71Sopenharmony_ci pixelmap.toSdr().then(() => { 3151e41f4b71Sopenharmony_ci let imageInfo = pixelmap.getImageInfoSync(); 3152e41f4b71Sopenharmony_ci console.info("after toSdr ,imageInfo isHdr:" + imageInfo.isHdr); 3153e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3154e41f4b71Sopenharmony_ci console.error(`Failed to set sdr. code is ${err.code}, message is ${err.message}`); 3155e41f4b71Sopenharmony_ci }); 3156e41f4b71Sopenharmony_ci} else { 3157e41f4b71Sopenharmony_ci console.info('Failed to create pixelMap.'); 3158e41f4b71Sopenharmony_ci} 3159e41f4b71Sopenharmony_ci``` 3160e41f4b71Sopenharmony_ci 3161e41f4b71Sopenharmony_ci### getMetadata<sup>12+</sup> 3162e41f4b71Sopenharmony_ci 3163e41f4b71Sopenharmony_cigetMetadata(key: HdrMetadataKey): HdrMetadataValue 3164e41f4b71Sopenharmony_ci 3165e41f4b71Sopenharmony_ci从PixelMap中获取元数据。 3166e41f4b71Sopenharmony_ci 3167e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3168e41f4b71Sopenharmony_ci 3169e41f4b71Sopenharmony_ci**参数:** 3170e41f4b71Sopenharmony_ci 3171e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3172e41f4b71Sopenharmony_ci| ------------- | -------------------------------- | ---- | ---------------- | 3173e41f4b71Sopenharmony_ci| key | [HdrMetadataKey](#hdrmetadatakey12) | 是 | HDR元数据的关键字,可用于查询对应值。 | 3174e41f4b71Sopenharmony_ci 3175e41f4b71Sopenharmony_ci**返回值:** 3176e41f4b71Sopenharmony_ci 3177e41f4b71Sopenharmony_ci| 类型 | 说明 | 3178e41f4b71Sopenharmony_ci| --------------------------------- | --------------------------------- | 3179e41f4b71Sopenharmony_ci| [HdrMetadataValue](#hdrmetadatavalue12) | 返回元数据的值。 | 3180e41f4b71Sopenharmony_ci 3181e41f4b71Sopenharmony_ci**错误码:** 3182e41f4b71Sopenharmony_ci 3183e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 3184e41f4b71Sopenharmony_ci 3185e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3186e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3187e41f4b71Sopenharmony_ci| 401| Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 3188e41f4b71Sopenharmony_ci| 501 | Resource unavailable. | 3189e41f4b71Sopenharmony_ci| 62980173 | The DMA memory does not exist. | 3190e41f4b71Sopenharmony_ci| 62980302 | Memory copy failed. | 3191e41f4b71Sopenharmony_ci 3192e41f4b71Sopenharmony_ci**示例:** 3193e41f4b71Sopenharmony_ci 3194e41f4b71Sopenharmony_ci```ts 3195e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3196e41f4b71Sopenharmony_ciimport image from '@ohos.multimedia.image' 3197e41f4b71Sopenharmony_ci 3198e41f4b71Sopenharmony_ci// 'app.media.test'需要替换为本地hdr图片。 3199e41f4b71Sopenharmony_cilet img = getContext().resourceManager.getMediaContentSync($r('app.media.test')); 3200e41f4b71Sopenharmony_cilet imageSource = image.createImageSource(img.buffer.slice(0)); 3201e41f4b71Sopenharmony_cilet decodingOptions: image.DecodingOptions = { 3202e41f4b71Sopenharmony_ci desiredDynamicRange: image.DecodingDynamicRange.AUTO 3203e41f4b71Sopenharmony_ci}; 3204e41f4b71Sopenharmony_cilet pixelmap = imageSource.createPixelMapSync(decodingOptions); 3205e41f4b71Sopenharmony_ciif (pixelmap != undefined) { 3206e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelMap object.'); 3207e41f4b71Sopenharmony_ci try { 3208e41f4b71Sopenharmony_ci let staticMetadata = pixelmap.getMetadata(image.HdrMetadataKey.HDR_STATIC_METADATA); 3209e41f4b71Sopenharmony_ci console.info("getmetadata:" + JSON.stringify(staticMetadata)); 3210e41f4b71Sopenharmony_ci } catch (e) { 3211e41f4b71Sopenharmony_ci console.info('pixelmap create failed' + e); 3212e41f4b71Sopenharmony_ci } 3213e41f4b71Sopenharmony_ci} else { 3214e41f4b71Sopenharmony_ci console.info('Failed to create pixelMap.'); 3215e41f4b71Sopenharmony_ci} 3216e41f4b71Sopenharmony_ci``` 3217e41f4b71Sopenharmony_ci 3218e41f4b71Sopenharmony_ci### setMetadata<sup>12+</sup> 3219e41f4b71Sopenharmony_ci 3220e41f4b71Sopenharmony_cisetMetadata(key: HdrMetadataKey, value: HdrMetadataValue): Promise\<void> 3221e41f4b71Sopenharmony_ci 3222e41f4b71Sopenharmony_ci设置PixelMap元数据。 3223e41f4b71Sopenharmony_ci 3224e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3225e41f4b71Sopenharmony_ci 3226e41f4b71Sopenharmony_ci**参数:** 3227e41f4b71Sopenharmony_ci 3228e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3229e41f4b71Sopenharmony_ci| ------------- | -------------------------------- | ---- | ---------------- | 3230e41f4b71Sopenharmony_ci| key | [HdrMetadataKey](#hdrmetadatakey12) | 是 | HDR元数据的关键字,用于设置对应值 | 3231e41f4b71Sopenharmony_ci| value | [HdrMetadataValue](#hdrmetadatavalue12) | 是 | 元数据的值 | 3232e41f4b71Sopenharmony_ci 3233e41f4b71Sopenharmony_ci**返回值:** 3234e41f4b71Sopenharmony_ci 3235e41f4b71Sopenharmony_ci| 类型 | 说明 | 3236e41f4b71Sopenharmony_ci| -------------- | --------------------- | 3237e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3238e41f4b71Sopenharmony_ci 3239e41f4b71Sopenharmony_ci**错误码:** 3240e41f4b71Sopenharmony_ci 3241e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 3242e41f4b71Sopenharmony_ci 3243e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3244e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3245e41f4b71Sopenharmony_ci| 401| Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 3246e41f4b71Sopenharmony_ci| 501 | Resource unavailable. | 3247e41f4b71Sopenharmony_ci| 62980173 | The DMA memory does not exist. | 3248e41f4b71Sopenharmony_ci| 62980302 | Memory copy failed. | 3249e41f4b71Sopenharmony_ci 3250e41f4b71Sopenharmony_ci**示例:** 3251e41f4b71Sopenharmony_ci 3252e41f4b71Sopenharmony_ci```ts 3253e41f4b71Sopenharmony_ciimport image from '@ohos.multimedia.image' 3254e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3255e41f4b71Sopenharmony_ci 3256e41f4b71Sopenharmony_cilet staticMetadata: image.HdrStaticMetadata = { 3257e41f4b71Sopenharmony_ci displayPrimariesX: [1.1, 1.1, 1.1], 3258e41f4b71Sopenharmony_ci displayPrimariesY: [1.2, 1.2, 1.2], 3259e41f4b71Sopenharmony_ci whitePointX: 1.1, 3260e41f4b71Sopenharmony_ci whitePointY: 1.2, 3261e41f4b71Sopenharmony_ci maxLuminance: 2.1, 3262e41f4b71Sopenharmony_ci minLuminance: 1.0, 3263e41f4b71Sopenharmony_ci maxContentLightLevel: 2.1, 3264e41f4b71Sopenharmony_ci maxFrameAverageLightLevel: 2.1, 3265e41f4b71Sopenharmony_ci} 3266e41f4b71Sopenharmony_ciconst color: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 3267e41f4b71Sopenharmony_cilet opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } 3268e41f4b71Sopenharmony_ciimage.createPixelMap(color, opts).then((pixelMap: image.PixelMap) => { 3269e41f4b71Sopenharmony_ci pixelMap.setMetadata(image.HdrMetadataKey.HDR_STATIC_METADATA, staticMetadata).then((pixelMap: image.PixelMap) => { 3270e41f4b71Sopenharmony_ci console.info('Succeeded in setting pixelMap metadata.'); 3271e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 3272e41f4b71Sopenharmony_ci console.error(`Failed to set the metadata.code ${error.code},message is ${error.message}`); 3273e41f4b71Sopenharmony_ci }) 3274e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 3275e41f4b71Sopenharmony_ci console.error(`Failed to create the PixelMap.code ${error.code},message is ${error.message}`); 3276e41f4b71Sopenharmony_ci}) 3277e41f4b71Sopenharmony_ci 3278e41f4b71Sopenharmony_ci``` 3279e41f4b71Sopenharmony_ci 3280e41f4b71Sopenharmony_ci### setTransferDetached<sup>12+<sup> 3281e41f4b71Sopenharmony_ci 3282e41f4b71Sopenharmony_cisetTransferDetached(detached: boolean): void 3283e41f4b71Sopenharmony_ci 3284e41f4b71Sopenharmony_cipixelmap在跨线程传输时,断开原线程的引用。适用于需立即释放pixelmap的场景。 3285e41f4b71Sopenharmony_ci 3286e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3287e41f4b71Sopenharmony_ci 3288e41f4b71Sopenharmony_ci**参数:** 3289e41f4b71Sopenharmony_ci 3290e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3291e41f4b71Sopenharmony_ci| ------- | ------------------ | ---- | ----------------------------- | 3292e41f4b71Sopenharmony_ci| detached | boolean | 是 | 是否断开原线程引用 | 3293e41f4b71Sopenharmony_ci 3294e41f4b71Sopenharmony_ci**错误码:** 3295e41f4b71Sopenharmony_ci 3296e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 3297e41f4b71Sopenharmony_ci 3298e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3299e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3300e41f4b71Sopenharmony_ci| 501 | Resource Unavailable | 3301e41f4b71Sopenharmony_ci 3302e41f4b71Sopenharmony_ci**示例:** 3303e41f4b71Sopenharmony_ci 3304e41f4b71Sopenharmony_ci```ts 3305e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3306e41f4b71Sopenharmony_ciimport image from '@ohos.multimedia.image'; 3307e41f4b71Sopenharmony_ciimport taskpool from '@ohos.taskpool'; 3308e41f4b71Sopenharmony_ci 3309e41f4b71Sopenharmony_ci@Concurrent 3310e41f4b71Sopenharmony_ci// 子线程方法 3311e41f4b71Sopenharmony_ciasync function loadPixelMap(rawFileDescriptor: number): Promise<PixelMap> { 3312e41f4b71Sopenharmony_ci // 创建imageSource。 3313e41f4b71Sopenharmony_ci const imageSource = image.createImageSource(rawFileDescriptor); 3314e41f4b71Sopenharmony_ci // 创建pixelMap。 3315e41f4b71Sopenharmony_ci const pixelMap = imageSource.createPixelMapSync(); 3316e41f4b71Sopenharmony_ci // 释放imageSource。 3317e41f4b71Sopenharmony_ci imageSource.release(); 3318e41f4b71Sopenharmony_ci // 使pixelMap在跨线程传输完成后,断开原线程的引用。 3319e41f4b71Sopenharmony_ci pixelMap.setTransferDetached(true); 3320e41f4b71Sopenharmony_ci // 返回pixelMap给主线程。 3321e41f4b71Sopenharmony_ci return pixelMap; 3322e41f4b71Sopenharmony_ci} 3323e41f4b71Sopenharmony_ci 3324e41f4b71Sopenharmony_ci@Entry 3325e41f4b71Sopenharmony_ci@Component 3326e41f4b71Sopenharmony_cistruct Demo { 3327e41f4b71Sopenharmony_ci @State pixelMap: PixelMap | undefined = undefined; 3328e41f4b71Sopenharmony_ci // 主线程方法 3329e41f4b71Sopenharmony_ci private loadImageFromThread(): void { 3330e41f4b71Sopenharmony_ci const resourceMgr = getContext(this).resourceManager; 3331e41f4b71Sopenharmony_ci // 此处‘example.jpg’仅作示例,请开发者自行替换,否则imageSource创建失败会导致后续无法正常执行。 3332e41f4b71Sopenharmony_ci resourceMgr.getRawFd('example.jpg').then(rawFileDescriptor => { 3333e41f4b71Sopenharmony_ci taskpool.execute(loadPixelMap, rawFileDescriptor).then(pixelMap => { 3334e41f4b71Sopenharmony_ci if (pixelMap) { 3335e41f4b71Sopenharmony_ci this.pixelMap = pixelMap as PixelMap; 3336e41f4b71Sopenharmony_ci console.log('Succeeded in creating pixelMap.'); 3337e41f4b71Sopenharmony_ci // 主线程释放pixelMap。由于子线程返回pixelMap时已调用setTransferDetached,所以此处能够立即释放pixelMap。 3338e41f4b71Sopenharmony_ci this.pixelMap.release(); 3339e41f4b71Sopenharmony_ci } else { 3340e41f4b71Sopenharmony_ci console.error('Failed to create pixelMap.'); 3341e41f4b71Sopenharmony_ci } 3342e41f4b71Sopenharmony_ci }); 3343e41f4b71Sopenharmony_ci }); 3344e41f4b71Sopenharmony_ci } 3345e41f4b71Sopenharmony_ci} 3346e41f4b71Sopenharmony_ci``` 3347e41f4b71Sopenharmony_ci 3348e41f4b71Sopenharmony_ci### marshalling<sup>10+</sup> 3349e41f4b71Sopenharmony_ci 3350e41f4b71Sopenharmony_cimarshalling(sequence: rpc.MessageSequence): void 3351e41f4b71Sopenharmony_ci 3352e41f4b71Sopenharmony_ci将PixelMap序列化后写入MessageSequence。 3353e41f4b71Sopenharmony_ci 3354e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3355e41f4b71Sopenharmony_ci 3356e41f4b71Sopenharmony_ci**参数:** 3357e41f4b71Sopenharmony_ci 3358e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3359e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------------------------------ | ---- | ---------------------------------------- | 3360e41f4b71Sopenharmony_ci| sequence | [rpc.MessageSequence](../apis-ipc-kit/js-apis-rpc.md#messagesequence9) | 是 | 新创建的MessageSequence。 | 3361e41f4b71Sopenharmony_ci 3362e41f4b71Sopenharmony_ci**错误码:** 3363e41f4b71Sopenharmony_ci 3364e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 3365e41f4b71Sopenharmony_ci 3366e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3367e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3368e41f4b71Sopenharmony_ci| 62980115 | Invalid image parameter. | 3369e41f4b71Sopenharmony_ci| 62980097 | IPC error. | 3370e41f4b71Sopenharmony_ci 3371e41f4b71Sopenharmony_ci**示例:** 3372e41f4b71Sopenharmony_ci 3373e41f4b71Sopenharmony_ci```ts 3374e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 3375e41f4b71Sopenharmony_ciimport { rpc } from '@kit.IPCKit'; 3376e41f4b71Sopenharmony_ci 3377e41f4b71Sopenharmony_ciclass MySequence implements rpc.Parcelable { 3378e41f4b71Sopenharmony_ci pixel_map: image.PixelMap; 3379e41f4b71Sopenharmony_ci constructor(conPixelMap : image.PixelMap) { 3380e41f4b71Sopenharmony_ci this.pixel_map = conPixelMap; 3381e41f4b71Sopenharmony_ci } 3382e41f4b71Sopenharmony_ci marshalling(messageSequence : rpc.MessageSequence) { 3383e41f4b71Sopenharmony_ci this.pixel_map.marshalling(messageSequence); 3384e41f4b71Sopenharmony_ci console.info('marshalling'); 3385e41f4b71Sopenharmony_ci return true; 3386e41f4b71Sopenharmony_ci } 3387e41f4b71Sopenharmony_ci unmarshalling(messageSequence : rpc.MessageSequence) { 3388e41f4b71Sopenharmony_ci image.createPixelMap(new ArrayBuffer(96), {size: { height:4, width: 6}}).then((pixelParcel: image.PixelMap) => { 3389e41f4b71Sopenharmony_ci pixelParcel.unmarshalling(messageSequence).then(async (pixelMap: image.PixelMap) => { 3390e41f4b71Sopenharmony_ci this.pixel_map = pixelMap; 3391e41f4b71Sopenharmony_ci pixelMap.getImageInfo().then((imageInfo: image.ImageInfo) => { 3392e41f4b71Sopenharmony_ci console.info("unmarshalling information h:" + imageInfo.size.height + "w:" + imageInfo.size.width); 3393e41f4b71Sopenharmony_ci }) 3394e41f4b71Sopenharmony_ci }) 3395e41f4b71Sopenharmony_ci }); 3396e41f4b71Sopenharmony_ci return true; 3397e41f4b71Sopenharmony_ci } 3398e41f4b71Sopenharmony_ci} 3399e41f4b71Sopenharmony_ciasync function Demo() { 3400e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(96); 3401e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(color); 3402e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i++) { 3403e41f4b71Sopenharmony_ci bufferArr[i] = 0x80; 3404e41f4b71Sopenharmony_ci } 3405e41f4b71Sopenharmony_ci let opts: image.InitializationOptions = { 3406e41f4b71Sopenharmony_ci editable: true, 3407e41f4b71Sopenharmony_ci pixelFormat: 4, 3408e41f4b71Sopenharmony_ci size: { height: 4, width: 6 }, 3409e41f4b71Sopenharmony_ci alphaType: 3 3410e41f4b71Sopenharmony_ci } 3411e41f4b71Sopenharmony_ci let pixelMap: image.PixelMap | undefined = undefined; 3412e41f4b71Sopenharmony_ci image.createPixelMap(color, opts).then((srcPixelMap: image.PixelMap) => { 3413e41f4b71Sopenharmony_ci pixelMap = srcPixelMap; 3414e41f4b71Sopenharmony_ci }) 3415e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 3416e41f4b71Sopenharmony_ci // 序列化 3417e41f4b71Sopenharmony_ci let parcelable: MySequence = new MySequence(pixelMap); 3418e41f4b71Sopenharmony_ci let data: rpc.MessageSequence = rpc.MessageSequence.create(); 3419e41f4b71Sopenharmony_ci data.writeParcelable(parcelable); 3420e41f4b71Sopenharmony_ci 3421e41f4b71Sopenharmony_ci // 反序列化 rpc获取到data 3422e41f4b71Sopenharmony_ci let ret: MySequence = new MySequence(pixelMap); 3423e41f4b71Sopenharmony_ci data.readParcelable(ret); 3424e41f4b71Sopenharmony_ci } 3425e41f4b71Sopenharmony_ci} 3426e41f4b71Sopenharmony_ci``` 3427e41f4b71Sopenharmony_ci 3428e41f4b71Sopenharmony_ci### unmarshalling<sup>10+</sup> 3429e41f4b71Sopenharmony_ci 3430e41f4b71Sopenharmony_ciunmarshalling(sequence: rpc.MessageSequence): Promise\<PixelMap> 3431e41f4b71Sopenharmony_ci 3432e41f4b71Sopenharmony_ci从MessageSequence中获取PixelMap, 3433e41f4b71Sopenharmony_ci如需使用同步方式创建PixelMap可使用:[createPixelMapFromParcel](#imagecreatepixelmapfromparcel11)。 3434e41f4b71Sopenharmony_ci 3435e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3436e41f4b71Sopenharmony_ci 3437e41f4b71Sopenharmony_ci**参数:** 3438e41f4b71Sopenharmony_ci 3439e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3440e41f4b71Sopenharmony_ci| ---------------------- | ----------------------------------------------------- | ---- | ---------------------------------------- | 3441e41f4b71Sopenharmony_ci| sequence | [rpc.MessageSequence](../apis-ipc-kit/js-apis-rpc.md#messagesequence9) | 是 | 保存有PixelMap信息的MessageSequence。 | 3442e41f4b71Sopenharmony_ci 3443e41f4b71Sopenharmony_ci**返回值:** 3444e41f4b71Sopenharmony_ci 3445e41f4b71Sopenharmony_ci| 类型 | 说明 | 3446e41f4b71Sopenharmony_ci| -------------------------------- | --------------------- | 3447e41f4b71Sopenharmony_ci| Promise\<[PixelMap](#pixelmap7)> |Promise对象,返回PixelMap。 | 3448e41f4b71Sopenharmony_ci 3449e41f4b71Sopenharmony_ci**错误码:** 3450e41f4b71Sopenharmony_ci 3451e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 3452e41f4b71Sopenharmony_ci 3453e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3454e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3455e41f4b71Sopenharmony_ci| 62980115 | Invalid image parameter. | 3456e41f4b71Sopenharmony_ci| 62980097 | IPC error. | 3457e41f4b71Sopenharmony_ci| 62980096 | The operation failed. | 3458e41f4b71Sopenharmony_ci 3459e41f4b71Sopenharmony_ci**示例:** 3460e41f4b71Sopenharmony_ci 3461e41f4b71Sopenharmony_ci```ts 3462e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 3463e41f4b71Sopenharmony_ciimport { rpc } from '@kit.IPCKit'; 3464e41f4b71Sopenharmony_ci 3465e41f4b71Sopenharmony_ciclass MySequence implements rpc.Parcelable { 3466e41f4b71Sopenharmony_ci pixel_map: image.PixelMap; 3467e41f4b71Sopenharmony_ci constructor(conPixelMap: image.PixelMap) { 3468e41f4b71Sopenharmony_ci this.pixel_map = conPixelMap; 3469e41f4b71Sopenharmony_ci } 3470e41f4b71Sopenharmony_ci marshalling(messageSequence: rpc.MessageSequence) { 3471e41f4b71Sopenharmony_ci this.pixel_map.marshalling(messageSequence); 3472e41f4b71Sopenharmony_ci console.info('marshalling'); 3473e41f4b71Sopenharmony_ci return true; 3474e41f4b71Sopenharmony_ci } 3475e41f4b71Sopenharmony_ci unmarshalling(messageSequence: rpc.MessageSequence) { 3476e41f4b71Sopenharmony_ci image.createPixelMap(new ArrayBuffer(96), {size: { height:4, width: 6}}).then((pixelParcel : image.PixelMap) => { 3477e41f4b71Sopenharmony_ci pixelParcel.unmarshalling(messageSequence).then(async (pixelMap : image.PixelMap) => { 3478e41f4b71Sopenharmony_ci this.pixel_map = pixelMap; 3479e41f4b71Sopenharmony_ci pixelMap.getImageInfo().then((imageInfo : image.ImageInfo) => { 3480e41f4b71Sopenharmony_ci console.info("unmarshalling information h:" + imageInfo.size.height + "w:" + imageInfo.size.width); 3481e41f4b71Sopenharmony_ci }) 3482e41f4b71Sopenharmony_ci }) 3483e41f4b71Sopenharmony_ci }); 3484e41f4b71Sopenharmony_ci return true; 3485e41f4b71Sopenharmony_ci } 3486e41f4b71Sopenharmony_ci} 3487e41f4b71Sopenharmony_ciasync function Demo() { 3488e41f4b71Sopenharmony_ci const color: ArrayBuffer = new ArrayBuffer(96); 3489e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(color); 3490e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i++) { 3491e41f4b71Sopenharmony_ci bufferArr[i] = 0x80; 3492e41f4b71Sopenharmony_ci } 3493e41f4b71Sopenharmony_ci let opts: image.InitializationOptions = { 3494e41f4b71Sopenharmony_ci editable: true, 3495e41f4b71Sopenharmony_ci pixelFormat: 4, 3496e41f4b71Sopenharmony_ci size: { height: 4, width: 6 }, 3497e41f4b71Sopenharmony_ci alphaType: 3 3498e41f4b71Sopenharmony_ci } 3499e41f4b71Sopenharmony_ci let pixelMap: image.PixelMap | undefined = undefined; 3500e41f4b71Sopenharmony_ci image.createPixelMap(color, opts).then((srcPixelMap : image.PixelMap) => { 3501e41f4b71Sopenharmony_ci pixelMap = srcPixelMap; 3502e41f4b71Sopenharmony_ci }) 3503e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 3504e41f4b71Sopenharmony_ci // 序列化 3505e41f4b71Sopenharmony_ci let parcelable: MySequence = new MySequence(pixelMap); 3506e41f4b71Sopenharmony_ci let data : rpc.MessageSequence = rpc.MessageSequence.create(); 3507e41f4b71Sopenharmony_ci data.writeParcelable(parcelable); 3508e41f4b71Sopenharmony_ci 3509e41f4b71Sopenharmony_ci // 反序列化 rpc获取到data 3510e41f4b71Sopenharmony_ci let ret : MySequence = new MySequence(pixelMap); 3511e41f4b71Sopenharmony_ci data.readParcelable(ret); 3512e41f4b71Sopenharmony_ci } 3513e41f4b71Sopenharmony_ci} 3514e41f4b71Sopenharmony_ci``` 3515e41f4b71Sopenharmony_ci 3516e41f4b71Sopenharmony_ci### release<sup>7+</sup> 3517e41f4b71Sopenharmony_ci 3518e41f4b71Sopenharmony_cirelease():Promise\<void> 3519e41f4b71Sopenharmony_ci 3520e41f4b71Sopenharmony_ci释放PixelMap对象,使用Promise形式返回释放结果。 3521e41f4b71Sopenharmony_ci 3522e41f4b71Sopenharmony_ciArkTS有内存回收机制,PixelMap对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 3523e41f4b71Sopenharmony_ci 3524e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 3525e41f4b71Sopenharmony_ci 3526e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3527e41f4b71Sopenharmony_ci 3528e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3529e41f4b71Sopenharmony_ci 3530e41f4b71Sopenharmony_ci**返回值:** 3531e41f4b71Sopenharmony_ci 3532e41f4b71Sopenharmony_ci| 类型 | 说明 | 3533e41f4b71Sopenharmony_ci| -------------- | ------------------------------- | 3534e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3535e41f4b71Sopenharmony_ci 3536e41f4b71Sopenharmony_ci**示例:** 3537e41f4b71Sopenharmony_ci 3538e41f4b71Sopenharmony_ci```ts 3539e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3540e41f4b71Sopenharmony_ci 3541e41f4b71Sopenharmony_ciasync function Demo() { 3542e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 3543e41f4b71Sopenharmony_ci pixelMap.release().then(() => { 3544e41f4b71Sopenharmony_ci console.info('Succeeded in releasing pixelmap object.'); 3545e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 3546e41f4b71Sopenharmony_ci console.error(`Failed to release pixelmap object. code is ${error.code}, message is ${error.message}`); 3547e41f4b71Sopenharmony_ci }) 3548e41f4b71Sopenharmony_ci } 3549e41f4b71Sopenharmony_ci} 3550e41f4b71Sopenharmony_ci``` 3551e41f4b71Sopenharmony_ci 3552e41f4b71Sopenharmony_ci### release<sup>7+</sup> 3553e41f4b71Sopenharmony_ci 3554e41f4b71Sopenharmony_cirelease(callback: AsyncCallback\<void>): void 3555e41f4b71Sopenharmony_ci 3556e41f4b71Sopenharmony_ci释放PixelMap对象,使用callback形式返回释放结果。 3557e41f4b71Sopenharmony_ci 3558e41f4b71Sopenharmony_ciArkTS有内存回收机制,PixelMap对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 3559e41f4b71Sopenharmony_ci 3560e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 3561e41f4b71Sopenharmony_ci 3562e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3563e41f4b71Sopenharmony_ci 3564e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3565e41f4b71Sopenharmony_ci 3566e41f4b71Sopenharmony_ci**参数:** 3567e41f4b71Sopenharmony_ci 3568e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3569e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------ | 3570e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当对PixelMap对象释放成功,err为undefined,否则为错误对象。 | 3571e41f4b71Sopenharmony_ci 3572e41f4b71Sopenharmony_ci**示例:** 3573e41f4b71Sopenharmony_ci 3574e41f4b71Sopenharmony_ci```ts 3575e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3576e41f4b71Sopenharmony_ci 3577e41f4b71Sopenharmony_ciasync function Demo() { 3578e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 3579e41f4b71Sopenharmony_ci pixelMap.release((err: BusinessError) => { 3580e41f4b71Sopenharmony_ci if (err) { 3581e41f4b71Sopenharmony_ci console.error(`Failed to release pixelmap object. code is ${err.code}, message is ${err.message}`); 3582e41f4b71Sopenharmony_ci return; 3583e41f4b71Sopenharmony_ci } else { 3584e41f4b71Sopenharmony_ci console.info('Succeeded in releasing pixelmap object.'); 3585e41f4b71Sopenharmony_ci } 3586e41f4b71Sopenharmony_ci }) 3587e41f4b71Sopenharmony_ci } 3588e41f4b71Sopenharmony_ci} 3589e41f4b71Sopenharmony_ci``` 3590e41f4b71Sopenharmony_ci 3591e41f4b71Sopenharmony_ci### convertPixelFormat<sup>12+</sup> 3592e41f4b71Sopenharmony_ci 3593e41f4b71Sopenharmony_ciconvertPixelFormat(targetPixelFormat: PixelMapFormat): Promise\<void> 3594e41f4b71Sopenharmony_ci 3595e41f4b71Sopenharmony_ciYUV和RGB类型互转,目前仅支持NV12/NV21与RGB888/RGBA8888/RGB565/BGRA8888/RGBAF16互转,YCRCB_P010/YCBCR_P010与RGBA1010102互转。 3596e41f4b71Sopenharmony_ci 3597e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3598e41f4b71Sopenharmony_ci 3599e41f4b71Sopenharmony_ci**参数:** 3600e41f4b71Sopenharmony_ci 3601e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3602e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------ | 3603e41f4b71Sopenharmony_ci| targetPixelFormat | [PixelMapFormat](#pixelmapformat7) | 是 | 目标像素格式,用于YUV和RGB类型互转。目前仅支持NV12/NV21与RGB888/RGBA8888/RGB565/BGRA8888/RGBAF16互转,YCRCB_P010/YCBCR_P010与RGBA1010102互转。 | 3604e41f4b71Sopenharmony_ci 3605e41f4b71Sopenharmony_ci**返回值:** 3606e41f4b71Sopenharmony_ci 3607e41f4b71Sopenharmony_ci| 类型 | 说明 | 3608e41f4b71Sopenharmony_ci| -------------- | ------------------------------- | 3609e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 3610e41f4b71Sopenharmony_ci 3611e41f4b71Sopenharmony_ci**错误码:** 3612e41f4b71Sopenharmony_ci 3613e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 3614e41f4b71Sopenharmony_ci 3615e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3616e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3617e41f4b71Sopenharmony_ci| 62980111 | The image source data is incomplete. | 3618e41f4b71Sopenharmony_ci| 62980115 | Invalid input parameter. | 3619e41f4b71Sopenharmony_ci| 62980178 | Failed to create the pixelmap. | 3620e41f4b71Sopenharmony_ci| 62980274 | The conversion failed | 3621e41f4b71Sopenharmony_ci| 62980276 | The type to be converted is an unsupported target pixel format| 3622e41f4b71Sopenharmony_ci 3623e41f4b71Sopenharmony_ci**示例:** 3624e41f4b71Sopenharmony_ci 3625e41f4b71Sopenharmony_ci```ts 3626e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3627e41f4b71Sopenharmony_ci 3628e41f4b71Sopenharmony_ciif (pixelMap != undefined) { 3629e41f4b71Sopenharmony_ci // 设置目标像素格式为NV12 3630e41f4b71Sopenharmony_ci let targetPixelFormat = image.PixelMapFormat.NV12; 3631e41f4b71Sopenharmony_ci pixelMap.convertPixelFormat(targetPixelFormat).then(() => { 3632e41f4b71Sopenharmony_ci // pixelMap转换成NV12格式成功 3633e41f4b71Sopenharmony_ci console.info('PixelMapFormat convert Succeeded'); 3634e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 3635e41f4b71Sopenharmony_ci // pixelMap转换成NV12格式失败 3636e41f4b71Sopenharmony_ci console.error(`PixelMapFormat convert Failed. code is ${error.code}, message is ${error.message}`); 3637e41f4b71Sopenharmony_ci }) 3638e41f4b71Sopenharmony_ci} 3639e41f4b71Sopenharmony_ci``` 3640e41f4b71Sopenharmony_ci 3641e41f4b71Sopenharmony_ci### setMemoryNameSync<sup>13+</sup> 3642e41f4b71Sopenharmony_ci 3643e41f4b71Sopenharmony_cisetMemoryNameSync(name: string): void 3644e41f4b71Sopenharmony_ci 3645e41f4b71Sopenharmony_ci设置PixelMap内存标识符。 3646e41f4b71Sopenharmony_ci 3647e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 3648e41f4b71Sopenharmony_ci 3649e41f4b71Sopenharmony_ci**参数:** 3650e41f4b71Sopenharmony_ci 3651e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3652e41f4b71Sopenharmony_ci| ------------- | -------------------------------- | ---- | ---------------- | 3653e41f4b71Sopenharmony_ci| name | string | 是 | pixelmap内存标识符,只允许DMA和ASHMEM内存形式的piexelmap设置,支持1-31位长度。 | 3654e41f4b71Sopenharmony_ci 3655e41f4b71Sopenharmony_ci**错误码:** 3656e41f4b71Sopenharmony_ci 3657e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 3658e41f4b71Sopenharmony_ci 3659e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3660e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3661e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.The length of the input parameter is too long. 2.Parameter verification failed. | 3662e41f4b71Sopenharmony_ci| 501 | Resource unavailable. | 3663e41f4b71Sopenharmony_ci| 62980286 | Memory format not supported. | 3664e41f4b71Sopenharmony_ci 3665e41f4b71Sopenharmony_ci**示例:** 3666e41f4b71Sopenharmony_ci 3667e41f4b71Sopenharmony_ci```ts 3668e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base'; 3669e41f4b71Sopenharmony_ci 3670e41f4b71Sopenharmony_ciasync Demo() { 3671e41f4b71Sopenharmony_ci if (pixelMap != undefined) { 3672e41f4b71Sopenharmony_ci try { 3673e41f4b71Sopenharmony_ci pixelMap.setMemoryNameSync("PixelMapName Test"); 3674e41f4b71Sopenharmony_ci } catch(e) { 3675e41f4b71Sopenharmony_ci let error = e as BusinessError; 3676e41f4b71Sopenharmony_ci console.error(`setMemoryNameSync error. code is ${error.code}, message is ${error.message}`); 3677e41f4b71Sopenharmony_ci } 3678e41f4b71Sopenharmony_ci } 3679e41f4b71Sopenharmony_ci} 3680e41f4b71Sopenharmony_ci``` 3681e41f4b71Sopenharmony_ci 3682e41f4b71Sopenharmony_ci## image.createImageSource 3683e41f4b71Sopenharmony_ci 3684e41f4b71Sopenharmony_cicreateImageSource(uri: string): ImageSource 3685e41f4b71Sopenharmony_ci 3686e41f4b71Sopenharmony_ci通过传入的uri创建图片源实例。 3687e41f4b71Sopenharmony_ci 3688e41f4b71Sopenharmony_ci 3689e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3690e41f4b71Sopenharmony_ci 3691e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 3692e41f4b71Sopenharmony_ci 3693e41f4b71Sopenharmony_ci**参数:** 3694e41f4b71Sopenharmony_ci 3695e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3696e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------------------- | 3697e41f4b71Sopenharmony_ci| uri | string | 是 | 图片路径,当前仅支持应用沙箱路径。</br>当前支持格式有:.jpg .png .gif .bmp .webp .dng .heic<sup>12+</sup>(不同硬件设备支持情况不同) [.svg<sup>10+</sup>](#svg标签说明) .ico<sup>11+</sup>。 | 3698e41f4b71Sopenharmony_ci 3699e41f4b71Sopenharmony_ci**返回值:** 3700e41f4b71Sopenharmony_ci 3701e41f4b71Sopenharmony_ci| 类型 | 说明 | 3702e41f4b71Sopenharmony_ci| --------------------------- | -------------------------------------------- | 3703e41f4b71Sopenharmony_ci| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | 3704e41f4b71Sopenharmony_ci 3705e41f4b71Sopenharmony_ci**示例:** 3706e41f4b71Sopenharmony_ci 3707e41f4b71Sopenharmony_ci```ts 3708e41f4b71Sopenharmony_ciconst context: Context = getContext(this); 3709e41f4b71Sopenharmony_ci//此处'test.jpg'仅作示例,请开发者自行替换。否则imageSource会创建失败,导致后续无法正常执行。 3710e41f4b71Sopenharmony_ciconst path: string = context.filesDir + "/test.jpg"; 3711e41f4b71Sopenharmony_ciconst imageSourceApi: image.ImageSource = image.createImageSource(path); 3712e41f4b71Sopenharmony_ci``` 3713e41f4b71Sopenharmony_ci 3714e41f4b71Sopenharmony_ci## image.createImageSource<sup>9+</sup> 3715e41f4b71Sopenharmony_ci 3716e41f4b71Sopenharmony_cicreateImageSource(uri: string, options: SourceOptions): ImageSource 3717e41f4b71Sopenharmony_ci 3718e41f4b71Sopenharmony_ci通过传入的uri创建图片源实例。 3719e41f4b71Sopenharmony_ci 3720e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 3721e41f4b71Sopenharmony_ci 3722e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3723e41f4b71Sopenharmony_ci 3724e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 3725e41f4b71Sopenharmony_ci 3726e41f4b71Sopenharmony_ci**参数:** 3727e41f4b71Sopenharmony_ci 3728e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3729e41f4b71Sopenharmony_ci| ------- | ------------------------------- | ---- | ----------------------------------- | 3730e41f4b71Sopenharmony_ci| uri | string | 是 | 图片路径,当前仅支持应用沙箱路径。</br>当前支持格式有:.jpg .png .gif .bmp .webp .dng .heic<sup>12+</sup>(不同硬件设备支持情况不同)[.svg<sup>10+</sup>](#svg标签说明) .ico<sup>11+</sup>。 | 3731e41f4b71Sopenharmony_ci| options | [SourceOptions](#sourceoptions9) | 是 | 图片属性,包括图片像素密度、像素格式和图片尺寸。| 3732e41f4b71Sopenharmony_ci 3733e41f4b71Sopenharmony_ci**返回值:** 3734e41f4b71Sopenharmony_ci 3735e41f4b71Sopenharmony_ci| 类型 | 说明 | 3736e41f4b71Sopenharmony_ci| --------------------------- | -------------------------------------------- | 3737e41f4b71Sopenharmony_ci| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | 3738e41f4b71Sopenharmony_ci 3739e41f4b71Sopenharmony_ci**示例:** 3740e41f4b71Sopenharmony_ci 3741e41f4b71Sopenharmony_ci```ts 3742e41f4b71Sopenharmony_cilet sourceOptions: image.SourceOptions = { sourceDensity: 120 }; 3743e41f4b71Sopenharmony_ciconst context: Context = getContext(this); 3744e41f4b71Sopenharmony_ci//此处'test.png'仅作示例,请开发者自行替换。否则imageSource会创建失败,导致后续无法正常执行。 3745e41f4b71Sopenharmony_ciconst path: string = context.filesDir + "/test.png"; 3746e41f4b71Sopenharmony_cilet imageSourceApi: image.ImageSource = image.createImageSource(path, sourceOptions); 3747e41f4b71Sopenharmony_ci``` 3748e41f4b71Sopenharmony_ci 3749e41f4b71Sopenharmony_ci## image.createImageSource<sup>7+</sup> 3750e41f4b71Sopenharmony_ci 3751e41f4b71Sopenharmony_cicreateImageSource(fd: number): ImageSource 3752e41f4b71Sopenharmony_ci 3753e41f4b71Sopenharmony_ci通过传入文件描述符来创建图片源实例。 3754e41f4b71Sopenharmony_ci 3755e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3756e41f4b71Sopenharmony_ci 3757e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 3758e41f4b71Sopenharmony_ci 3759e41f4b71Sopenharmony_ci**参数:** 3760e41f4b71Sopenharmony_ci 3761e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3762e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------- | 3763e41f4b71Sopenharmony_ci| fd | number | 是 | 文件描述符fd。| 3764e41f4b71Sopenharmony_ci 3765e41f4b71Sopenharmony_ci**返回值:** 3766e41f4b71Sopenharmony_ci 3767e41f4b71Sopenharmony_ci| 类型 | 说明 | 3768e41f4b71Sopenharmony_ci| --------------------------- | -------------------------------------------- | 3769e41f4b71Sopenharmony_ci| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | 3770e41f4b71Sopenharmony_ci 3771e41f4b71Sopenharmony_ci**示例:** 3772e41f4b71Sopenharmony_ci 3773e41f4b71Sopenharmony_ci```ts 3774e41f4b71Sopenharmony_ciimport { fileIo as fs } from '@kit.CoreFileKit'; 3775e41f4b71Sopenharmony_ci 3776e41f4b71Sopenharmony_ciconst context: Context = getContext(this); 3777e41f4b71Sopenharmony_ci//此处'test.jpg'仅作示例,请开发者自行替换,否则imageSource会创建失败导致后续无法正常执行。 3778e41f4b71Sopenharmony_cilet filePath: string = context.filesDir + "/test.jpg"; 3779e41f4b71Sopenharmony_cilet file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE); 3780e41f4b71Sopenharmony_ciconst imageSourceApi: image.ImageSource = image.createImageSource(file.fd); 3781e41f4b71Sopenharmony_ci``` 3782e41f4b71Sopenharmony_ci 3783e41f4b71Sopenharmony_ci## image.createImageSource<sup>9+</sup> 3784e41f4b71Sopenharmony_ci 3785e41f4b71Sopenharmony_cicreateImageSource(fd: number, options: SourceOptions): ImageSource 3786e41f4b71Sopenharmony_ci 3787e41f4b71Sopenharmony_ci通过传入文件描述符来创建图片源实例。 3788e41f4b71Sopenharmony_ci 3789e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 3790e41f4b71Sopenharmony_ci 3791e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3792e41f4b71Sopenharmony_ci 3793e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 3794e41f4b71Sopenharmony_ci 3795e41f4b71Sopenharmony_ci**参数:** 3796e41f4b71Sopenharmony_ci 3797e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3798e41f4b71Sopenharmony_ci| ------- | ------------------------------- | ---- | ----------------------------------- | 3799e41f4b71Sopenharmony_ci| fd | number | 是 | 文件描述符fd。 | 3800e41f4b71Sopenharmony_ci| options | [SourceOptions](#sourceoptions9) | 是 | 图片属性,包括图片像素密度、像素格式和图片尺寸。| 3801e41f4b71Sopenharmony_ci 3802e41f4b71Sopenharmony_ci**返回值:** 3803e41f4b71Sopenharmony_ci 3804e41f4b71Sopenharmony_ci| 类型 | 说明 | 3805e41f4b71Sopenharmony_ci| --------------------------- | -------------------------------------------- | 3806e41f4b71Sopenharmony_ci| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | 3807e41f4b71Sopenharmony_ci 3808e41f4b71Sopenharmony_ci**示例:** 3809e41f4b71Sopenharmony_ci 3810e41f4b71Sopenharmony_ci```ts 3811e41f4b71Sopenharmony_ciimport { fileIo as fs } from '@kit.CoreFileKit'; 3812e41f4b71Sopenharmony_ci 3813e41f4b71Sopenharmony_cilet sourceOptions: image.SourceOptions = { sourceDensity: 120 }; 3814e41f4b71Sopenharmony_ciconst context: Context = getContext(); 3815e41f4b71Sopenharmony_ci//此处'test.jpg'仅作示例,请开发者自行替换,否则imageSource创建失败会导致后续无法正常执行。 3816e41f4b71Sopenharmony_ciconst filePath: string = context.filesDir + "/test.jpg"; 3817e41f4b71Sopenharmony_cilet file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE); 3818e41f4b71Sopenharmony_ciconst imageSourceApi: image.ImageSource = image.createImageSource(file.fd, sourceOptions); 3819e41f4b71Sopenharmony_ci``` 3820e41f4b71Sopenharmony_ci 3821e41f4b71Sopenharmony_ci## image.createImageSource<sup>9+</sup> 3822e41f4b71Sopenharmony_ci 3823e41f4b71Sopenharmony_cicreateImageSource(buf: ArrayBuffer): ImageSource 3824e41f4b71Sopenharmony_ci 3825e41f4b71Sopenharmony_ci通过缓冲区创建图片源实例。buf数据应该是未解码的数据,不要传入类似于RBGA,YUV的像素buffer数据,如果想通过像素buffer数据创建pixelMap,可以调用[image.createPixelMapSync](#createpixelmapsync12)这一类接口。 3826e41f4b71Sopenharmony_ci 3827e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 3828e41f4b71Sopenharmony_ci 3829e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3830e41f4b71Sopenharmony_ci 3831e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 3832e41f4b71Sopenharmony_ci 3833e41f4b71Sopenharmony_ci**参数:** 3834e41f4b71Sopenharmony_ci 3835e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3836e41f4b71Sopenharmony_ci| ------ | ----------- | ---- | ---------------- | 3837e41f4b71Sopenharmony_ci| buf | ArrayBuffer | 是 | 图像缓冲区数组。 | 3838e41f4b71Sopenharmony_ci 3839e41f4b71Sopenharmony_ci**返回值:** 3840e41f4b71Sopenharmony_ci 3841e41f4b71Sopenharmony_ci| 类型 | 说明 | 3842e41f4b71Sopenharmony_ci| --------------------------- | -------------------------------------------- | 3843e41f4b71Sopenharmony_ci| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | 3844e41f4b71Sopenharmony_ci 3845e41f4b71Sopenharmony_ci 3846e41f4b71Sopenharmony_ci**示例:** 3847e41f4b71Sopenharmony_ci 3848e41f4b71Sopenharmony_ci```ts 3849e41f4b71Sopenharmony_ciconst buf: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 3850e41f4b71Sopenharmony_ciconst imageSourceApi: image.ImageSource = image.createImageSource(buf); 3851e41f4b71Sopenharmony_ci``` 3852e41f4b71Sopenharmony_ci 3853e41f4b71Sopenharmony_ci## image.createImageSource<sup>9+</sup> 3854e41f4b71Sopenharmony_ci 3855e41f4b71Sopenharmony_cicreateImageSource(buf: ArrayBuffer, options: SourceOptions): ImageSource 3856e41f4b71Sopenharmony_ci 3857e41f4b71Sopenharmony_ci通过缓冲区创建图片源实例。buf数据应该是未解码的数据,不要传入类似于RBGA,YUV的像素buffer数据,如果想通过像素buffer数据创建pixelMap,可以调用[image.createPixelMapSync](#createpixelmapsync12)这一类接口。 3858e41f4b71Sopenharmony_ci 3859e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 3860e41f4b71Sopenharmony_ci 3861e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3862e41f4b71Sopenharmony_ci 3863e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 3864e41f4b71Sopenharmony_ci 3865e41f4b71Sopenharmony_ci**参数:** 3866e41f4b71Sopenharmony_ci 3867e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3868e41f4b71Sopenharmony_ci| ------ | -------------------------------- | ---- | ------------------------------------ | 3869e41f4b71Sopenharmony_ci| buf | ArrayBuffer | 是 | 图像缓冲区数组。 | 3870e41f4b71Sopenharmony_ci| options | [SourceOptions](#sourceoptions9) | 是 | 图片属性,包括图片像素密度、像素格式和图片尺寸。 | 3871e41f4b71Sopenharmony_ci 3872e41f4b71Sopenharmony_ci**返回值:** 3873e41f4b71Sopenharmony_ci 3874e41f4b71Sopenharmony_ci| 类型 | 说明 | 3875e41f4b71Sopenharmony_ci| --------------------------- | -------------------------------------------- | 3876e41f4b71Sopenharmony_ci| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | 3877e41f4b71Sopenharmony_ci 3878e41f4b71Sopenharmony_ci**示例:** 3879e41f4b71Sopenharmony_ci 3880e41f4b71Sopenharmony_ci```ts 3881e41f4b71Sopenharmony_ciconst data: ArrayBuffer = new ArrayBuffer(112); 3882e41f4b71Sopenharmony_cilet sourceOptions: image.SourceOptions = { sourceDensity: 120 }; 3883e41f4b71Sopenharmony_ciconst imageSourceApi: image.ImageSource = image.createImageSource(data, sourceOptions); 3884e41f4b71Sopenharmony_ci``` 3885e41f4b71Sopenharmony_ci 3886e41f4b71Sopenharmony_ci## image.createImageSource<sup>11+</sup> 3887e41f4b71Sopenharmony_ci 3888e41f4b71Sopenharmony_cicreateImageSource(rawfile: resourceManager.RawFileDescriptor, options?: SourceOptions): ImageSource 3889e41f4b71Sopenharmony_ci 3890e41f4b71Sopenharmony_ci通过图像资源文件的RawFileDescriptor创建图片源实例。 3891e41f4b71Sopenharmony_ci 3892e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3893e41f4b71Sopenharmony_ci 3894e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 3895e41f4b71Sopenharmony_ci 3896e41f4b71Sopenharmony_ci**参数:** 3897e41f4b71Sopenharmony_ci 3898e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3899e41f4b71Sopenharmony_ci| ------ | -------------------------------- | ---- | ------------------------------------ | 3900e41f4b71Sopenharmony_ci| rawfile | [resourceManager.RawFileDescriptor](../apis-localization-kit/js-apis-resource-manager.md#rawfiledescriptor8) | 是 | 图像资源文件的RawFileDescriptor。 | 3901e41f4b71Sopenharmony_ci| options | [SourceOptions](#sourceoptions9) | 否 | 图片属性,包括图片像素密度、像素格式和图片尺寸。 | 3902e41f4b71Sopenharmony_ci 3903e41f4b71Sopenharmony_ci**返回值:** 3904e41f4b71Sopenharmony_ci 3905e41f4b71Sopenharmony_ci| 类型 | 说明 | 3906e41f4b71Sopenharmony_ci| --------------------------- | -------------------------------------------- | 3907e41f4b71Sopenharmony_ci| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 | 3908e41f4b71Sopenharmony_ci 3909e41f4b71Sopenharmony_ci**示例:** 3910e41f4b71Sopenharmony_ci 3911e41f4b71Sopenharmony_ci```ts 3912e41f4b71Sopenharmony_ciimport { resourceManager } from '@kit.LocalizationKit'; 3913e41f4b71Sopenharmony_ci 3914e41f4b71Sopenharmony_ciconst context: Context = getContext(this); 3915e41f4b71Sopenharmony_ci// 获取resourceManager资源管理器 3916e41f4b71Sopenharmony_ciconst resourceMgr: resourceManager.ResourceManager = context.resourceManager; 3917e41f4b71Sopenharmony_ci//此处'test.jpg'仅作示例,请开发者自行替换,否则imageSource创建失败会导致后续无法正常执行。 3918e41f4b71Sopenharmony_ciresourceMgr.getRawFd('test.jpg').then((rawFileDescriptor: resourceManager.RawFileDescriptor) => { 3919e41f4b71Sopenharmony_ci const imageSourceApi: image.ImageSource = image.createImageSource(rawFileDescriptor); 3920e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 3921e41f4b71Sopenharmony_ci console.error(`Failed to get RawFileDescriptor.code is ${error.code}, message is ${error.message}`); 3922e41f4b71Sopenharmony_ci}) 3923e41f4b71Sopenharmony_ci``` 3924e41f4b71Sopenharmony_ci 3925e41f4b71Sopenharmony_ci## image.CreateIncrementalSource<sup>9+</sup> 3926e41f4b71Sopenharmony_ci 3927e41f4b71Sopenharmony_ciCreateIncrementalSource(buf: ArrayBuffer): ImageSource 3928e41f4b71Sopenharmony_ci 3929e41f4b71Sopenharmony_ci通过缓冲区以增量的方式创建图片源实例,IncrementalSource不支持读写Exif信息。 3930e41f4b71Sopenharmony_ci 3931e41f4b71Sopenharmony_ci以增量方式创建的图片源实例ImageSource,仅支持使用以下功能,同步、异步callback、异步Promise均支持。 3932e41f4b71Sopenharmony_ci- 获取图片信息:指定序号-[getImageInfo](#getimageinfo)、直接获取-[getImageInfo](#getimageinfo-1) 3933e41f4b71Sopenharmony_ci- 获取图片中给定索引处图像的指定属性键的值:[getImageProperty](#getimageproperty11) 3934e41f4b71Sopenharmony_ci- 批量获取图片中的指定属性键的值:[getImageProperties](#getimageproperties12) 3935e41f4b71Sopenharmony_ci- 更新增量数据:[updateData](#updatedata9) 3936e41f4b71Sopenharmony_ci- 创建PixelMap对象:通过图片解码参数创建-[createPixelMap](#createpixelmap7)、通过默认参数创建-[createPixelMap](#createpixelmap7-1) 、通过图片解码参数-[createPixelMap](#createpixelmap7-2) 3937e41f4b71Sopenharmony_ci- 释放图片源实例:[release](#release) 3938e41f4b71Sopenharmony_ci 3939e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 3940e41f4b71Sopenharmony_ci 3941e41f4b71Sopenharmony_ci**参数:** 3942e41f4b71Sopenharmony_ci 3943e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3944e41f4b71Sopenharmony_ci| ------- | ------------| ---- | ----------| 3945e41f4b71Sopenharmony_ci| buf | ArrayBuffer | 是 | 增量数据。| 3946e41f4b71Sopenharmony_ci 3947e41f4b71Sopenharmony_ci**返回值:** 3948e41f4b71Sopenharmony_ci 3949e41f4b71Sopenharmony_ci| 类型 | 说明 | 3950e41f4b71Sopenharmony_ci| --------------------------- | --------------------------------- | 3951e41f4b71Sopenharmony_ci| [ImageSource](#imagesource) | 返回图片源,失败时返回undefined。 | 3952e41f4b71Sopenharmony_ci 3953e41f4b71Sopenharmony_ci**示例:** 3954e41f4b71Sopenharmony_ci 3955e41f4b71Sopenharmony_ci```ts 3956e41f4b71Sopenharmony_ciconst context: Context = getContext(this) 3957e41f4b71Sopenharmony_cilet imageArray = context.resourceManager.getMediaContentSync($r('app.media.startIcon')) // 获取图像资源 3958e41f4b71Sopenharmony_ci// 此处'app.media.startIcon'仅作示例,请开发者自行替换,否则imageArray创建失败会导致后续无法正常执行。 3959e41f4b71Sopenharmony_cilet splitBuff1 = imageArray.slice(0, imageArray.byteLength / 2) // 分片 3960e41f4b71Sopenharmony_cilet splitBuff2 = imageArray.slice(imageArray.byteLength / 2) 3961e41f4b71Sopenharmony_ciconst imageSourceIncrementalSApi: image.ImageSource = image.CreateIncrementalSource(new ArrayBuffer(imageArray.byteLength)); 3962e41f4b71Sopenharmony_ciimageSourceIncrementalSApi.updateData(splitBuff1, false, 0, splitBuff1.byteLength).then(() => { 3963e41f4b71Sopenharmony_ci imageSourceIncrementalSApi.updateData(splitBuff2, true, 0, splitBuff2.byteLength).then(() => { 3964e41f4b71Sopenharmony_ci let pixelMap = imageSourceIncrementalSApi.createPixelMapSync() 3965e41f4b71Sopenharmony_ci let imageInfo = pixelMap.getImageInfoSync() 3966e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelMap') 3967e41f4b71Sopenharmony_ci }).catch((error : BusinessError) => { 3968e41f4b71Sopenharmony_ci console.error(`Failed to updateData error code is ${error.code}, message is ${error.message}`) 3969e41f4b71Sopenharmony_ci }) 3970e41f4b71Sopenharmony_ci}).catch((error : BusinessError) => { 3971e41f4b71Sopenharmony_ci console.error(`Failed to updateData error code is ${error.code}, message is ${error.message}`) 3972e41f4b71Sopenharmony_ci}) 3973e41f4b71Sopenharmony_ci``` 3974e41f4b71Sopenharmony_ci 3975e41f4b71Sopenharmony_ci## image.CreateIncrementalSource<sup>9+</sup> 3976e41f4b71Sopenharmony_ci 3977e41f4b71Sopenharmony_ciCreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): ImageSource 3978e41f4b71Sopenharmony_ci 3979e41f4b71Sopenharmony_ci通过缓冲区以增量的方式创建图片源实例,IncrementalSource不支持读写Exif信息。 3980e41f4b71Sopenharmony_ci 3981e41f4b71Sopenharmony_ci此接口支持的功能与[CreateIncrementalSource(buf: ArrayBuffer): ImageSource](#imagecreateincrementalsource9)所生成的实例支持的功能相同 3982e41f4b71Sopenharmony_ci 3983e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 3984e41f4b71Sopenharmony_ci 3985e41f4b71Sopenharmony_ci**参数:** 3986e41f4b71Sopenharmony_ci 3987e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3988e41f4b71Sopenharmony_ci| ------- | ------------------------------- | ---- | ------------------------------------ | 3989e41f4b71Sopenharmony_ci| buf | ArrayBuffer | 是 | 增量数据。 | 3990e41f4b71Sopenharmony_ci| options | [SourceOptions](#sourceoptions9) | 否 | 图片属性,包括图片像素密度、像素格式和图片尺寸。 | 3991e41f4b71Sopenharmony_ci 3992e41f4b71Sopenharmony_ci**返回值:** 3993e41f4b71Sopenharmony_ci 3994e41f4b71Sopenharmony_ci| 类型 | 说明 | 3995e41f4b71Sopenharmony_ci| --------------------------- | --------------------------------- | 3996e41f4b71Sopenharmony_ci| [ImageSource](#imagesource) | 返回图片源,失败时返回undefined。 | 3997e41f4b71Sopenharmony_ci 3998e41f4b71Sopenharmony_ci**示例:** 3999e41f4b71Sopenharmony_ci 4000e41f4b71Sopenharmony_ci```ts 4001e41f4b71Sopenharmony_ciconst context: Context = getContext(this) 4002e41f4b71Sopenharmony_cilet imageArray = context.resourceManager.getMediaContentSync($r('app.media.startIcon')) // 获取图像资源 4003e41f4b71Sopenharmony_ci// 此处'app.media.startIcon'仅作示例,请开发者自行替换,否则imageArray创建失败会导致后续无法正常执行。 4004e41f4b71Sopenharmony_cilet splitBuff1 = imageArray.slice(0, imageArray.byteLength / 2) // 分片 4005e41f4b71Sopenharmony_cilet splitBuff2 = imageArray.slice(imageArray.byteLength / 2) 4006e41f4b71Sopenharmony_cilet sourceOptions: image.SourceOptions = { sourceDensity: 120}; 4007e41f4b71Sopenharmony_ci 4008e41f4b71Sopenharmony_ciconst imageSourceIncrementalSApi: image.ImageSource = image.CreateIncrementalSource(new ArrayBuffer(imageArray.byteLength), sourceOptions); 4009e41f4b71Sopenharmony_ciimageSourceIncrementalSApi.updateData(splitBuff1, false, 0, splitBuff1.byteLength).then(() => { 4010e41f4b71Sopenharmony_ci imageSourceIncrementalSApi.updateData(splitBuff2, true, 0, splitBuff2.byteLength).then(() => { 4011e41f4b71Sopenharmony_ci let pixelMap = imageSourceIncrementalSApi.createPixelMapSync() 4012e41f4b71Sopenharmony_ci let imageInfo = pixelMap.getImageInfoSync() 4013e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelMap') 4014e41f4b71Sopenharmony_ci }).catch((error : BusinessError) => { 4015e41f4b71Sopenharmony_ci console.error(`Failed to updateData error code is ${error.code}, message is ${error.message}`) 4016e41f4b71Sopenharmony_ci }) 4017e41f4b71Sopenharmony_ci}).catch((error : BusinessError) => { 4018e41f4b71Sopenharmony_ci console.error(`Failed to updateData error code is ${error.code}, message is ${error.message}`) 4019e41f4b71Sopenharmony_ci}) 4020e41f4b71Sopenharmony_ci``` 4021e41f4b71Sopenharmony_ci 4022e41f4b71Sopenharmony_ci## ImageSource 4023e41f4b71Sopenharmony_ci 4024e41f4b71Sopenharmony_ci图片源类,用于获取图片相关信息。在调用ImageSource的方法前,需要先通过[createImageSource](#imagecreateimagesource)构建一个ImageSource实例。 4025e41f4b71Sopenharmony_ci 4026e41f4b71Sopenharmony_ci### 属性 4027e41f4b71Sopenharmony_ci 4028e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4029e41f4b71Sopenharmony_ci 4030e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 4031e41f4b71Sopenharmony_ci| ---------------- | -------------- | ---- | ---- | ------------------------------------------------------------ | 4032e41f4b71Sopenharmony_ci| supportedFormats | Array\<string> | 是 | 否 | 支持的图片格式,包括:png,jpeg,bmp,gif,webp,dng,heif<sup>12+</sup>(不同硬件设备支持情况不同)。 | 4033e41f4b71Sopenharmony_ci 4034e41f4b71Sopenharmony_ci### getImageInfo 4035e41f4b71Sopenharmony_ci 4036e41f4b71Sopenharmony_cigetImageInfo(index: number, callback: AsyncCallback\<ImageInfo>): void 4037e41f4b71Sopenharmony_ci 4038e41f4b71Sopenharmony_ci获取指定序号的图片信息,使用callback形式返回图片信息。 4039e41f4b71Sopenharmony_ci 4040e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 4041e41f4b71Sopenharmony_ci 4042e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4043e41f4b71Sopenharmony_ci 4044e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4045e41f4b71Sopenharmony_ci 4046e41f4b71Sopenharmony_ci**参数:** 4047e41f4b71Sopenharmony_ci 4048e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4049e41f4b71Sopenharmony_ci| -------- | -------------------------------------- | ---- | ---------------------------------------- | 4050e41f4b71Sopenharmony_ci| index | number | 是 | 创建图片源时的序号。 | 4051e41f4b71Sopenharmony_ci| callback | AsyncCallback<[ImageInfo](#imageinfo)> | 是 | 回调函数。当获取图片信息成功,err为undefined,data为获取到的图片信息;否则为错误对象。 | 4052e41f4b71Sopenharmony_ci 4053e41f4b71Sopenharmony_ci**示例:** 4054e41f4b71Sopenharmony_ci 4055e41f4b71Sopenharmony_ci```ts 4056e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4057e41f4b71Sopenharmony_ci 4058e41f4b71Sopenharmony_ciimageSourceApi.getImageInfo(0, (error: BusinessError, imageInfo: image.ImageInfo) => { 4059e41f4b71Sopenharmony_ci if (error) { 4060e41f4b71Sopenharmony_ci console.error(`Failed to obtain the image information.code is ${error.code}, message is ${error.message}`); 4061e41f4b71Sopenharmony_ci } else { 4062e41f4b71Sopenharmony_ci console.info('Succeeded in obtaining the image information.'); 4063e41f4b71Sopenharmony_ci } 4064e41f4b71Sopenharmony_ci}) 4065e41f4b71Sopenharmony_ci``` 4066e41f4b71Sopenharmony_ci 4067e41f4b71Sopenharmony_ci### getImageInfo 4068e41f4b71Sopenharmony_ci 4069e41f4b71Sopenharmony_cigetImageInfo(callback: AsyncCallback\<ImageInfo>): void 4070e41f4b71Sopenharmony_ci 4071e41f4b71Sopenharmony_ci获取图片信息,使用callback形式返回图片信息。 4072e41f4b71Sopenharmony_ci 4073e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 4074e41f4b71Sopenharmony_ci 4075e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4076e41f4b71Sopenharmony_ci 4077e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4078e41f4b71Sopenharmony_ci 4079e41f4b71Sopenharmony_ci**参数:** 4080e41f4b71Sopenharmony_ci 4081e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4082e41f4b71Sopenharmony_ci| -------- | -------------------------------------- | ---- | ---------------------------------------- | 4083e41f4b71Sopenharmony_ci| callback | AsyncCallback<[ImageInfo](#imageinfo)> | 是 | 回调函数。当获取图片信息成功,err为undefined,data为获取到的图片信息;否则为错误对象。 | 4084e41f4b71Sopenharmony_ci 4085e41f4b71Sopenharmony_ci**示例:** 4086e41f4b71Sopenharmony_ci 4087e41f4b71Sopenharmony_ci```ts 4088e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4089e41f4b71Sopenharmony_ci 4090e41f4b71Sopenharmony_ciimageSourceApi.getImageInfo((err: BusinessError, imageInfo: image.ImageInfo) => { 4091e41f4b71Sopenharmony_ci if (err) { 4092e41f4b71Sopenharmony_ci console.error(`Failed to obtain the image information.code is ${err.code}, message is ${err.message}`); 4093e41f4b71Sopenharmony_ci } else { 4094e41f4b71Sopenharmony_ci console.info('Succeeded in obtaining the image information.'); 4095e41f4b71Sopenharmony_ci } 4096e41f4b71Sopenharmony_ci}) 4097e41f4b71Sopenharmony_ci``` 4098e41f4b71Sopenharmony_ci 4099e41f4b71Sopenharmony_ci### getImageInfo 4100e41f4b71Sopenharmony_ci 4101e41f4b71Sopenharmony_cigetImageInfo(index?: number): Promise\<ImageInfo> 4102e41f4b71Sopenharmony_ci 4103e41f4b71Sopenharmony_ci获取图片信息,使用Promise形式返回图片信息。 4104e41f4b71Sopenharmony_ci 4105e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 4106e41f4b71Sopenharmony_ci 4107e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4108e41f4b71Sopenharmony_ci 4109e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4110e41f4b71Sopenharmony_ci 4111e41f4b71Sopenharmony_ci**参数:** 4112e41f4b71Sopenharmony_ci 4113e41f4b71Sopenharmony_ci| 参数名| 类型 | 必填 | 说明 | 4114e41f4b71Sopenharmony_ci| ----- | ------ | ---- | ------------------------------------- | 4115e41f4b71Sopenharmony_ci| index | number | 否 | 创建图片源时的序号,不选择时默认为0。 | 4116e41f4b71Sopenharmony_ci 4117e41f4b71Sopenharmony_ci**返回值:** 4118e41f4b71Sopenharmony_ci 4119e41f4b71Sopenharmony_ci| 类型 | 说明 | 4120e41f4b71Sopenharmony_ci| -------------------------------- | ---------------------- | 4121e41f4b71Sopenharmony_ci| Promise<[ImageInfo](#imageinfo)> | Promise对象,返回获取到的图片信息。 | 4122e41f4b71Sopenharmony_ci 4123e41f4b71Sopenharmony_ci**示例:** 4124e41f4b71Sopenharmony_ci 4125e41f4b71Sopenharmony_ci```ts 4126e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4127e41f4b71Sopenharmony_ci 4128e41f4b71Sopenharmony_ciimageSourceApi.getImageInfo(0) 4129e41f4b71Sopenharmony_ci .then((imageInfo: image.ImageInfo) => { 4130e41f4b71Sopenharmony_ci console.info('Succeeded in obtaining the image information.'); 4131e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 4132e41f4b71Sopenharmony_ci console.error(`Failed to obtain the image information.code is ${error.code}, message is ${error.message}`); 4133e41f4b71Sopenharmony_ci }) 4134e41f4b71Sopenharmony_ci``` 4135e41f4b71Sopenharmony_ci 4136e41f4b71Sopenharmony_ci### getImageInfoSync<sup>12+</sup> 4137e41f4b71Sopenharmony_ci 4138e41f4b71Sopenharmony_cigetImageInfoSync(index?: number): ImageInfo 4139e41f4b71Sopenharmony_ci 4140e41f4b71Sopenharmony_ci获取指定序号的图片信息,使用同步形式返回图片信息。 4141e41f4b71Sopenharmony_ci 4142e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4143e41f4b71Sopenharmony_ci 4144e41f4b71Sopenharmony_ci**参数:** 4145e41f4b71Sopenharmony_ci 4146e41f4b71Sopenharmony_ci| 参数名| 类型 | 必填 | 说明 | 4147e41f4b71Sopenharmony_ci| ----- | ------ | ---- | ------------------------------------- | 4148e41f4b71Sopenharmony_ci| index | number | 否 | 创建图片源时的序号,不选择时默认为0。 | 4149e41f4b71Sopenharmony_ci 4150e41f4b71Sopenharmony_ci**返回值:** 4151e41f4b71Sopenharmony_ci 4152e41f4b71Sopenharmony_ci| 类型 | 说明 | 4153e41f4b71Sopenharmony_ci| -------------------------------- | ---------------------- | 4154e41f4b71Sopenharmony_ci| [ImageInfo](#imageinfo) | 同步返回获取到的图片信息。 | 4155e41f4b71Sopenharmony_ci 4156e41f4b71Sopenharmony_ci**示例:** 4157e41f4b71Sopenharmony_ci 4158e41f4b71Sopenharmony_ci```ts 4159e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 4160e41f4b71Sopenharmony_ci 4161e41f4b71Sopenharmony_ciconst context: Context = getContext(); 4162e41f4b71Sopenharmony_ci//此处'test.jpg'仅作示例,请开发者自行替换,否则imageSource创建失败会导致后续无法正常执行。 4163e41f4b71Sopenharmony_cilet filePath: string = context.filesDir + "/test.jpg"; 4164e41f4b71Sopenharmony_cilet imageSource = image.createImageSource(filePath); 4165e41f4b71Sopenharmony_cilet imageInfo = imageSource.getImageInfoSync(0); 4166e41f4b71Sopenharmony_ciif (imageInfo == undefined) { 4167e41f4b71Sopenharmony_ci console.error('Failed to obtain the image information.'); 4168e41f4b71Sopenharmony_ci} else { 4169e41f4b71Sopenharmony_ci console.info('Succeeded in obtaining the image information.'); 4170e41f4b71Sopenharmony_ci console.info('imageInfo.size.height:' + imageInfo.size.height); 4171e41f4b71Sopenharmony_ci console.info('imageInfo.size.width:' + imageInfo.size.width); 4172e41f4b71Sopenharmony_ci} 4173e41f4b71Sopenharmony_ci``` 4174e41f4b71Sopenharmony_ci 4175e41f4b71Sopenharmony_ci### getImageProperty<sup>11+</sup> 4176e41f4b71Sopenharmony_ci 4177e41f4b71Sopenharmony_cigetImageProperty(key:PropertyKey, options?: ImagePropertyOptions): Promise\<string> 4178e41f4b71Sopenharmony_ci 4179e41f4b71Sopenharmony_ci获取图片中给定索引处图像的指定属性键的值,用Promise形式返回结果,仅支持JPEG、PNG和HEIF<sup>12+</sup>(不同硬件设备支持情况不同)文件,且需要包含exif信息。其中可以通过supportedFormats属性查询是否支持HEIF格式的exif读写。 4180e41f4b71Sopenharmony_ci 4181e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4182e41f4b71Sopenharmony_ci 4183e41f4b71Sopenharmony_ci**参数:** 4184e41f4b71Sopenharmony_ci 4185e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4186e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------- | ---- | ------------------------------------ | 4187e41f4b71Sopenharmony_ci| key | [PropertyKey](#propertykey7) | 是 | 图片属性名。 | 4188e41f4b71Sopenharmony_ci| options | [ImagePropertyOptions](#imagepropertyoptions11) | 否 | 图片属性,包括图片序号与默认属性值。 | 4189e41f4b71Sopenharmony_ci 4190e41f4b71Sopenharmony_ci**返回值:** 4191e41f4b71Sopenharmony_ci 4192e41f4b71Sopenharmony_ci| 类型 | 说明 | 4193e41f4b71Sopenharmony_ci| ---------------- | ----------------------------------------------------------------- | 4194e41f4b71Sopenharmony_ci| Promise\<string> | Promise对象,返回图片属性值,如获取失败则返回属性默认值。 | 4195e41f4b71Sopenharmony_ci 4196e41f4b71Sopenharmony_ci**错误码:** 4197e41f4b71Sopenharmony_ci 4198e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 4199e41f4b71Sopenharmony_ci 4200e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4201e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4202e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types;3.Parameter verification failed; | 4203e41f4b71Sopenharmony_ci| 62980096 | The operation failed. | 4204e41f4b71Sopenharmony_ci| 62980103 | The image data is not supported. | 4205e41f4b71Sopenharmony_ci| 62980110 | The image source data is incorrect. | 4206e41f4b71Sopenharmony_ci| 62980111 | The image source data is incomplete. | 4207e41f4b71Sopenharmony_ci| 62980112 | The image format does not match. | 4208e41f4b71Sopenharmony_ci| 62980113 | Unknown image format. | 4209e41f4b71Sopenharmony_ci| 62980115 | Invalid image parameter. | 4210e41f4b71Sopenharmony_ci| 62980116| Failed to decode the image. | 4211e41f4b71Sopenharmony_ci| 62980118 | Failed to create the image plugin. | 4212e41f4b71Sopenharmony_ci| 62980122 | Failed to decode the image header. | 4213e41f4b71Sopenharmony_ci| 62980123| Images in EXIF format are not supported. | 4214e41f4b71Sopenharmony_ci| 62980135| The EXIF value is invalid. | 4215e41f4b71Sopenharmony_ci 4216e41f4b71Sopenharmony_ci**示例:** 4217e41f4b71Sopenharmony_ci 4218e41f4b71Sopenharmony_ci```ts 4219e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4220e41f4b71Sopenharmony_ci 4221e41f4b71Sopenharmony_cilet options: image.ImagePropertyOptions = { index: 0, defaultValue: '9999' } 4222e41f4b71Sopenharmony_ciimageSourceApi.getImageProperty(image.PropertyKey.BITS_PER_SAMPLE, options) 4223e41f4b71Sopenharmony_ci.then((data: string) => { 4224e41f4b71Sopenharmony_ci console.info('Succeeded in getting the value of the specified attribute key of the image.'); 4225e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 4226e41f4b71Sopenharmony_ci console.error('Failed to get the value of the specified attribute key of the image.'); 4227e41f4b71Sopenharmony_ci}) 4228e41f4b71Sopenharmony_ci``` 4229e41f4b71Sopenharmony_ci 4230e41f4b71Sopenharmony_ci### getImageProperty<sup>(deprecated)</sup> 4231e41f4b71Sopenharmony_ci 4232e41f4b71Sopenharmony_cigetImageProperty(key:string, options?: GetImagePropertyOptions): Promise\<string> 4233e41f4b71Sopenharmony_ci 4234e41f4b71Sopenharmony_ci获取图片中给定索引处图像的指定属性键的值,用Promise形式返回结果,仅支持JPEG、PNG和HEIF<sup>12+</sup>(不同硬件设备支持情况不同)文件,且需要包含exif信息。其中可以通过supportedFormats属性查询是否支持HEIF格式的exif读写。 4235e41f4b71Sopenharmony_ci 4236e41f4b71Sopenharmony_ci> **说明:** 4237e41f4b71Sopenharmony_ci> 4238e41f4b71Sopenharmony_ci> 从API version 11开始不再维护,建议使用[getImageProperty](#getimageproperty11)代替。 4239e41f4b71Sopenharmony_ci 4240e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4241e41f4b71Sopenharmony_ci 4242e41f4b71Sopenharmony_ci**参数:** 4243e41f4b71Sopenharmony_ci 4244e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4245e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------- | ---- | ------------------------------------ | 4246e41f4b71Sopenharmony_ci| key | string | 是 | 图片属性名。 | 4247e41f4b71Sopenharmony_ci| options | [GetImagePropertyOptions](#getimagepropertyoptionsdeprecated) | 否 | 图片属性,包括图片序号与默认属性值。 | 4248e41f4b71Sopenharmony_ci 4249e41f4b71Sopenharmony_ci**返回值:** 4250e41f4b71Sopenharmony_ci 4251e41f4b71Sopenharmony_ci| 类型 | 说明 | 4252e41f4b71Sopenharmony_ci| ---------------- | ----------------------------------------------------------------- | 4253e41f4b71Sopenharmony_ci| Promise\<string> | Promise对象,返回图片属性值,如获取失败则返回属性默认值。 | 4254e41f4b71Sopenharmony_ci 4255e41f4b71Sopenharmony_ci**示例:** 4256e41f4b71Sopenharmony_ci 4257e41f4b71Sopenharmony_ci```ts 4258e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4259e41f4b71Sopenharmony_ci 4260e41f4b71Sopenharmony_ciimageSourceApi.getImageProperty("BitsPerSample") 4261e41f4b71Sopenharmony_ci .then((data: string) => { 4262e41f4b71Sopenharmony_ci console.info('Succeeded in getting the value of the specified attribute key of the image.'); 4263e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 4264e41f4b71Sopenharmony_ci console.error('Failed to get the value of the specified attribute key of the image.'); 4265e41f4b71Sopenharmony_ci }) 4266e41f4b71Sopenharmony_ci``` 4267e41f4b71Sopenharmony_ci 4268e41f4b71Sopenharmony_ci### getImageProperty<sup>(deprecated)</sup> 4269e41f4b71Sopenharmony_ci 4270e41f4b71Sopenharmony_cigetImageProperty(key:string, callback: AsyncCallback\<string>): void 4271e41f4b71Sopenharmony_ci 4272e41f4b71Sopenharmony_ci获取图片中给定索引处图像的指定属性键的值,用callback形式返回结果,仅支持JPEG、PNG和HEIF<sup>12+</sup>(不同硬件设备支持情况不同)文件,且需要包含exif信息。其中可以通过supportedFormats属性查询是否支持HEIF格式的exif读写。 4273e41f4b71Sopenharmony_ci 4274e41f4b71Sopenharmony_ci> **说明:** 4275e41f4b71Sopenharmony_ci> 4276e41f4b71Sopenharmony_ci> 从API version 11开始不再维护,建议使用[getImageProperty](#getimageproperty11)代替。 4277e41f4b71Sopenharmony_ci 4278e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4279e41f4b71Sopenharmony_ci 4280e41f4b71Sopenharmony_ci**参数:** 4281e41f4b71Sopenharmony_ci 4282e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4283e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | ------------------------------------------------------------ | 4284e41f4b71Sopenharmony_ci| key | string | 是 | 图片属性名。 | 4285e41f4b71Sopenharmony_ci| callback | AsyncCallback\<string> | 是 | 回调函数,当获取图片属性值成功,err为undefined,data为获取到的图片属性值;否则为错误对象。 | 4286e41f4b71Sopenharmony_ci 4287e41f4b71Sopenharmony_ci**示例:** 4288e41f4b71Sopenharmony_ci 4289e41f4b71Sopenharmony_ci```ts 4290e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4291e41f4b71Sopenharmony_ci 4292e41f4b71Sopenharmony_ciimageSourceApi.getImageProperty("BitsPerSample", (error: BusinessError, data: string) => { 4293e41f4b71Sopenharmony_ci if (error) { 4294e41f4b71Sopenharmony_ci console.error('Failed to get the value of the specified attribute key of the image.'); 4295e41f4b71Sopenharmony_ci } else { 4296e41f4b71Sopenharmony_ci console.info('Succeeded in getting the value of the specified attribute key of the image.'); 4297e41f4b71Sopenharmony_ci } 4298e41f4b71Sopenharmony_ci}) 4299e41f4b71Sopenharmony_ci``` 4300e41f4b71Sopenharmony_ci 4301e41f4b71Sopenharmony_ci### getImageProperty<sup>(deprecated)</sup> 4302e41f4b71Sopenharmony_ci 4303e41f4b71Sopenharmony_cigetImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCallback\<string>): void 4304e41f4b71Sopenharmony_ci 4305e41f4b71Sopenharmony_ci获取图片指定属性键的值,callback形式返回结果,仅支持JPEG、PNG和HEIF<sup>12+</sup>(不同硬件设备支持情况不同)文件,且需要包含exif信息。其中可以通过supportedFormats属性查询是否支持HEIF格式的exif读写。 4306e41f4b71Sopenharmony_ci 4307e41f4b71Sopenharmony_ci> **说明:** 4308e41f4b71Sopenharmony_ci> 4309e41f4b71Sopenharmony_ci> 从API version 11开始不再维护,建议使用[getImageProperty](#getimageproperty11)代替。 4310e41f4b71Sopenharmony_ci 4311e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4312e41f4b71Sopenharmony_ci 4313e41f4b71Sopenharmony_ci**参数:** 4314e41f4b71Sopenharmony_ci 4315e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4316e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------- | 4317e41f4b71Sopenharmony_ci| key | string | 是 | 图片属性名。 | 4318e41f4b71Sopenharmony_ci| options | [GetImagePropertyOptions](#getimagepropertyoptionsdeprecated) | 是 | 图片属性,包括图片序号与默认属性值。 | 4319e41f4b71Sopenharmony_ci| callback | AsyncCallback\<string> | 是 | 回调函数,当获取图片属性值成功,err为undefined,data为获取到的图片属性值;否则为错误对象。| 4320e41f4b71Sopenharmony_ci 4321e41f4b71Sopenharmony_ci**示例:** 4322e41f4b71Sopenharmony_ci 4323e41f4b71Sopenharmony_ci```ts 4324e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4325e41f4b71Sopenharmony_ci 4326e41f4b71Sopenharmony_cilet property: image.GetImagePropertyOptions = { index: 0, defaultValue: '9999' } 4327e41f4b71Sopenharmony_ciimageSourceApi.getImageProperty("BitsPerSample", property, (error: BusinessError, data: string) => { 4328e41f4b71Sopenharmony_ci if (error) { 4329e41f4b71Sopenharmony_ci console.error('Failed to get the value of the specified attribute key of the image.'); 4330e41f4b71Sopenharmony_ci } else { 4331e41f4b71Sopenharmony_ci console.info('Succeeded in getting the value of the specified attribute key of the image.'); 4332e41f4b71Sopenharmony_ci } 4333e41f4b71Sopenharmony_ci}) 4334e41f4b71Sopenharmony_ci``` 4335e41f4b71Sopenharmony_ci 4336e41f4b71Sopenharmony_ci### getImageProperties<sup>12+</sup> 4337e41f4b71Sopenharmony_ci 4338e41f4b71Sopenharmony_cigetImageProperties(key: Array<PropertyKey>): Promise<Record<PropertyKey, string|null>> 4339e41f4b71Sopenharmony_ci 4340e41f4b71Sopenharmony_ci批量获取图片中的指定属性键的值,用Promise形式返回结果。仅支持JPEG、PNG和HEIF<sup>12+</sup>(不同硬件设备支持情况不同)文件,且需要包含exif信息。其中可以通过supportedFormats属性查询是否支持HEIF格式的exif读写。 4341e41f4b71Sopenharmony_ci 4342e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4343e41f4b71Sopenharmony_ci 4344e41f4b71Sopenharmony_ci**参数:** 4345e41f4b71Sopenharmony_ci 4346e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4347e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------- | ---- | ------------------------------------ | 4348e41f4b71Sopenharmony_ci| key | Array\<[PropertyKey](#propertykey7)> | 是 | 图片属性名的数组。 | 4349e41f4b71Sopenharmony_ci 4350e41f4b71Sopenharmony_ci**返回值:** 4351e41f4b71Sopenharmony_ci 4352e41f4b71Sopenharmony_ci| 类型 | 说明 | 4353e41f4b71Sopenharmony_ci| ---------------- | ----------------------------------------------------------------- | 4354e41f4b71Sopenharmony_ci| Promise\<Record<[PropertyKey](#propertykey7), string \| null>> | Promise对象,返回图片属性值,如获取失败则返回null。 | 4355e41f4b71Sopenharmony_ci 4356e41f4b71Sopenharmony_ci**错误码:** 4357e41f4b71Sopenharmony_ci 4358e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 4359e41f4b71Sopenharmony_ci 4360e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4361e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4362e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types;3.Parameter verification failed; | 4363e41f4b71Sopenharmony_ci| 62980096| The operation failed. | 4364e41f4b71Sopenharmony_ci| 62980110| The image source data is incorrect. | 4365e41f4b71Sopenharmony_ci| 62980113| Unknown image format. | 4366e41f4b71Sopenharmony_ci| 62980116| Failed to decode the image. | 4367e41f4b71Sopenharmony_ci 4368e41f4b71Sopenharmony_ci**示例:** 4369e41f4b71Sopenharmony_ci 4370e41f4b71Sopenharmony_ci```ts 4371e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 4372e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4373e41f4b71Sopenharmony_ci 4374e41f4b71Sopenharmony_cilet key = [image.PropertyKey.IMAGE_WIDTH, image.PropertyKey.IMAGE_LENGTH]; 4375e41f4b71Sopenharmony_ciimageSourceApi.getImageProperties(key).then((data) => { 4376e41f4b71Sopenharmony_ci console.info(JSON.stringify(data)); 4377e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 4378e41f4b71Sopenharmony_ci console.error(JSON.stringify(err)); 4379e41f4b71Sopenharmony_ci}); 4380e41f4b71Sopenharmony_ci``` 4381e41f4b71Sopenharmony_ci 4382e41f4b71Sopenharmony_ci### modifyImageProperty<sup>11+</sup> 4383e41f4b71Sopenharmony_ci 4384e41f4b71Sopenharmony_cimodifyImageProperty(key: PropertyKey, value: string): Promise\<void> 4385e41f4b71Sopenharmony_ci 4386e41f4b71Sopenharmony_ci通过指定的键修改图片属性的值,使用Promise形式返回结果,仅支持JPEG、PNG和HEIF<sup>12+</sup>(不同硬件设备支持情况不同)文件,且需要包含exif信息。其中可以通过supportedFormats属性查询是否支持HEIF格式的exif读写。 4387e41f4b71Sopenharmony_ci 4388e41f4b71Sopenharmony_ci> **说明:** 4389e41f4b71Sopenharmony_ci> 4390e41f4b71Sopenharmony_ci> 调用modifyImageProperty修改属性会改变属性字节长度,使用buffer创建的ImageSource调用modifyImageProperty会导致buffer内容覆盖,目前buffer创建的ImageSource不支持调用此接口,请改用fd或path创建的ImageSource。 4391e41f4b71Sopenharmony_ci 4392e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4393e41f4b71Sopenharmony_ci 4394e41f4b71Sopenharmony_ci**参数:** 4395e41f4b71Sopenharmony_ci 4396e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4397e41f4b71Sopenharmony_ci| ------- | ------ | ---- | ------------ | 4398e41f4b71Sopenharmony_ci| key | [PropertyKey](#propertykey7) | 是 | 图片属性名。 | 4399e41f4b71Sopenharmony_ci| value | string | 是 | 属性值。 | 4400e41f4b71Sopenharmony_ci 4401e41f4b71Sopenharmony_ci**返回值:** 4402e41f4b71Sopenharmony_ci 4403e41f4b71Sopenharmony_ci| 类型 | 说明 | 4404e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 4405e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4406e41f4b71Sopenharmony_ci 4407e41f4b71Sopenharmony_ci**错误码:** 4408e41f4b71Sopenharmony_ci 4409e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 4410e41f4b71Sopenharmony_ci 4411e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4412e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4413e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types; | 4414e41f4b71Sopenharmony_ci| 62980123| The image does not support EXIF decoding. | 4415e41f4b71Sopenharmony_ci| 62980133| The EXIF data is out of range. | 4416e41f4b71Sopenharmony_ci| 62980135| The EXIF value is invalid. | 4417e41f4b71Sopenharmony_ci| 62980146| The EXIF data failed to be written to the file. | 4418e41f4b71Sopenharmony_ci 4419e41f4b71Sopenharmony_ci**示例:** 4420e41f4b71Sopenharmony_ci 4421e41f4b71Sopenharmony_ci```ts 4422e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4423e41f4b71Sopenharmony_ci 4424e41f4b71Sopenharmony_ciimageSourceApi.modifyImageProperty(image.PropertyKey.IMAGE_WIDTH, "120").then(() => { 4425e41f4b71Sopenharmony_ci imageSourceApi.getImageProperty(image.PropertyKey.IMAGE_WIDTH).then((width: string) => { 4426e41f4b71Sopenharmony_ci console.info(`ImageWidth is :${width}`); 4427e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 4428e41f4b71Sopenharmony_ci console.error('Failed to get the Image Width.'); 4429e41f4b71Sopenharmony_ci }) 4430e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 4431e41f4b71Sopenharmony_ci console.error('Failed to modify the Image Width'); 4432e41f4b71Sopenharmony_ci}) 4433e41f4b71Sopenharmony_ci``` 4434e41f4b71Sopenharmony_ci 4435e41f4b71Sopenharmony_ci### modifyImageProperty<sup>(deprecated)</sup> 4436e41f4b71Sopenharmony_ci 4437e41f4b71Sopenharmony_cimodifyImageProperty(key: string, value: string): Promise\<void> 4438e41f4b71Sopenharmony_ci 4439e41f4b71Sopenharmony_ci通过指定的键修改图片属性的值,使用Promise形式返回结果,仅支持JPEG、PNG和HEIF<sup>12+</sup>(不同硬件设备支持情况不同)文件,且需要包含exif信息。其中可以通过supportedFormats属性查询是否支持HEIF格式的exif读写。 4440e41f4b71Sopenharmony_ci 4441e41f4b71Sopenharmony_ci> **说明:** 4442e41f4b71Sopenharmony_ci> 4443e41f4b71Sopenharmony_ci> 调用modifyImageProperty修改属性会改变属性字节长度,使用buffer创建的ImageSource调用modifyImageProperty会导致buffer内容覆盖,目前buffer创建的ImageSource不支持调用此接口,请改用fd或path创建的ImageSource。 4444e41f4b71Sopenharmony_ci> 4445e41f4b71Sopenharmony_ci> 从API version 11开始不再维护,建议使用[modifyImageProperty](#modifyimageproperty11)代替。 4446e41f4b71Sopenharmony_ci 4447e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4448e41f4b71Sopenharmony_ci 4449e41f4b71Sopenharmony_ci**参数:** 4450e41f4b71Sopenharmony_ci 4451e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4452e41f4b71Sopenharmony_ci| ------- | ------ | ---- | ------------ | 4453e41f4b71Sopenharmony_ci| key | string | 是 | 图片属性名。 | 4454e41f4b71Sopenharmony_ci| value | string | 是 | 属性值。 | 4455e41f4b71Sopenharmony_ci 4456e41f4b71Sopenharmony_ci**返回值:** 4457e41f4b71Sopenharmony_ci 4458e41f4b71Sopenharmony_ci| 类型 | 说明 | 4459e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 4460e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。| 4461e41f4b71Sopenharmony_ci 4462e41f4b71Sopenharmony_ci**示例:** 4463e41f4b71Sopenharmony_ci 4464e41f4b71Sopenharmony_ci```ts 4465e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4466e41f4b71Sopenharmony_ci 4467e41f4b71Sopenharmony_ciimageSourceApi.modifyImageProperty("ImageWidth", "120").then(() => { 4468e41f4b71Sopenharmony_ci imageSourceApi.getImageProperty("ImageWidth").then((width: string) => { 4469e41f4b71Sopenharmony_ci console.info(`ImageWidth is :${width}`); 4470e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 4471e41f4b71Sopenharmony_ci console.error('Failed to get the Image Width.'); 4472e41f4b71Sopenharmony_ci }) 4473e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 4474e41f4b71Sopenharmony_ci console.error('Failed to modify the Image Width'); 4475e41f4b71Sopenharmony_ci}) 4476e41f4b71Sopenharmony_ci``` 4477e41f4b71Sopenharmony_ci 4478e41f4b71Sopenharmony_ci### modifyImageProperty<sup>(deprecated)</sup> 4479e41f4b71Sopenharmony_ci 4480e41f4b71Sopenharmony_cimodifyImageProperty(key: string, value: string, callback: AsyncCallback\<void>): void 4481e41f4b71Sopenharmony_ci 4482e41f4b71Sopenharmony_ci通过指定的键修改图片属性的值,callback形式返回结果,仅支持JPEG、PNG和HEIF<sup>12+</sup>(不同硬件设备支持情况不同)文件,且需要包含exif信息。其中可以通过supportedFormats属性查询是否支持HEIF格式的exif读写。 4483e41f4b71Sopenharmony_ci 4484e41f4b71Sopenharmony_ci> **说明:** 4485e41f4b71Sopenharmony_ci> 4486e41f4b71Sopenharmony_ci> 调用modifyImageProperty修改属性会改变属性字节长度,使用buffer创建的ImageSource调用modifyImageProperty会导致buffer内容覆盖,目前buffer创建的ImageSource不支持调用此接口,请改用fd或path创建的ImageSource。 4487e41f4b71Sopenharmony_ci> 4488e41f4b71Sopenharmony_ci>从API version 11开始不再维护,建议使用[modifyImageProperty](#modifyimageproperty11)代替。 4489e41f4b71Sopenharmony_ci 4490e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4491e41f4b71Sopenharmony_ci 4492e41f4b71Sopenharmony_ci**参数:** 4493e41f4b71Sopenharmony_ci 4494e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4495e41f4b71Sopenharmony_ci| -------- | ------------------- | ---- | ------------------------------ | 4496e41f4b71Sopenharmony_ci| key | string | 是 | 图片属性名。 | 4497e41f4b71Sopenharmony_ci| value | string | 是 | 属性值。 | 4498e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当修改图片属性值成功,err为undefined,否则为错误对象。 | 4499e41f4b71Sopenharmony_ci 4500e41f4b71Sopenharmony_ci**示例:** 4501e41f4b71Sopenharmony_ci 4502e41f4b71Sopenharmony_ci```ts 4503e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4504e41f4b71Sopenharmony_ci 4505e41f4b71Sopenharmony_ciimageSourceApi.modifyImageProperty("ImageWidth", "120", (err: BusinessError) => { 4506e41f4b71Sopenharmony_ci if (err) { 4507e41f4b71Sopenharmony_ci console.error(`Failed to modify the Image Width.code is ${err.code}, message is ${err.message}`); 4508e41f4b71Sopenharmony_ci } else { 4509e41f4b71Sopenharmony_ci console.info('Succeeded in modifying the Image Width.'); 4510e41f4b71Sopenharmony_ci } 4511e41f4b71Sopenharmony_ci}) 4512e41f4b71Sopenharmony_ci``` 4513e41f4b71Sopenharmony_ci 4514e41f4b71Sopenharmony_ci### modifyImageProperties<sup>12+</sup> 4515e41f4b71Sopenharmony_ci 4516e41f4b71Sopenharmony_cimodifyImageProperties(records: Record<PropertyKey, string|null>): Promise\<void> 4517e41f4b71Sopenharmony_ci 4518e41f4b71Sopenharmony_ci批量通过指定的键修改图片属性的值,使用Promise形式返回结果。仅支持JPEG、PNG和HEIF<sup>12+</sup>(不同硬件设备支持情况不同)文件,且需要包含exif信息。其中可以通过supportedFormats属性查询是否支持HEIF格式的exif读写。 4519e41f4b71Sopenharmony_ci 4520e41f4b71Sopenharmony_ci> **说明:** 4521e41f4b71Sopenharmony_ci> 4522e41f4b71Sopenharmony_ci> 调用modifyImageProperties修改属性会改变属性字节长度,使用buffer创建的ImageSource调用modifyImageProperties会导致buffer内容覆盖,目前buffer创建的ImageSource不支持调用此接口,请改用fd或path创建的ImageSource。 4523e41f4b71Sopenharmony_ci> 4524e41f4b71Sopenharmony_ci 4525e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4526e41f4b71Sopenharmony_ci 4527e41f4b71Sopenharmony_ci**参数:** 4528e41f4b71Sopenharmony_ci 4529e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4530e41f4b71Sopenharmony_ci| ------- | ------ | ---- | ------------ | 4531e41f4b71Sopenharmony_ci| records | Record<[PropertyKey](#propertykey7), string \| null> | 是 | 包含图片属性名和属性值的数组。 | 4532e41f4b71Sopenharmony_ci 4533e41f4b71Sopenharmony_ci**返回值:** 4534e41f4b71Sopenharmony_ci 4535e41f4b71Sopenharmony_ci| 类型 | 说明 | 4536e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 4537e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 4538e41f4b71Sopenharmony_ci 4539e41f4b71Sopenharmony_ci**错误码:** 4540e41f4b71Sopenharmony_ci 4541e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 4542e41f4b71Sopenharmony_ci 4543e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4544e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4545e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types;3.Parameter verification failed; | 4546e41f4b71Sopenharmony_ci| 62980123| The image does not support EXIF decoding. | 4547e41f4b71Sopenharmony_ci| 62980133| The EXIF data is out of range. | 4548e41f4b71Sopenharmony_ci| 62980135| The EXIF value is invalid. | 4549e41f4b71Sopenharmony_ci| 62980146| The EXIF data failed to be written to the file. | 4550e41f4b71Sopenharmony_ci 4551e41f4b71Sopenharmony_ci**示例:** 4552e41f4b71Sopenharmony_ci 4553e41f4b71Sopenharmony_ci```ts 4554e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 4555e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4556e41f4b71Sopenharmony_ci 4557e41f4b71Sopenharmony_cilet keyValues: Record<PropertyKey, string|null> = { 4558e41f4b71Sopenharmony_ci [image.PropertyKey.IMAGE_WIDTH] : "1024", 4559e41f4b71Sopenharmony_ci [image.PropertyKey.IMAGE_LENGTH] : "1024" 4560e41f4b71Sopenharmony_ci}; 4561e41f4b71Sopenharmony_cilet checkKey = [image.PropertyKey.IMAGE_WIDTH, image.PropertyKey.IMAGE_LENGTH]; 4562e41f4b71Sopenharmony_ciimageSourceApi.modifyImageProperties(keyValues).then(() => { 4563e41f4b71Sopenharmony_ci imageSourceApi.getImageProperties(checkKey).then((data) => { 4564e41f4b71Sopenharmony_ci console.info(JSON.stringify(data)); 4565e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4566e41f4b71Sopenharmony_ci console.error(JSON.stringify(err)); 4567e41f4b71Sopenharmony_ci }); 4568e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 4569e41f4b71Sopenharmony_ci console.error(JSON.stringify(err)); 4570e41f4b71Sopenharmony_ci}); 4571e41f4b71Sopenharmony_ci``` 4572e41f4b71Sopenharmony_ci 4573e41f4b71Sopenharmony_ci### updateData<sup>9+</sup> 4574e41f4b71Sopenharmony_ci 4575e41f4b71Sopenharmony_ciupdateData(buf: ArrayBuffer, isFinished: boolean, offset: number, length: number): Promise\<void> 4576e41f4b71Sopenharmony_ci 4577e41f4b71Sopenharmony_ci更新增量数据,使用Promise形式返回结果。 4578e41f4b71Sopenharmony_ci 4579e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4580e41f4b71Sopenharmony_ci 4581e41f4b71Sopenharmony_ci**参数:** 4582e41f4b71Sopenharmony_ci 4583e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4584e41f4b71Sopenharmony_ci| ---------- | ----------- | ---- | ------------ | 4585e41f4b71Sopenharmony_ci| buf | ArrayBuffer | 是 | 增量数据。 | 4586e41f4b71Sopenharmony_ci| isFinished | boolean | 是 | 是否更新完。 | 4587e41f4b71Sopenharmony_ci| offset | number | 是 | 偏移量。 | 4588e41f4b71Sopenharmony_ci| length | number | 是 | 数组长。 | 4589e41f4b71Sopenharmony_ci 4590e41f4b71Sopenharmony_ci**返回值:** 4591e41f4b71Sopenharmony_ci 4592e41f4b71Sopenharmony_ci| 类型 | 说明 | 4593e41f4b71Sopenharmony_ci| -------------- | -------------------------- | 4594e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。| 4595e41f4b71Sopenharmony_ci 4596e41f4b71Sopenharmony_ci**示例:** 4597e41f4b71Sopenharmony_ci 4598e41f4b71Sopenharmony_ci```ts 4599e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4600e41f4b71Sopenharmony_ci 4601e41f4b71Sopenharmony_ciconst array: ArrayBuffer = new ArrayBuffer(100); 4602e41f4b71Sopenharmony_ciimageSourceApi.updateData(array, false, 0, 10).then(() => { 4603e41f4b71Sopenharmony_ci console.info('Succeeded in updating data.'); 4604e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 4605e41f4b71Sopenharmony_ci console.error(`Failed to update data.code is ${err.code},message is ${err.message}`); 4606e41f4b71Sopenharmony_ci}) 4607e41f4b71Sopenharmony_ci``` 4608e41f4b71Sopenharmony_ci 4609e41f4b71Sopenharmony_ci 4610e41f4b71Sopenharmony_ci### updateData<sup>9+</sup> 4611e41f4b71Sopenharmony_ci 4612e41f4b71Sopenharmony_ciupdateData(buf: ArrayBuffer, isFinished: boolean, offset: number, length: number, callback: AsyncCallback\<void>): void 4613e41f4b71Sopenharmony_ci 4614e41f4b71Sopenharmony_ci更新增量数据,callback形式返回结果。 4615e41f4b71Sopenharmony_ci 4616e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4617e41f4b71Sopenharmony_ci 4618e41f4b71Sopenharmony_ci**参数:** 4619e41f4b71Sopenharmony_ci 4620e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4621e41f4b71Sopenharmony_ci| ---------- | ------------------- | ---- | -------------------- | 4622e41f4b71Sopenharmony_ci| buf | ArrayBuffer | 是 | 增量数据。 | 4623e41f4b71Sopenharmony_ci| isFinished | boolean | 是 | 是否更新完。 | 4624e41f4b71Sopenharmony_ci| offset | number | 是 | 偏移量。 | 4625e41f4b71Sopenharmony_ci| length | number | 是 | 数组长。 | 4626e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当更新增量数据成功,err为undefined,否则为错误对象。 | 4627e41f4b71Sopenharmony_ci 4628e41f4b71Sopenharmony_ci**示例:** 4629e41f4b71Sopenharmony_ci 4630e41f4b71Sopenharmony_ci```ts 4631e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4632e41f4b71Sopenharmony_ci 4633e41f4b71Sopenharmony_ciconst array: ArrayBuffer = new ArrayBuffer(100); 4634e41f4b71Sopenharmony_ciimageSourceApi.updateData(array, false, 0, 10, (err: BusinessError) => { 4635e41f4b71Sopenharmony_ci if (err) { 4636e41f4b71Sopenharmony_ci console.error(`Failed to update data.code is ${err.code},message is ${err.message}`); 4637e41f4b71Sopenharmony_ci } else { 4638e41f4b71Sopenharmony_ci console.info('Succeeded in updating data.'); 4639e41f4b71Sopenharmony_ci } 4640e41f4b71Sopenharmony_ci}) 4641e41f4b71Sopenharmony_ci``` 4642e41f4b71Sopenharmony_ci 4643e41f4b71Sopenharmony_ci### createPicture<sup>13+</sup> 4644e41f4b71Sopenharmony_ci 4645e41f4b71Sopenharmony_cicreatePicture(options?: DecodingOptionsForPicture): Promise\<Picture> 4646e41f4b71Sopenharmony_ci 4647e41f4b71Sopenharmony_ci通过图片解码参数创建Picture对象,使用Promise形式返回。 4648e41f4b71Sopenharmony_ci 4649e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4650e41f4b71Sopenharmony_ci 4651e41f4b71Sopenharmony_ci**参数:** 4652e41f4b71Sopenharmony_ci 4653e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4654e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------ | ---- | ---------- | 4655e41f4b71Sopenharmony_ci| options | [DecodingOptionsForPicture](#decodingoptionsforpicture13) | 否 | 解码参数。 | 4656e41f4b71Sopenharmony_ci 4657e41f4b71Sopenharmony_ci**返回值:** 4658e41f4b71Sopenharmony_ci 4659e41f4b71Sopenharmony_ci| 类型 | 说明 | 4660e41f4b71Sopenharmony_ci| ---------------------------- | -------------------------- | 4661e41f4b71Sopenharmony_ci| Promise\<[Picture](#picture13)> | Promise对象,返回Picture。 | 4662e41f4b71Sopenharmony_ci 4663e41f4b71Sopenharmony_ci**错误码:** 4664e41f4b71Sopenharmony_ci 4665e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 4666e41f4b71Sopenharmony_ci 4667e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4668e41f4b71Sopenharmony_ci| -------- | ---------------------- | 4669e41f4b71Sopenharmony_ci| 7700301 | Decode failed. | 4670e41f4b71Sopenharmony_ci 4671e41f4b71Sopenharmony_ci**示例:** 4672e41f4b71Sopenharmony_ci 4673e41f4b71Sopenharmony_ci```ts 4674e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 4675e41f4b71Sopenharmony_ci 4676e41f4b71Sopenharmony_ciasync function CreatePicture() { 4677e41f4b71Sopenharmony_ci let options: image.DecodingOptionsForPicture = { 4678e41f4b71Sopenharmony_ci desiredAuxiliaryPictures: [image.AuxiliaryPictureType.GAINMAP] //GAINMAP为需要解码的辅助图类型 4679e41f4b71Sopenharmony_ci }; 4680e41f4b71Sopenharmony_ci let pictureObj: image.Picture = await imageSourceApi.createPicture(options); 4681e41f4b71Sopenharmony_ci if (pictureObj != null) { 4682e41f4b71Sopenharmony_ci console.info('Create picture succeeded'); 4683e41f4b71Sopenharmony_ci } else { 4684e41f4b71Sopenharmony_ci console.info('Create picture failed'); 4685e41f4b71Sopenharmony_ci } 4686e41f4b71Sopenharmony_ci} 4687e41f4b71Sopenharmony_ci``` 4688e41f4b71Sopenharmony_ci 4689e41f4b71Sopenharmony_ci### createPixelMap<sup>7+</sup> 4690e41f4b71Sopenharmony_ci 4691e41f4b71Sopenharmony_cicreatePixelMap(options?: DecodingOptions): Promise\<PixelMap> 4692e41f4b71Sopenharmony_ci 4693e41f4b71Sopenharmony_ci通过图片解码参数创建PixelMap对象。 4694e41f4b71Sopenharmony_ci 4695e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 4696e41f4b71Sopenharmony_ci 4697e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4698e41f4b71Sopenharmony_ci 4699e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4700e41f4b71Sopenharmony_ci 4701e41f4b71Sopenharmony_ci**参数:** 4702e41f4b71Sopenharmony_ci 4703e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4704e41f4b71Sopenharmony_ci| ------- | ------------------------------------ | ---- | ---------- | 4705e41f4b71Sopenharmony_ci| options | [DecodingOptions](#decodingoptions7) | 否 | 解码参数。 | 4706e41f4b71Sopenharmony_ci 4707e41f4b71Sopenharmony_ci**返回值:** 4708e41f4b71Sopenharmony_ci 4709e41f4b71Sopenharmony_ci| 类型 | 说明 | 4710e41f4b71Sopenharmony_ci| -------------------------------- | --------------------- | 4711e41f4b71Sopenharmony_ci| Promise\<[PixelMap](#pixelmap7)> | Promise对象,返回PixelMap。 | 4712e41f4b71Sopenharmony_ci 4713e41f4b71Sopenharmony_ci**示例:** 4714e41f4b71Sopenharmony_ci 4715e41f4b71Sopenharmony_ci```ts 4716e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4717e41f4b71Sopenharmony_ci 4718e41f4b71Sopenharmony_ciimageSourceApi.createPixelMap().then((pixelMap: image.PixelMap) => { 4719e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelMap object through image decoding parameters.'); 4720e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 4721e41f4b71Sopenharmony_ci console.error('Failed to create pixelMap object through image decoding parameters.'); 4722e41f4b71Sopenharmony_ci}) 4723e41f4b71Sopenharmony_ci``` 4724e41f4b71Sopenharmony_ci 4725e41f4b71Sopenharmony_ci### createPixelMap<sup>7+</sup> 4726e41f4b71Sopenharmony_ci 4727e41f4b71Sopenharmony_cicreatePixelMap(callback: AsyncCallback\<PixelMap>): void 4728e41f4b71Sopenharmony_ci 4729e41f4b71Sopenharmony_ci通过默认参数创建PixelMap对象,使用callback形式返回结果。 4730e41f4b71Sopenharmony_ci 4731e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 4732e41f4b71Sopenharmony_ci 4733e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4734e41f4b71Sopenharmony_ci 4735e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4736e41f4b71Sopenharmony_ci 4737e41f4b71Sopenharmony_ci**参数:** 4738e41f4b71Sopenharmony_ci 4739e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4740e41f4b71Sopenharmony_ci| -------- | ------------------------------------- | ---- | -------------------------- | 4741e41f4b71Sopenharmony_ci| callback | AsyncCallback<[PixelMap](#pixelmap7)> | 是 | 回调函数,当创建PixelMap对象成功,err为undefined,data为获取到的PixelMap对象;否则为错误对象。 | 4742e41f4b71Sopenharmony_ci 4743e41f4b71Sopenharmony_ci**示例:** 4744e41f4b71Sopenharmony_ci 4745e41f4b71Sopenharmony_ci```ts 4746e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4747e41f4b71Sopenharmony_ci 4748e41f4b71Sopenharmony_ciimageSourceApi.createPixelMap((err: BusinessError, pixelMap: image.PixelMap) => { 4749e41f4b71Sopenharmony_ci if (err) { 4750e41f4b71Sopenharmony_ci console.error(`Failed to create pixelMap.code is ${err.code},message is ${err.message}`); 4751e41f4b71Sopenharmony_ci } else { 4752e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelMap object.'); 4753e41f4b71Sopenharmony_ci } 4754e41f4b71Sopenharmony_ci}) 4755e41f4b71Sopenharmony_ci``` 4756e41f4b71Sopenharmony_ci 4757e41f4b71Sopenharmony_ci### createPixelMap<sup>7+</sup> 4758e41f4b71Sopenharmony_ci 4759e41f4b71Sopenharmony_cicreatePixelMap(options: DecodingOptions, callback: AsyncCallback\<PixelMap>): void 4760e41f4b71Sopenharmony_ci 4761e41f4b71Sopenharmony_ci通过图片解码参数创建PixelMap对象。 4762e41f4b71Sopenharmony_ci 4763e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 4764e41f4b71Sopenharmony_ci 4765e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4766e41f4b71Sopenharmony_ci 4767e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4768e41f4b71Sopenharmony_ci 4769e41f4b71Sopenharmony_ci**参数:** 4770e41f4b71Sopenharmony_ci 4771e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4772e41f4b71Sopenharmony_ci| -------- | ------------------------------------- | ---- | -------------------------- | 4773e41f4b71Sopenharmony_ci| options | [DecodingOptions](#decodingoptions7) | 是 | 解码参数。 | 4774e41f4b71Sopenharmony_ci| callback | AsyncCallback<[PixelMap](#pixelmap7)> | 是 | 回调函数,当创建PixelMap对象成功,err为undefined,data为获取到的PixelMap对象;否则为错误对象。 | 4775e41f4b71Sopenharmony_ci 4776e41f4b71Sopenharmony_ci**示例:** 4777e41f4b71Sopenharmony_ci 4778e41f4b71Sopenharmony_ci```ts 4779e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4780e41f4b71Sopenharmony_ci 4781e41f4b71Sopenharmony_cilet decodingOptions: image.DecodingOptions = { 4782e41f4b71Sopenharmony_ci sampleSize: 1, 4783e41f4b71Sopenharmony_ci editable: true, 4784e41f4b71Sopenharmony_ci desiredSize: { width: 1, height: 2 }, 4785e41f4b71Sopenharmony_ci rotate: 10, 4786e41f4b71Sopenharmony_ci desiredPixelFormat: 3, 4787e41f4b71Sopenharmony_ci desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 }, 4788e41f4b71Sopenharmony_ci index: 0 4789e41f4b71Sopenharmony_ci}; 4790e41f4b71Sopenharmony_ciimageSourceApi.createPixelMap(decodingOptions, (err: BusinessError, pixelMap: image.PixelMap) => { 4791e41f4b71Sopenharmony_ci if (err) { 4792e41f4b71Sopenharmony_ci console.error(`Failed to create pixelMap.code is ${err.code},message is ${err.message}`); 4793e41f4b71Sopenharmony_ci } else { 4794e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelMap object.'); 4795e41f4b71Sopenharmony_ci } 4796e41f4b71Sopenharmony_ci}) 4797e41f4b71Sopenharmony_ci``` 4798e41f4b71Sopenharmony_ci 4799e41f4b71Sopenharmony_ci### createPixelMapSync<sup>12+</sup> 4800e41f4b71Sopenharmony_ci 4801e41f4b71Sopenharmony_cicreatePixelMapSync(options?: DecodingOptions): PixelMap 4802e41f4b71Sopenharmony_ci 4803e41f4b71Sopenharmony_ci通过图片解码参数同步创建PixelMap对象。 4804e41f4b71Sopenharmony_ci 4805e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4806e41f4b71Sopenharmony_ci 4807e41f4b71Sopenharmony_ci**参数:** 4808e41f4b71Sopenharmony_ci 4809e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4810e41f4b71Sopenharmony_ci| -------- | ------------------------------------- | ---- | -------------------------- | 4811e41f4b71Sopenharmony_ci| options | [DecodingOptions](#decodingoptions7) | 否 | 解码参数。 | 4812e41f4b71Sopenharmony_ci 4813e41f4b71Sopenharmony_ci**返回值:** 4814e41f4b71Sopenharmony_ci 4815e41f4b71Sopenharmony_ci| 类型 | 说明 | 4816e41f4b71Sopenharmony_ci| -------------------------------- | --------------------- | 4817e41f4b71Sopenharmony_ci| [PixelMap](#pixelmap7) | 用于同步返回创建结果。 | 4818e41f4b71Sopenharmony_ci 4819e41f4b71Sopenharmony_ci**示例:** 4820e41f4b71Sopenharmony_ci 4821e41f4b71Sopenharmony_ci```ts 4822e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 4823e41f4b71Sopenharmony_ci 4824e41f4b71Sopenharmony_ciconst context: Context = getContext(); 4825e41f4b71Sopenharmony_ci//此处'test.jpg'仅作示例,请开发者自行替换,否则imageSource创建失败会导致后续无法正常执行。 4826e41f4b71Sopenharmony_cilet filePath: string = context.filesDir + "/test.jpg"; 4827e41f4b71Sopenharmony_cilet imageSource = image.createImageSource(filePath); 4828e41f4b71Sopenharmony_cilet decodingOptions: image.DecodingOptions = { 4829e41f4b71Sopenharmony_ci sampleSize: 1, 4830e41f4b71Sopenharmony_ci editable: true, 4831e41f4b71Sopenharmony_ci desiredSize: { width: 1, height: 2 }, 4832e41f4b71Sopenharmony_ci rotate: 10, 4833e41f4b71Sopenharmony_ci desiredPixelFormat: 3, 4834e41f4b71Sopenharmony_ci desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 }, 4835e41f4b71Sopenharmony_ci index: 0 4836e41f4b71Sopenharmony_ci}; 4837e41f4b71Sopenharmony_cilet pixelmap = imageSource.createPixelMapSync(decodingOptions); 4838e41f4b71Sopenharmony_ciif (pixelmap != undefined) { 4839e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelMap object.'); 4840e41f4b71Sopenharmony_ci} else { 4841e41f4b71Sopenharmony_ci console.info('Failed to create pixelMap.'); 4842e41f4b71Sopenharmony_ci} 4843e41f4b71Sopenharmony_ci``` 4844e41f4b71Sopenharmony_ci 4845e41f4b71Sopenharmony_ci### createPixelMapList<sup>10+</sup> 4846e41f4b71Sopenharmony_ci 4847e41f4b71Sopenharmony_cicreatePixelMapList(options?: DecodingOptions): Promise<Array\<PixelMap>> 4848e41f4b71Sopenharmony_ci 4849e41f4b71Sopenharmony_ci通过图片解码参数创建PixelMap数组。针对动图如Gif、Webp,此接口返回每帧图片数据;针对静态图,此接口返回唯一的一帧图片数据。 4850e41f4b71Sopenharmony_ci 4851e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4852e41f4b71Sopenharmony_ci 4853e41f4b71Sopenharmony_ci**参数:** 4854e41f4b71Sopenharmony_ci 4855e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4856e41f4b71Sopenharmony_ci| -------- | ------------------------------------- | ---- | -------------------------- | 4857e41f4b71Sopenharmony_ci| options | [DecodingOptions](#decodingoptions7) | 否 | 解码参数。 | 4858e41f4b71Sopenharmony_ci 4859e41f4b71Sopenharmony_ci**返回值:** 4860e41f4b71Sopenharmony_ci 4861e41f4b71Sopenharmony_ci| 类型 | 说明 | 4862e41f4b71Sopenharmony_ci| -------------------------------- | --------------------- | 4863e41f4b71Sopenharmony_ci| Promise<Array<[PixelMap](#pixelmap7)>> | 异步返回PixeMap数组。 | 4864e41f4b71Sopenharmony_ci 4865e41f4b71Sopenharmony_ci**错误码:** 4866e41f4b71Sopenharmony_ci 4867e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 4868e41f4b71Sopenharmony_ci 4869e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4870e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4871e41f4b71Sopenharmony_ci| 62980096| The operation failed. | 4872e41f4b71Sopenharmony_ci| 62980099 | The shared memory data is abnormal. | 4873e41f4b71Sopenharmony_ci| 62980101 | The image data is abnormal. | 4874e41f4b71Sopenharmony_ci| 62980103| The image data is not supported. | 4875e41f4b71Sopenharmony_ci| 62980106 | The image is too large. | 4876e41f4b71Sopenharmony_ci| 62980109 | Failed to crop the image. | 4877e41f4b71Sopenharmony_ci| 62980110| The image source data is incorrect. | 4878e41f4b71Sopenharmony_ci| 62980111| The image source data is incomplete. | 4879e41f4b71Sopenharmony_ci| 62980112 | The image format does not match. | 4880e41f4b71Sopenharmony_ci| 62980113 | Unknown image format. | 4881e41f4b71Sopenharmony_ci| 62980115 | Invalid image parameter. | 4882e41f4b71Sopenharmony_ci| 62980116 | Failed to decode the image. | 4883e41f4b71Sopenharmony_ci| 62980118| Failed to create the image plugin. | 4884e41f4b71Sopenharmony_ci| 62980122 | Failed to decode the image header. | 4885e41f4b71Sopenharmony_ci| 62980137 | Invalid media operation. | 4886e41f4b71Sopenharmony_ci| 62980173 | The DMA memory does not exist. | 4887e41f4b71Sopenharmony_ci| 62980174 | The DMA memory data is abnormal. | 4888e41f4b71Sopenharmony_ci 4889e41f4b71Sopenharmony_ci**示例:** 4890e41f4b71Sopenharmony_ci 4891e41f4b71Sopenharmony_ci```ts 4892e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4893e41f4b71Sopenharmony_ci 4894e41f4b71Sopenharmony_cilet decodeOpts: image.DecodingOptions = { 4895e41f4b71Sopenharmony_ci sampleSize: 1, 4896e41f4b71Sopenharmony_ci editable: true, 4897e41f4b71Sopenharmony_ci desiredSize: { width: 198, height: 202 }, 4898e41f4b71Sopenharmony_ci rotate: 0, 4899e41f4b71Sopenharmony_ci desiredPixelFormat: 3, 4900e41f4b71Sopenharmony_ci index: 0, 4901e41f4b71Sopenharmony_ci}; 4902e41f4b71Sopenharmony_ciimageSourceApi.createPixelMapList(decodeOpts).then((pixelMapList: Array<image.PixelMap>) => { 4903e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelMapList object.'); 4904e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 4905e41f4b71Sopenharmony_ci console.error(`Failed to create pixelMapList object.code is ${err.code},message is ${err.message}`); 4906e41f4b71Sopenharmony_ci}) 4907e41f4b71Sopenharmony_ci``` 4908e41f4b71Sopenharmony_ci 4909e41f4b71Sopenharmony_ci### createPixelMapList<sup>10+</sup> 4910e41f4b71Sopenharmony_ci 4911e41f4b71Sopenharmony_cicreatePixelMapList(callback: AsyncCallback<Array\<PixelMap>>): void 4912e41f4b71Sopenharmony_ci 4913e41f4b71Sopenharmony_ci通过默认参数创建PixelMap数组,使用callback形式返回结果。针对动图如Gif、Webp,此接口返回每帧图片数据;针对静态图,此接口返回唯一的一帧图片数据。 4914e41f4b71Sopenharmony_ci 4915e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4916e41f4b71Sopenharmony_ci 4917e41f4b71Sopenharmony_ci**参数:** 4918e41f4b71Sopenharmony_ci 4919e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4920e41f4b71Sopenharmony_ci| -------- | ------------------------------------- | ---- | -------------------------- | 4921e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array<[PixelMap](#pixelmap7)>> | 是 | 回调函数,当创建PixelMap对象数组成功,err为undefined,data为获取到的PixelMap对象数组;否则为错误对象。 | 4922e41f4b71Sopenharmony_ci 4923e41f4b71Sopenharmony_ci**错误码:** 4924e41f4b71Sopenharmony_ci 4925e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 4926e41f4b71Sopenharmony_ci 4927e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4928e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4929e41f4b71Sopenharmony_ci| 62980096 | The operation failed. | 4930e41f4b71Sopenharmony_ci| 62980099 | The shared memory data is abnormal. | 4931e41f4b71Sopenharmony_ci| 62980101 | The image data is abnormal. | 4932e41f4b71Sopenharmony_ci| 62980103 | The image data is not supported. | 4933e41f4b71Sopenharmony_ci| 62980106 | The image is too large. | 4934e41f4b71Sopenharmony_ci| 62980109 | Failed to crop the image. | 4935e41f4b71Sopenharmony_ci| 62980110 | The image source data is incorrect. | 4936e41f4b71Sopenharmony_ci| 62980111 | The image source data is incomplete. | 4937e41f4b71Sopenharmony_ci| 62980112 | The image format does not match. | 4938e41f4b71Sopenharmony_ci| 62980113 | Unknown image format. | 4939e41f4b71Sopenharmony_ci| 62980115 | Invalid image parameter. | 4940e41f4b71Sopenharmony_ci| 62980116 | Failed to decode the image. | 4941e41f4b71Sopenharmony_ci| 62980118 | Failed to create the image plugin. | 4942e41f4b71Sopenharmony_ci| 62980122 | Failed to decode the image header. | 4943e41f4b71Sopenharmony_ci| 62980137 | Invalid media operation. | 4944e41f4b71Sopenharmony_ci| 62980173 | The DMA memory does not exist. | 4945e41f4b71Sopenharmony_ci| 62980174 | The DMA memory data is abnormal. | 4946e41f4b71Sopenharmony_ci 4947e41f4b71Sopenharmony_ci**示例:** 4948e41f4b71Sopenharmony_ci 4949e41f4b71Sopenharmony_ci```ts 4950e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4951e41f4b71Sopenharmony_ci 4952e41f4b71Sopenharmony_ciimageSourceApi.createPixelMapList((err: BusinessError, pixelMapList: Array<image.PixelMap>) => { 4953e41f4b71Sopenharmony_ci if (err) { 4954e41f4b71Sopenharmony_ci console.error(`Failed to create pixelMapList object.code is ${err.code},message is ${err.message}`); 4955e41f4b71Sopenharmony_ci } else { 4956e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelMapList object.'); 4957e41f4b71Sopenharmony_ci } 4958e41f4b71Sopenharmony_ci}) 4959e41f4b71Sopenharmony_ci``` 4960e41f4b71Sopenharmony_ci 4961e41f4b71Sopenharmony_ci### createPixelMapList<sup>10+</sup> 4962e41f4b71Sopenharmony_ci 4963e41f4b71Sopenharmony_cicreatePixelMapList(options: DecodingOptions, callback: AsyncCallback<Array\<PixelMap>>): void 4964e41f4b71Sopenharmony_ci 4965e41f4b71Sopenharmony_ci通过图片解码参数创建PixelMap数组,使用callback形式返回结果。针对动图如Gif、Webp,此接口返回每帧图片数据;针对静态图,此接口返回唯一的一帧图片数据。 4966e41f4b71Sopenharmony_ci 4967e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 4968e41f4b71Sopenharmony_ci 4969e41f4b71Sopenharmony_ci**参数:** 4970e41f4b71Sopenharmony_ci 4971e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4972e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ---------------------------------- | 4973e41f4b71Sopenharmony_ci| options | [DecodingOptions](#decodingoptions7) | 是 | 解码参数。 | 4974e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array<[PixelMap](#pixelmap7)>> | 是 | 回调函数,当创建PixelMap对象数组成功,err为undefined,data为获取到的PixelMap对象数组;否则为错误对象。 | 4975e41f4b71Sopenharmony_ci 4976e41f4b71Sopenharmony_ci**错误码:** 4977e41f4b71Sopenharmony_ci 4978e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 4979e41f4b71Sopenharmony_ci 4980e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4981e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4982e41f4b71Sopenharmony_ci| 62980096 | The operation failed. | 4983e41f4b71Sopenharmony_ci| 62980099 | The shared memory data is abnormal. | 4984e41f4b71Sopenharmony_ci| 62980101 | The image data is abnormal. | 4985e41f4b71Sopenharmony_ci| 62980103 | The image data is not supported. | 4986e41f4b71Sopenharmony_ci| 62980106 | The image is too large. | 4987e41f4b71Sopenharmony_ci| 62980109 | Failed to crop the image. | 4988e41f4b71Sopenharmony_ci| 62980110 | The image source data is incorrect. | 4989e41f4b71Sopenharmony_ci| 62980111 | The image source data is incomplete. | 4990e41f4b71Sopenharmony_ci| 62980112 | The image format does not match. | 4991e41f4b71Sopenharmony_ci| 62980113 | Unknown image format. | 4992e41f4b71Sopenharmony_ci| 62980115 | Invalid image parameter. | 4993e41f4b71Sopenharmony_ci| 62980116 | Failed to decode the image. | 4994e41f4b71Sopenharmony_ci| 62980118 | Failed to create the image plugin. | 4995e41f4b71Sopenharmony_ci| 62980122 | Failed to decode the image header. | 4996e41f4b71Sopenharmony_ci| 62980137 | Invalid media operation. | 4997e41f4b71Sopenharmony_ci| 62980173 | The DMA memory does not exist. | 4998e41f4b71Sopenharmony_ci| 62980174 | The DMA memory data is abnormal. | 4999e41f4b71Sopenharmony_ci 5000e41f4b71Sopenharmony_ci**示例:** 5001e41f4b71Sopenharmony_ci 5002e41f4b71Sopenharmony_ci```ts 5003e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5004e41f4b71Sopenharmony_ci 5005e41f4b71Sopenharmony_cilet decodeOpts: image.DecodingOptions = { 5006e41f4b71Sopenharmony_ci sampleSize: 1, 5007e41f4b71Sopenharmony_ci editable: true, 5008e41f4b71Sopenharmony_ci desiredSize: { width: 198, height: 202 }, 5009e41f4b71Sopenharmony_ci rotate: 0, 5010e41f4b71Sopenharmony_ci desiredPixelFormat: 3, 5011e41f4b71Sopenharmony_ci index: 0, 5012e41f4b71Sopenharmony_ci}; 5013e41f4b71Sopenharmony_ciimageSourceApi.createPixelMapList(decodeOpts, (err: BusinessError, pixelMapList: Array<image.PixelMap>) => { 5014e41f4b71Sopenharmony_ci if (err) { 5015e41f4b71Sopenharmony_ci console.error(`Failed to create pixelMapList object.code is ${err.code},message is ${err.message}`); 5016e41f4b71Sopenharmony_ci } else { 5017e41f4b71Sopenharmony_ci console.info('Succeeded in creating pixelMapList object.'); 5018e41f4b71Sopenharmony_ci } 5019e41f4b71Sopenharmony_ci}) 5020e41f4b71Sopenharmony_ci``` 5021e41f4b71Sopenharmony_ci 5022e41f4b71Sopenharmony_ci### getDelayTimeList<sup>10+</sup> 5023e41f4b71Sopenharmony_ci 5024e41f4b71Sopenharmony_cigetDelayTimeList(callback: AsyncCallback<Array\<number>>): void 5025e41f4b71Sopenharmony_ci 5026e41f4b71Sopenharmony_ci获取图像延迟时间数组,使用callback形式返回结果。此接口仅用于gif图片和webp图片。 5027e41f4b71Sopenharmony_ci 5028e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 5029e41f4b71Sopenharmony_ci 5030e41f4b71Sopenharmony_ci**参数:** 5031e41f4b71Sopenharmony_ci 5032e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5033e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ---------------------------------- | 5034e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array\<number>> | 是 | 回调函数,当获取图像延迟时间数组成功,err为undefined,data为获取到的图像延时时间数组;否则为错误对象。 | 5035e41f4b71Sopenharmony_ci 5036e41f4b71Sopenharmony_ci**错误码:** 5037e41f4b71Sopenharmony_ci 5038e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 5039e41f4b71Sopenharmony_ci 5040e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5041e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 5042e41f4b71Sopenharmony_ci| 62980096| The operation failed. | 5043e41f4b71Sopenharmony_ci| 62980110| The image source data is incorrect. | 5044e41f4b71Sopenharmony_ci| 62980111| The image source data is incomplete. | 5045e41f4b71Sopenharmony_ci| 62980112 | The image format does not match. | 5046e41f4b71Sopenharmony_ci| 62980113| Unknown image format. | 5047e41f4b71Sopenharmony_ci| 62980115 | Invalid image parameter. | 5048e41f4b71Sopenharmony_ci| 62980116| Failed to decode the image. | 5049e41f4b71Sopenharmony_ci| 62980118| Failed to create the image plugin. | 5050e41f4b71Sopenharmony_ci| 62980122| Failed to decode the image header. | 5051e41f4b71Sopenharmony_ci| 62980137 | Invalid media operation. | 5052e41f4b71Sopenharmony_ci| 62980149 | Invalid MIME type for the image source. | 5053e41f4b71Sopenharmony_ci 5054e41f4b71Sopenharmony_ci**示例:** 5055e41f4b71Sopenharmony_ci 5056e41f4b71Sopenharmony_ci```ts 5057e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5058e41f4b71Sopenharmony_ci 5059e41f4b71Sopenharmony_ciimageSourceApi.getDelayTimeList((err: BusinessError, delayTimes: Array<number>) => { 5060e41f4b71Sopenharmony_ci if (err) { 5061e41f4b71Sopenharmony_ci console.error(`Failed to get delayTimes object.code is ${err.code},message is ${err.message}`); 5062e41f4b71Sopenharmony_ci } else { 5063e41f4b71Sopenharmony_ci console.info('Succeeded in getting delayTimes object.'); 5064e41f4b71Sopenharmony_ci } 5065e41f4b71Sopenharmony_ci}) 5066e41f4b71Sopenharmony_ci``` 5067e41f4b71Sopenharmony_ci 5068e41f4b71Sopenharmony_ci### getDelayTimeList<sup>10+</sup> 5069e41f4b71Sopenharmony_ci 5070e41f4b71Sopenharmony_cigetDelayTimeList(): Promise<Array\<number>> 5071e41f4b71Sopenharmony_ci 5072e41f4b71Sopenharmony_ci获取图像延迟时间数组,使用Promise形式返回结果。此接口仅用于gif图片和webp图片。 5073e41f4b71Sopenharmony_ci 5074e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 5075e41f4b71Sopenharmony_ci 5076e41f4b71Sopenharmony_ci**返回值:** 5077e41f4b71Sopenharmony_ci 5078e41f4b71Sopenharmony_ci| 类型 | 说明 | 5079e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 5080e41f4b71Sopenharmony_ci| Promise<Array\<number>> | Promise对象,返回延迟时间数组。 | 5081e41f4b71Sopenharmony_ci 5082e41f4b71Sopenharmony_ci**错误码:** 5083e41f4b71Sopenharmony_ci 5084e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 5085e41f4b71Sopenharmony_ci 5086e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5087e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 5088e41f4b71Sopenharmony_ci| 62980096 | The operation failed. | 5089e41f4b71Sopenharmony_ci| 62980110 | The image source data is incorrect. | 5090e41f4b71Sopenharmony_ci| 62980111 | The image source data is incomplete. | 5091e41f4b71Sopenharmony_ci| 62980112 | The image format does not match. | 5092e41f4b71Sopenharmony_ci| 62980113 | Unknown image format. | 5093e41f4b71Sopenharmony_ci| 62980115 | Invalid image parameter. | 5094e41f4b71Sopenharmony_ci| 62980116 | Failed to decode the image. | 5095e41f4b71Sopenharmony_ci| 62980118 | Failed to create the image plugin. | 5096e41f4b71Sopenharmony_ci| 62980122 | Failed to decode the image header. | 5097e41f4b71Sopenharmony_ci| 62980137 | Invalid media operation. | 5098e41f4b71Sopenharmony_ci| 62980149 | Invalid MIME type for the image source. | 5099e41f4b71Sopenharmony_ci 5100e41f4b71Sopenharmony_ci**示例:** 5101e41f4b71Sopenharmony_ci 5102e41f4b71Sopenharmony_ci```ts 5103e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5104e41f4b71Sopenharmony_ci 5105e41f4b71Sopenharmony_ciimageSourceApi.getDelayTimeList().then((delayTimes: Array<number>) => { 5106e41f4b71Sopenharmony_ci console.info('Succeeded in getting delayTimes object.'); 5107e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5108e41f4b71Sopenharmony_ci console.error(`Failed to get delayTimes object.code is ${err.code},message is ${err.message}`); 5109e41f4b71Sopenharmony_ci}) 5110e41f4b71Sopenharmony_ci``` 5111e41f4b71Sopenharmony_ci 5112e41f4b71Sopenharmony_ci### getFrameCount<sup>10+</sup> 5113e41f4b71Sopenharmony_ci 5114e41f4b71Sopenharmony_cigetFrameCount(callback: AsyncCallback\<number>): void 5115e41f4b71Sopenharmony_ci 5116e41f4b71Sopenharmony_ci获取图像帧数,使用callback形式返回结果。 5117e41f4b71Sopenharmony_ci 5118e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 5119e41f4b71Sopenharmony_ci 5120e41f4b71Sopenharmony_ci**参数:** 5121e41f4b71Sopenharmony_ci 5122e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5123e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ---------------------------------- | 5124e41f4b71Sopenharmony_ci| callback | AsyncCallback\<number> | 是 | 回调函数,当获取图像帧数成功,err为undefined,data为获取到的图像帧数;否则为错误对象。 | 5125e41f4b71Sopenharmony_ci 5126e41f4b71Sopenharmony_ci**错误码:** 5127e41f4b71Sopenharmony_ci 5128e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 5129e41f4b71Sopenharmony_ci 5130e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5131e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 5132e41f4b71Sopenharmony_ci| 62980096| The operation failed. | 5133e41f4b71Sopenharmony_ci| 62980110| The image source data is incorrect. | 5134e41f4b71Sopenharmony_ci| 62980111| The image source data is incomplete. | 5135e41f4b71Sopenharmony_ci| 62980112| The image format does not match. | 5136e41f4b71Sopenharmony_ci| 62980113| Unknown image format. | 5137e41f4b71Sopenharmony_ci| 62980115| Invalid image parameter. | 5138e41f4b71Sopenharmony_ci| 62980116| Failed to decode the image. | 5139e41f4b71Sopenharmony_ci| 62980118| Failed to create the image plugin. | 5140e41f4b71Sopenharmony_ci| 62980122| Failed to decode the image header. | 5141e41f4b71Sopenharmony_ci| 62980137| Invalid media operation. | 5142e41f4b71Sopenharmony_ci 5143e41f4b71Sopenharmony_ci**示例:** 5144e41f4b71Sopenharmony_ci 5145e41f4b71Sopenharmony_ci```ts 5146e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5147e41f4b71Sopenharmony_ci 5148e41f4b71Sopenharmony_ciimageSourceApi.getFrameCount((err: BusinessError, frameCount: number) => { 5149e41f4b71Sopenharmony_ci if (err) { 5150e41f4b71Sopenharmony_ci console.error(`Failed to get frame count.code is ${err.code},message is ${err.message}`); 5151e41f4b71Sopenharmony_ci } else { 5152e41f4b71Sopenharmony_ci console.info('Succeeded in getting frame count.'); 5153e41f4b71Sopenharmony_ci } 5154e41f4b71Sopenharmony_ci}) 5155e41f4b71Sopenharmony_ci``` 5156e41f4b71Sopenharmony_ci 5157e41f4b71Sopenharmony_ci### getFrameCount<sup>10+</sup> 5158e41f4b71Sopenharmony_ci 5159e41f4b71Sopenharmony_cigetFrameCount(): Promise\<number> 5160e41f4b71Sopenharmony_ci 5161e41f4b71Sopenharmony_ci获取图像帧数,使用Promise形式返回结果。 5162e41f4b71Sopenharmony_ci 5163e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 5164e41f4b71Sopenharmony_ci 5165e41f4b71Sopenharmony_ci**返回值:** 5166e41f4b71Sopenharmony_ci 5167e41f4b71Sopenharmony_ci| 类型 | 说明 | 5168e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 5169e41f4b71Sopenharmony_ci| Promise\<number> | Promise对象,返回图像帧数。 | 5170e41f4b71Sopenharmony_ci 5171e41f4b71Sopenharmony_ci**错误码:** 5172e41f4b71Sopenharmony_ci 5173e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 5174e41f4b71Sopenharmony_ci 5175e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5176e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 5177e41f4b71Sopenharmony_ci| 62980096 | The operation failed. | 5178e41f4b71Sopenharmony_ci| 62980110 | The image source data is incorrect. | 5179e41f4b71Sopenharmony_ci| 62980111 | The image source data is incomplete. | 5180e41f4b71Sopenharmony_ci| 62980112 | The image format does not match. | 5181e41f4b71Sopenharmony_ci| 62980113 | Unknown image format. | 5182e41f4b71Sopenharmony_ci| 62980115 | Invalid image parameter. | 5183e41f4b71Sopenharmony_ci| 62980116 | Failed to decode the image. | 5184e41f4b71Sopenharmony_ci| 62980118 | Failed to create the image plugin. | 5185e41f4b71Sopenharmony_ci| 62980122 | Failed to decode the image header. | 5186e41f4b71Sopenharmony_ci| 62980137 | Invalid media operation. | 5187e41f4b71Sopenharmony_ci 5188e41f4b71Sopenharmony_ci**示例:** 5189e41f4b71Sopenharmony_ci 5190e41f4b71Sopenharmony_ci```ts 5191e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5192e41f4b71Sopenharmony_ci 5193e41f4b71Sopenharmony_ciimageSourceApi.getFrameCount().then((frameCount: number) => { 5194e41f4b71Sopenharmony_ci console.info('Succeeded in getting frame count.'); 5195e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5196e41f4b71Sopenharmony_ci console.error(`Failed to get frame count.code is ${err.code},message is ${err.message}`); 5197e41f4b71Sopenharmony_ci}) 5198e41f4b71Sopenharmony_ci``` 5199e41f4b71Sopenharmony_ci 5200e41f4b71Sopenharmony_ci### getDisposalTypeList<sup>12+</sup> 5201e41f4b71Sopenharmony_ci 5202e41f4b71Sopenharmony_cigetDisposalTypeList(): Promise\<Array\<number>> 5203e41f4b71Sopenharmony_ci 5204e41f4b71Sopenharmony_ci获取图像帧过渡模式数组,使用Promise形式返回结果。此接口仅用于gif图片。 5205e41f4b71Sopenharmony_ci 5206e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 5207e41f4b71Sopenharmony_ci 5208e41f4b71Sopenharmony_ci**返回值:** 5209e41f4b71Sopenharmony_ci 5210e41f4b71Sopenharmony_ci| 类型 | 说明 | 5211e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 5212e41f4b71Sopenharmony_ci| Promise\<Array\<number>> | Promise对象,返回帧过渡模式数组。 | 5213e41f4b71Sopenharmony_ci 5214e41f4b71Sopenharmony_ci**错误码:** 5215e41f4b71Sopenharmony_ci 5216e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 5217e41f4b71Sopenharmony_ci 5218e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5219e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 5220e41f4b71Sopenharmony_ci| 62980096 | The operation failed. | 5221e41f4b71Sopenharmony_ci| 62980101 | The image data is abnormal. | 5222e41f4b71Sopenharmony_ci| 62980137 | Invalid media operation. | 5223e41f4b71Sopenharmony_ci| 62980149 | Invalid MIME type for the image source. | 5224e41f4b71Sopenharmony_ci 5225e41f4b71Sopenharmony_ci**示例:** 5226e41f4b71Sopenharmony_ci 5227e41f4b71Sopenharmony_ci```ts 5228e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5229e41f4b71Sopenharmony_ciimageSourceApi.getDisposalTypeList().then((disposalTypes: Array<number>) => { 5230e41f4b71Sopenharmony_ci console.info('Succeeded in getting disposalTypes object.'); 5231e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5232e41f4b71Sopenharmony_ci console.error(`Failed to get disposalTypes object.code ${err.code},message is ${err.message}`); 5233e41f4b71Sopenharmony_ci}) 5234e41f4b71Sopenharmony_ci``` 5235e41f4b71Sopenharmony_ci 5236e41f4b71Sopenharmony_ci### release 5237e41f4b71Sopenharmony_ci 5238e41f4b71Sopenharmony_cirelease(callback: AsyncCallback\<void>): void 5239e41f4b71Sopenharmony_ci 5240e41f4b71Sopenharmony_ci释放图片源实例,使用callback形式返回结果。 5241e41f4b71Sopenharmony_ci 5242e41f4b71Sopenharmony_ciArkTS有内存回收机制,ImageSource对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 5243e41f4b71Sopenharmony_ci 5244e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 5245e41f4b71Sopenharmony_ci 5246e41f4b71Sopenharmony_ci**参数:** 5247e41f4b71Sopenharmony_ci 5248e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5249e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ---------------------------------- | 5250e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当资源释放成功,err为undefined,否则为错误对象。 | 5251e41f4b71Sopenharmony_ci 5252e41f4b71Sopenharmony_ci**示例:** 5253e41f4b71Sopenharmony_ci 5254e41f4b71Sopenharmony_ci```ts 5255e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5256e41f4b71Sopenharmony_ci 5257e41f4b71Sopenharmony_ciimageSourceApi.release((err: BusinessError) => { 5258e41f4b71Sopenharmony_ci if (err) { 5259e41f4b71Sopenharmony_ci console.error(`Failed to release the image source instance.code ${err.code},message is ${err.message}`); 5260e41f4b71Sopenharmony_ci } else { 5261e41f4b71Sopenharmony_ci console.info('Succeeded in releasing the image source instance.'); 5262e41f4b71Sopenharmony_ci } 5263e41f4b71Sopenharmony_ci}) 5264e41f4b71Sopenharmony_ci``` 5265e41f4b71Sopenharmony_ci 5266e41f4b71Sopenharmony_ci### release 5267e41f4b71Sopenharmony_ci 5268e41f4b71Sopenharmony_cirelease(): Promise\<void> 5269e41f4b71Sopenharmony_ci 5270e41f4b71Sopenharmony_ci释放图片源实例,使用Promise形式返回结果。 5271e41f4b71Sopenharmony_ci 5272e41f4b71Sopenharmony_ciArkTS有内存回收机制,ImageSource对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 5273e41f4b71Sopenharmony_ci 5274e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 5275e41f4b71Sopenharmony_ci 5276e41f4b71Sopenharmony_ci**返回值:** 5277e41f4b71Sopenharmony_ci 5278e41f4b71Sopenharmony_ci| 类型 | 说明 | 5279e41f4b71Sopenharmony_ci| -------------- | --------------------------- | 5280e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 5281e41f4b71Sopenharmony_ci 5282e41f4b71Sopenharmony_ci**示例:** 5283e41f4b71Sopenharmony_ci 5284e41f4b71Sopenharmony_ci```ts 5285e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5286e41f4b71Sopenharmony_ci 5287e41f4b71Sopenharmony_ciimageSourceApi.release().then(() => { 5288e41f4b71Sopenharmony_ci console.info('Succeeded in releasing the image source instance.'); 5289e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 5290e41f4b71Sopenharmony_ci console.error(`Failed to release the image source instance.code ${error.code},message is ${error.message}`); 5291e41f4b71Sopenharmony_ci}) 5292e41f4b71Sopenharmony_ci``` 5293e41f4b71Sopenharmony_ci 5294e41f4b71Sopenharmony_ci## image.createImagePacker 5295e41f4b71Sopenharmony_ci 5296e41f4b71Sopenharmony_cicreateImagePacker(): ImagePacker 5297e41f4b71Sopenharmony_ci 5298e41f4b71Sopenharmony_ci创建ImagePacker实例。 5299e41f4b71Sopenharmony_ci 5300e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5301e41f4b71Sopenharmony_ci 5302e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5303e41f4b71Sopenharmony_ci 5304e41f4b71Sopenharmony_ci**返回值:** 5305e41f4b71Sopenharmony_ci 5306e41f4b71Sopenharmony_ci| 类型 | 说明 | 5307e41f4b71Sopenharmony_ci| --------------------------- | --------------------- | 5308e41f4b71Sopenharmony_ci| [ImagePacker](#imagepacker) | 返回ImagePacker实例。 | 5309e41f4b71Sopenharmony_ci 5310e41f4b71Sopenharmony_ci**示例:** 5311e41f4b71Sopenharmony_ci 5312e41f4b71Sopenharmony_ci```ts 5313e41f4b71Sopenharmony_ciconst imagePackerApi: image.ImagePacker = image.createImagePacker(); 5314e41f4b71Sopenharmony_ci``` 5315e41f4b71Sopenharmony_ci 5316e41f4b71Sopenharmony_ci## ImagePacker 5317e41f4b71Sopenharmony_ci 5318e41f4b71Sopenharmony_ci图片打包器类,用于图片压缩和打包。在调用ImagePacker的方法前,需要先通过[createImagePacker](#imagecreateimagepacker)构建一个ImagePacker实例,当前支持格式有:jpeg、webp、png、heif<sup>12+</sup>(不同硬件设备支持情况不同)。 5319e41f4b71Sopenharmony_ci 5320e41f4b71Sopenharmony_ci### 属性 5321e41f4b71Sopenharmony_ci 5322e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5323e41f4b71Sopenharmony_ci 5324e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 5325e41f4b71Sopenharmony_ci| ---------------- | -------------- | ---- | ---- | -------------------------- | 5326e41f4b71Sopenharmony_ci| supportedFormats | Array\<string> | 是 | 否 | 图片打包支持的格式 jpeg、webp、png、heif<sup>12+</sup>(不同硬件设备支持情况不同)。 | 5327e41f4b71Sopenharmony_ci 5328e41f4b71Sopenharmony_ci### packing 5329e41f4b71Sopenharmony_ci 5330e41f4b71Sopenharmony_cipacking(source: ImageSource, option: PackingOption, callback: AsyncCallback\<ArrayBuffer>): void 5331e41f4b71Sopenharmony_ci 5332e41f4b71Sopenharmony_ci图片压缩或重新打包,使用callback形式返回结果。 5333e41f4b71Sopenharmony_ci 5334e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5335e41f4b71Sopenharmony_ci 5336e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5337e41f4b71Sopenharmony_ci 5338e41f4b71Sopenharmony_ci**参数:** 5339e41f4b71Sopenharmony_ci 5340e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5341e41f4b71Sopenharmony_ci| -------- | ---------------------------------- | ---- | ---------------------------------- | 5342e41f4b71Sopenharmony_ci| source | [ImageSource](#imagesource) | 是 | 打包的图片源。 | 5343e41f4b71Sopenharmony_ci| option | [PackingOption](#packingoption) | 是 | 设置打包参数。 | 5344e41f4b71Sopenharmony_ci| callback | AsyncCallback\<ArrayBuffer> | 是 | 回调函数,当图片打包成功,err为undefined,data为获取到的压缩或打包数据;否则为错误对象。 | 5345e41f4b71Sopenharmony_ci 5346e41f4b71Sopenharmony_ci**示例:** 5347e41f4b71Sopenharmony_ci 5348e41f4b71Sopenharmony_ci```ts 5349e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5350e41f4b71Sopenharmony_ci 5351e41f4b71Sopenharmony_ciconst context: Context = getContext(); 5352e41f4b71Sopenharmony_ci//此处'test.jpg'仅作示例,请开发者自行替换,否则imageSource会创建失败导致后续无法正常执行。 5353e41f4b71Sopenharmony_cilet filePath: string = context.filesDir + "/test.jpg"; 5354e41f4b71Sopenharmony_ciconst imageSourceApi: image.ImageSource = image.createImageSource(filePath); 5355e41f4b71Sopenharmony_cilet packOpts: image.PackingOption = { format: "image/jpeg", quality: 98 }; 5356e41f4b71Sopenharmony_ciimagePackerApi.packing(imageSourceApi, packOpts, (err: BusinessError, data: ArrayBuffer) => { 5357e41f4b71Sopenharmony_ci if (err) { 5358e41f4b71Sopenharmony_ci console.error(`Failed to pack the image.code ${err.code},message is ${err.message}`); 5359e41f4b71Sopenharmony_ci } else { 5360e41f4b71Sopenharmony_ci console.info('Succeeded in packing the image.'); 5361e41f4b71Sopenharmony_ci } 5362e41f4b71Sopenharmony_ci}) 5363e41f4b71Sopenharmony_ci``` 5364e41f4b71Sopenharmony_ci 5365e41f4b71Sopenharmony_ci### packing 5366e41f4b71Sopenharmony_ci 5367e41f4b71Sopenharmony_cipacking(source: ImageSource, option: PackingOption): Promise\<ArrayBuffer> 5368e41f4b71Sopenharmony_ci 5369e41f4b71Sopenharmony_ci图片压缩或重新打包,使用Promise形式返回结果。 5370e41f4b71Sopenharmony_ci 5371e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5372e41f4b71Sopenharmony_ci 5373e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5374e41f4b71Sopenharmony_ci 5375e41f4b71Sopenharmony_ci**参数:** 5376e41f4b71Sopenharmony_ci 5377e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5378e41f4b71Sopenharmony_ci| ------ | ------------------------------- | ---- | -------------- | 5379e41f4b71Sopenharmony_ci| source | [ImageSource](#imagesource) | 是 | 打包的图片源。 | 5380e41f4b71Sopenharmony_ci| option | [PackingOption](#packingoption) | 是 | 设置打包参数。 | 5381e41f4b71Sopenharmony_ci 5382e41f4b71Sopenharmony_ci**返回值:** 5383e41f4b71Sopenharmony_ci 5384e41f4b71Sopenharmony_ci| 类型 | 说明 | 5385e41f4b71Sopenharmony_ci| ---------------------------- | --------------------------------------------- | 5386e41f4b71Sopenharmony_ci| Promise\<ArrayBuffer> | Promise对象,返回压缩或打包后的数据。 | 5387e41f4b71Sopenharmony_ci 5388e41f4b71Sopenharmony_ci**示例:** 5389e41f4b71Sopenharmony_ci 5390e41f4b71Sopenharmony_ci```ts 5391e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5392e41f4b71Sopenharmony_ci 5393e41f4b71Sopenharmony_ciconst context: Context = getContext(); 5394e41f4b71Sopenharmony_ci//此处'test.jpg'仅作示例,请开发者自行替换,否则imageSource会创建失败导致后续无法正常执行。 5395e41f4b71Sopenharmony_cilet filePath: string = context.filesDir + "/test.jpg"; 5396e41f4b71Sopenharmony_ciconst imageSourceApi: image.ImageSource = image.createImageSource(filePath); 5397e41f4b71Sopenharmony_cilet packOpts: image.PackingOption = { format: "image/jpeg", quality: 98 } 5398e41f4b71Sopenharmony_ciimagePackerApi.packing(imageSourceApi, packOpts) 5399e41f4b71Sopenharmony_ci .then((data: ArrayBuffer) => { 5400e41f4b71Sopenharmony_ci console.info('Succeeded in packing the image.'); 5401e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 5402e41f4b71Sopenharmony_ci console.error(`Failed to pack the image.code ${error.code},message is ${error.message}`); 5403e41f4b71Sopenharmony_ci }) 5404e41f4b71Sopenharmony_ci``` 5405e41f4b71Sopenharmony_ci 5406e41f4b71Sopenharmony_ci### packing<sup>8+</sup> 5407e41f4b71Sopenharmony_ci 5408e41f4b71Sopenharmony_cipacking(source: PixelMap, option: PackingOption, callback: AsyncCallback\<ArrayBuffer>): void 5409e41f4b71Sopenharmony_ci 5410e41f4b71Sopenharmony_ci图片压缩或重新打包,使用callback形式返回结果。 5411e41f4b71Sopenharmony_ci 5412e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5413e41f4b71Sopenharmony_ci 5414e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5415e41f4b71Sopenharmony_ci 5416e41f4b71Sopenharmony_ci**参数:** 5417e41f4b71Sopenharmony_ci 5418e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5419e41f4b71Sopenharmony_ci| -------- | ------------------------------- | ---- | ---------------------------------- | 5420e41f4b71Sopenharmony_ci| source | [PixelMap](#pixelmap7) | 是 | 打包的PixelMap资源。 | 5421e41f4b71Sopenharmony_ci| option | [PackingOption](#packingoption) | 是 | 设置打包参数。 | 5422e41f4b71Sopenharmony_ci| callback | AsyncCallback\<ArrayBuffer> | 是 | 回调函数,当图片打包成功,err为undefined,data为获取到的压缩或打包数据;否则为错误对象。 | 5423e41f4b71Sopenharmony_ci 5424e41f4b71Sopenharmony_ci**示例:** 5425e41f4b71Sopenharmony_ci 5426e41f4b71Sopenharmony_ci```ts 5427e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5428e41f4b71Sopenharmony_ci 5429e41f4b71Sopenharmony_ciconst color: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 5430e41f4b71Sopenharmony_cilet opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } 5431e41f4b71Sopenharmony_ciimage.createPixelMap(color, opts).then((pixelMap: image.PixelMap) => { 5432e41f4b71Sopenharmony_ci let packOpts: image.PackingOption = { format: "image/jpeg", quality: 98 } 5433e41f4b71Sopenharmony_ci imagePackerApi.packing(pixelMap, packOpts, (err: BusinessError, data: ArrayBuffer) => { 5434e41f4b71Sopenharmony_ci if (err) { 5435e41f4b71Sopenharmony_ci console.error(`Failed to pack the image.code ${err.code},message is ${err.message}`); 5436e41f4b71Sopenharmony_ci } else { 5437e41f4b71Sopenharmony_ci console.info('Succeeded in packing the image.'); 5438e41f4b71Sopenharmony_ci } 5439e41f4b71Sopenharmony_ci }) 5440e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 5441e41f4b71Sopenharmony_ci console.error(`Failed to create the PixelMap.code ${error.code},message is ${error.message}`); 5442e41f4b71Sopenharmony_ci}) 5443e41f4b71Sopenharmony_ci``` 5444e41f4b71Sopenharmony_ci 5445e41f4b71Sopenharmony_ci### packing<sup>8+</sup> 5446e41f4b71Sopenharmony_ci 5447e41f4b71Sopenharmony_cipacking(source: PixelMap, option: PackingOption): Promise\<ArrayBuffer> 5448e41f4b71Sopenharmony_ci 5449e41f4b71Sopenharmony_ci图片压缩或重新打包,使用Promise形式返回结果。 5450e41f4b71Sopenharmony_ci 5451e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5452e41f4b71Sopenharmony_ci 5453e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5454e41f4b71Sopenharmony_ci 5455e41f4b71Sopenharmony_ci**参数:** 5456e41f4b71Sopenharmony_ci 5457e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5458e41f4b71Sopenharmony_ci| ------ | ------------------------------- | ---- | ------------------ | 5459e41f4b71Sopenharmony_ci| source | [PixelMap](#pixelmap7) | 是 | 打包的PixelMap源。 | 5460e41f4b71Sopenharmony_ci| option | [PackingOption](#packingoption) | 是 | 设置打包参数。 | 5461e41f4b71Sopenharmony_ci 5462e41f4b71Sopenharmony_ci**返回值:** 5463e41f4b71Sopenharmony_ci 5464e41f4b71Sopenharmony_ci| 类型 | 说明 | 5465e41f4b71Sopenharmony_ci| --------------------- | -------------------------------------------- | 5466e41f4b71Sopenharmony_ci| Promise\<ArrayBuffer> | Promise对象,返回压缩或打包后的数据。| 5467e41f4b71Sopenharmony_ci 5468e41f4b71Sopenharmony_ci**示例:** 5469e41f4b71Sopenharmony_ci 5470e41f4b71Sopenharmony_ci```ts 5471e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5472e41f4b71Sopenharmony_ci 5473e41f4b71Sopenharmony_ciconst color: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 5474e41f4b71Sopenharmony_cilet opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } 5475e41f4b71Sopenharmony_ciimage.createPixelMap(color, opts).then((pixelMap: image.PixelMap) => { 5476e41f4b71Sopenharmony_ci let packOpts: image.PackingOption = { format: "image/jpeg", quality: 98 } 5477e41f4b71Sopenharmony_ci imagePackerApi.packing(pixelMap, packOpts) 5478e41f4b71Sopenharmony_ci .then((data: ArrayBuffer) => { 5479e41f4b71Sopenharmony_ci console.info('Succeeded in packing the image.'); 5480e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 5481e41f4b71Sopenharmony_ci console.error(`Failed to pack the image.code ${error.code},message is ${error.message}`); 5482e41f4b71Sopenharmony_ci }) 5483e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 5484e41f4b71Sopenharmony_ci console.error(`Failed to create PixelMap.code ${error.code},message is ${error.message}`); 5485e41f4b71Sopenharmony_ci}) 5486e41f4b71Sopenharmony_ci``` 5487e41f4b71Sopenharmony_ci 5488e41f4b71Sopenharmony_ci### packing<sup>13+</sup> 5489e41f4b71Sopenharmony_ci 5490e41f4b71Sopenharmony_cipacking(picture: Picture, options: PackingOption): Promise\<ArrayBuffer> 5491e41f4b71Sopenharmony_ci 5492e41f4b71Sopenharmony_ci将图像压缩或重新打包,使用Promise形式返回结果。 5493e41f4b71Sopenharmony_ci 5494e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5495e41f4b71Sopenharmony_ci 5496e41f4b71Sopenharmony_ci**参数:** 5497e41f4b71Sopenharmony_ci 5498e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5499e41f4b71Sopenharmony_ci| ---------------- | ---------------------------------------------------- | ---- | -------------------- | 5500e41f4b71Sopenharmony_ci| picture | [Picture](#picture13) | 是 | 打包的Picture对象。 | 5501e41f4b71Sopenharmony_ci| option | [PackingOption](#packingoption) | 是 | 设置打包参数。 | 5502e41f4b71Sopenharmony_ci 5503e41f4b71Sopenharmony_ci**返回值:** 5504e41f4b71Sopenharmony_ci 5505e41f4b71Sopenharmony_ci| 类型 | 说明 | 5506e41f4b71Sopenharmony_ci| --------------------- | ------------------------------------- | 5507e41f4b71Sopenharmony_ci| Promise\<ArrayBuffer> | Promise对象,返回压缩或打包后的数据。 | 5508e41f4b71Sopenharmony_ci 5509e41f4b71Sopenharmony_ci**错误码:** 5510e41f4b71Sopenharmony_ci 5511e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 5512e41f4b71Sopenharmony_ci 5513e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5514e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 5515e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 5516e41f4b71Sopenharmony_ci| 7800301 | Encode failed. | 5517e41f4b71Sopenharmony_ci 5518e41f4b71Sopenharmony_ci**示例:** 5519e41f4b71Sopenharmony_ci 5520e41f4b71Sopenharmony_ci```ts 5521e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5522e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 5523e41f4b71Sopenharmony_ci 5524e41f4b71Sopenharmony_ciasync function Packing() { 5525e41f4b71Sopenharmony_ci const context = getContext(); 5526e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 5527e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("test.jpg"); 5528e41f4b71Sopenharmony_ci let ops: image.SourceOptions = { 5529e41f4b71Sopenharmony_ci sourceDensity: 98, 5530e41f4b71Sopenharmony_ci } 5531e41f4b71Sopenharmony_ci let imageSource: image.ImageSource = image.createImageSource(rawFile.buffer as ArrayBuffer, ops); 5532e41f4b71Sopenharmony_ci let commodityPixelMap: image.PixelMap = await imageSource.createPixelMap(); 5533e41f4b71Sopenharmony_ci let pictureObj: image.Picture = image.createPicture(commodityPixelMap); 5534e41f4b71Sopenharmony_ci 5535e41f4b71Sopenharmony_ci let funcName = "Packing"; 5536e41f4b71Sopenharmony_ci if (imagePackerApi != null) { 5537e41f4b71Sopenharmony_ci let opts: image.PackingOption = { 5538e41f4b71Sopenharmony_ci format: "image/jpeg", 5539e41f4b71Sopenharmony_ci quality: 98, 5540e41f4b71Sopenharmony_ci bufferSize: 10, 5541e41f4b71Sopenharmony_ci desiredDynamicRange: image.PackingDynamicRange.AUTO, 5542e41f4b71Sopenharmony_ci needsPackProperties: true}; 5543e41f4b71Sopenharmony_ci await imagePackerApi.packing(pictureObj, opts).then((data: ArrayBuffer) => { 5544e41f4b71Sopenharmony_ci console.info(funcName, 'Succeeded in packing the image.'+ data); 5545e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 5546e41f4b71Sopenharmony_ci console.error(funcName, 'Failed to pack the image.code ${error.code},message is ${error.message}'); 5547e41f4b71Sopenharmony_ci }); 5548e41f4b71Sopenharmony_ci } 5549e41f4b71Sopenharmony_ci} 5550e41f4b71Sopenharmony_ci``` 5551e41f4b71Sopenharmony_ci 5552e41f4b71Sopenharmony_ci### release 5553e41f4b71Sopenharmony_ci 5554e41f4b71Sopenharmony_cirelease(callback: AsyncCallback\<void>): void 5555e41f4b71Sopenharmony_ci 5556e41f4b71Sopenharmony_ci释放图片打包实例,使用callback形式返回结果。 5557e41f4b71Sopenharmony_ci 5558e41f4b71Sopenharmony_ciArkTS有内存回收机制,ImagePacker对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 5559e41f4b71Sopenharmony_ci 5560e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5561e41f4b71Sopenharmony_ci 5562e41f4b71Sopenharmony_ci**参数:** 5563e41f4b71Sopenharmony_ci 5564e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5565e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------ | 5566e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当释放图片打包实例成功,err为undefined,否则为错误对象。 | 5567e41f4b71Sopenharmony_ci 5568e41f4b71Sopenharmony_ci**示例:** 5569e41f4b71Sopenharmony_ci 5570e41f4b71Sopenharmony_ci```ts 5571e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5572e41f4b71Sopenharmony_ci 5573e41f4b71Sopenharmony_ciimagePackerApi.release((err: BusinessError)=>{ 5574e41f4b71Sopenharmony_ci if (err) { 5575e41f4b71Sopenharmony_ci console.error(`Failed to release image packaging.code ${err.code},message is ${err.message}`); 5576e41f4b71Sopenharmony_ci } else { 5577e41f4b71Sopenharmony_ci console.info('Succeeded in releasing image packaging.'); 5578e41f4b71Sopenharmony_ci } 5579e41f4b71Sopenharmony_ci}) 5580e41f4b71Sopenharmony_ci``` 5581e41f4b71Sopenharmony_ci 5582e41f4b71Sopenharmony_ci### release 5583e41f4b71Sopenharmony_ci 5584e41f4b71Sopenharmony_cirelease(): Promise\<void> 5585e41f4b71Sopenharmony_ci 5586e41f4b71Sopenharmony_ci释放图片打包实例,使用Promise形式返回释放结果。 5587e41f4b71Sopenharmony_ci 5588e41f4b71Sopenharmony_ciArkTS有内存回收机制,ImagePacker对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 5589e41f4b71Sopenharmony_ci 5590e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5591e41f4b71Sopenharmony_ci 5592e41f4b71Sopenharmony_ci**返回值:** 5593e41f4b71Sopenharmony_ci 5594e41f4b71Sopenharmony_ci| 类型 | 说明 | 5595e41f4b71Sopenharmony_ci| -------------- | ------------------------------------------------------ | 5596e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。| 5597e41f4b71Sopenharmony_ci 5598e41f4b71Sopenharmony_ci**示例:** 5599e41f4b71Sopenharmony_ci 5600e41f4b71Sopenharmony_ci```ts 5601e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5602e41f4b71Sopenharmony_ci 5603e41f4b71Sopenharmony_ciimagePackerApi.release().then(() => { 5604e41f4b71Sopenharmony_ci console.info('Succeeded in releasing image packaging.'); 5605e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 5606e41f4b71Sopenharmony_ci console.error(`Failed to release image packaging.code ${error.code},message is ${error.message}`); 5607e41f4b71Sopenharmony_ci}) 5608e41f4b71Sopenharmony_ci``` 5609e41f4b71Sopenharmony_ci 5610e41f4b71Sopenharmony_ci### packToFile<sup>11+</sup> 5611e41f4b71Sopenharmony_ci 5612e41f4b71Sopenharmony_cipackToFile(source: ImageSource, fd: number, options: PackingOption, callback: AsyncCallback\<void>): void 5613e41f4b71Sopenharmony_ci 5614e41f4b71Sopenharmony_ci指定打包参数,将ImageSource图片源编码后直接打包进文件。使用callback形式返回结果。 5615e41f4b71Sopenharmony_ci 5616e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5617e41f4b71Sopenharmony_ci 5618e41f4b71Sopenharmony_ci**参数:** 5619e41f4b71Sopenharmony_ci 5620e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5621e41f4b71Sopenharmony_ci| -------- | ------------------------------- | ---- | ------------------------------ | 5622e41f4b71Sopenharmony_ci| source | [ImageSource](#imagesource) | 是 | 打包的图片源。 | 5623e41f4b71Sopenharmony_ci| fd | number | 是 | 文件描述符。 | 5624e41f4b71Sopenharmony_ci| options | [PackingOption](#packingoption) | 是 | 设置打包参数。 | 5625e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当打包进文件成功,err为undefined,否则为错误对象。 | 5626e41f4b71Sopenharmony_ci 5627e41f4b71Sopenharmony_ci**示例:** 5628e41f4b71Sopenharmony_ci 5629e41f4b71Sopenharmony_ci```ts 5630e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5631e41f4b71Sopenharmony_ciimport { fileIo as fs } from '@kit.CoreFileKit'; 5632e41f4b71Sopenharmony_ci 5633e41f4b71Sopenharmony_ciconst context: Context = getContext(this); 5634e41f4b71Sopenharmony_ci//此处'test.png'仅作示例,请开发者自行替换,否则imageSource会创建失败导致后续无法正常执行。 5635e41f4b71Sopenharmony_ciconst path: string = context.filesDir + "/test.png"; 5636e41f4b71Sopenharmony_ciconst imageSourceApi: image.ImageSource = image.createImageSource(path); 5637e41f4b71Sopenharmony_cilet packOpts: image.PackingOption = { format: "image/jpeg", quality: 98 }; 5638e41f4b71Sopenharmony_ciconst filePath: string = context.filesDir + "/image_source.jpg"; 5639e41f4b71Sopenharmony_cilet file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE); 5640e41f4b71Sopenharmony_ciconst imagePackerApi: image.ImagePacker = image.createImagePacker(); 5641e41f4b71Sopenharmony_ciimagePackerApi.packToFile(imageSourceApi, file.fd, packOpts, (err: BusinessError) => { 5642e41f4b71Sopenharmony_ci if (err) { 5643e41f4b71Sopenharmony_ci console.error(`Failed to pack the image to file.code ${err.code},message is ${err.message}`); 5644e41f4b71Sopenharmony_ci } else { 5645e41f4b71Sopenharmony_ci console.info('Succeeded in packing the image to file.'); 5646e41f4b71Sopenharmony_ci } 5647e41f4b71Sopenharmony_ci}) 5648e41f4b71Sopenharmony_ci``` 5649e41f4b71Sopenharmony_ci 5650e41f4b71Sopenharmony_ci### packToFile<sup>11+</sup> 5651e41f4b71Sopenharmony_ci 5652e41f4b71Sopenharmony_cipackToFile (source: ImageSource, fd: number, options: PackingOption): Promise\<void> 5653e41f4b71Sopenharmony_ci 5654e41f4b71Sopenharmony_ci指定打包参数,将ImageSource图片源编码后直接打包进文件。使用Promise形式返回结果。 5655e41f4b71Sopenharmony_ci 5656e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5657e41f4b71Sopenharmony_ci 5658e41f4b71Sopenharmony_ci**参数:** 5659e41f4b71Sopenharmony_ci 5660e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5661e41f4b71Sopenharmony_ci| ------ | ------------------------------- | ---- | -------------- | 5662e41f4b71Sopenharmony_ci| source | [ImageSource](#imagesource) | 是 | 打包的图片源。 | 5663e41f4b71Sopenharmony_ci| fd | number | 是 | 文件描述符。 | 5664e41f4b71Sopenharmony_ci| options | [PackingOption](#packingoption) | 是 | 设置打包参数。 | 5665e41f4b71Sopenharmony_ci 5666e41f4b71Sopenharmony_ci**返回值:** 5667e41f4b71Sopenharmony_ci 5668e41f4b71Sopenharmony_ci| 类型 | 说明 | 5669e41f4b71Sopenharmony_ci| -------------- | --------------------------------- | 5670e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 5671e41f4b71Sopenharmony_ci 5672e41f4b71Sopenharmony_ci**示例:** 5673e41f4b71Sopenharmony_ci 5674e41f4b71Sopenharmony_ci```ts 5675e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5676e41f4b71Sopenharmony_ciimport { fileIo as fs } from '@kit.CoreFileKit'; 5677e41f4b71Sopenharmony_ci 5678e41f4b71Sopenharmony_ciconst context: Context = getContext(this); 5679e41f4b71Sopenharmony_ci//此处'test.png'仅作示例,请开发者自行替换,否则imageSource会创建失败导致后续无法正常执行。 5680e41f4b71Sopenharmony_ciconst path: string = context.filesDir + "/test.png"; 5681e41f4b71Sopenharmony_ciconst imageSourceApi: image.ImageSource = image.createImageSource(path); 5682e41f4b71Sopenharmony_cilet packOpts: image.PackingOption = { format: "image/jpeg", quality: 98 }; 5683e41f4b71Sopenharmony_ciconst filePath: string = context.filesDir + "/image_source.jpg"; 5684e41f4b71Sopenharmony_cilet file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE); 5685e41f4b71Sopenharmony_ciconst imagePackerApi: image.ImagePacker = image.createImagePacker(); 5686e41f4b71Sopenharmony_ciimagePackerApi.packToFile(imageSourceApi, file.fd, packOpts).then(() => { 5687e41f4b71Sopenharmony_ci console.info('Succeeded in packing the image to file.'); 5688e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 5689e41f4b71Sopenharmony_ci console.error(`Failed to pack the image to file.code ${error.code},message is ${error.message}`); 5690e41f4b71Sopenharmony_ci}) 5691e41f4b71Sopenharmony_ci``` 5692e41f4b71Sopenharmony_ci 5693e41f4b71Sopenharmony_ci### packToFile<sup>11+</sup> 5694e41f4b71Sopenharmony_ci 5695e41f4b71Sopenharmony_cipackToFile (source: PixelMap, fd: number, options: PackingOption, callback: AsyncCallback\<void>): void; 5696e41f4b71Sopenharmony_ci 5697e41f4b71Sopenharmony_ci指定打包参数,将PixelMap图片源编码后直接打包进文件。使用callback形式返回结果。 5698e41f4b71Sopenharmony_ci 5699e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5700e41f4b71Sopenharmony_ci 5701e41f4b71Sopenharmony_ci**参数:** 5702e41f4b71Sopenharmony_ci 5703e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5704e41f4b71Sopenharmony_ci| -------- | ------------------------------- | ---- | ------------------------------ | 5705e41f4b71Sopenharmony_ci| source | [PixelMap](#pixelmap7) | 是 | 打包的PixelMap资源。 | 5706e41f4b71Sopenharmony_ci| fd | number | 是 | 文件描述符。 | 5707e41f4b71Sopenharmony_ci| options | [PackingOption](#packingoption) | 是 | 设置打包参数。 | 5708e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当打包图片进文件成功,err为undefined,否则为错误对象。 | 5709e41f4b71Sopenharmony_ci 5710e41f4b71Sopenharmony_ci**示例:** 5711e41f4b71Sopenharmony_ci 5712e41f4b71Sopenharmony_ci```ts 5713e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5714e41f4b71Sopenharmony_ciimport { fileIo as fs } from '@kit.CoreFileKit'; 5715e41f4b71Sopenharmony_ci 5716e41f4b71Sopenharmony_ciconst color: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 5717e41f4b71Sopenharmony_cilet opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } 5718e41f4b71Sopenharmony_ciconst context: Context = getContext(this); 5719e41f4b71Sopenharmony_ciconst path: string = context.filesDir + "/pixel_map.jpg"; 5720e41f4b71Sopenharmony_ciimage.createPixelMap(color, opts).then((pixelmap: image.PixelMap) => { 5721e41f4b71Sopenharmony_ci let packOpts: image.PackingOption = { format: "image/jpeg", quality: 98 } 5722e41f4b71Sopenharmony_ci let file = fs.openSync(path, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE); 5723e41f4b71Sopenharmony_ci const imagePackerApi: image.ImagePacker = image.createImagePacker(); 5724e41f4b71Sopenharmony_ci imagePackerApi.packToFile(pixelmap, file.fd, packOpts, (err: BusinessError) => { 5725e41f4b71Sopenharmony_ci if (err) { 5726e41f4b71Sopenharmony_ci console.error(`Failed to pack the image to file.code ${err.code},message is ${err.message}`); 5727e41f4b71Sopenharmony_ci } else { 5728e41f4b71Sopenharmony_ci console.info('Succeeded in packing the image to file.'); 5729e41f4b71Sopenharmony_ci } 5730e41f4b71Sopenharmony_ci }) 5731e41f4b71Sopenharmony_ci}) 5732e41f4b71Sopenharmony_ci``` 5733e41f4b71Sopenharmony_ci 5734e41f4b71Sopenharmony_ci### packToFile<sup>11+</sup> 5735e41f4b71Sopenharmony_ci 5736e41f4b71Sopenharmony_cipackToFile (source: PixelMap, fd: number, options: PackingOption): Promise\<void> 5737e41f4b71Sopenharmony_ci 5738e41f4b71Sopenharmony_ci指定打包参数,将PixelMap图片源编码后直接打包进文件。使用Promise形式返回结果。 5739e41f4b71Sopenharmony_ci 5740e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5741e41f4b71Sopenharmony_ci 5742e41f4b71Sopenharmony_ci**参数:** 5743e41f4b71Sopenharmony_ci 5744e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5745e41f4b71Sopenharmony_ci| ------ | ------------------------------- | ---- | -------------------- | 5746e41f4b71Sopenharmony_ci| source | [PixelMap](#pixelmap7) | 是 | 打包的PixelMap资源。 | 5747e41f4b71Sopenharmony_ci| fd | number | 是 | 文件描述符。 | 5748e41f4b71Sopenharmony_ci| options | [PackingOption](#packingoption) | 是 | 设置打包参数。 | 5749e41f4b71Sopenharmony_ci 5750e41f4b71Sopenharmony_ci**返回值:** 5751e41f4b71Sopenharmony_ci 5752e41f4b71Sopenharmony_ci| 类型 | 说明 | 5753e41f4b71Sopenharmony_ci| -------------- | --------------------------------- | 5754e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。| 5755e41f4b71Sopenharmony_ci 5756e41f4b71Sopenharmony_ci**示例:** 5757e41f4b71Sopenharmony_ci 5758e41f4b71Sopenharmony_ci```ts 5759e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5760e41f4b71Sopenharmony_ciimport { fileIo as fs } from '@kit.CoreFileKit'; 5761e41f4b71Sopenharmony_ci 5762e41f4b71Sopenharmony_ciconst color: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4 5763e41f4b71Sopenharmony_cilet opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } 5764e41f4b71Sopenharmony_ciconst context: Context = getContext(this); 5765e41f4b71Sopenharmony_ciconst path: string = context.filesDir + "/pixel_map.jpg"; 5766e41f4b71Sopenharmony_ciimage.createPixelMap(color, opts).then((pixelmap: image.PixelMap) => { 5767e41f4b71Sopenharmony_ci let packOpts: image.PackingOption = { format: "image/jpeg", quality: 98 } 5768e41f4b71Sopenharmony_ci let file = fs.openSync(path, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE); 5769e41f4b71Sopenharmony_ci const imagePackerApi: image.ImagePacker = image.createImagePacker(); 5770e41f4b71Sopenharmony_ci imagePackerApi.packToFile(pixelmap, file.fd, packOpts) 5771e41f4b71Sopenharmony_ci .then(() => { 5772e41f4b71Sopenharmony_ci console.info('Succeeded in packing the image to file.'); 5773e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 5774e41f4b71Sopenharmony_ci console.error(`Failed to pack the image to file.code ${error.code},message is ${error.message}`); 5775e41f4b71Sopenharmony_ci }) 5776e41f4b71Sopenharmony_ci}) 5777e41f4b71Sopenharmony_ci``` 5778e41f4b71Sopenharmony_ci 5779e41f4b71Sopenharmony_ci### packToFile<sup>13+</sup> 5780e41f4b71Sopenharmony_ci 5781e41f4b71Sopenharmony_cipackToFile(picture: Picture, fd: number, options: PackingOption): Promise\<void> 5782e41f4b71Sopenharmony_ci 5783e41f4b71Sopenharmony_ci指定打包参数,将Picture图片源编码后直接打包进文件。使用Promise形式返回结果。 5784e41f4b71Sopenharmony_ci 5785e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 5786e41f4b71Sopenharmony_ci 5787e41f4b71Sopenharmony_ci**参数:** 5788e41f4b71Sopenharmony_ci 5789e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5790e41f4b71Sopenharmony_ci| ------- | ---------------------------- | ---- | -------------------- | 5791e41f4b71Sopenharmony_ci| picture | [Picture](#picture13) | 是 | 打包的Picture资源。 | 5792e41f4b71Sopenharmony_ci| fd | number | 是 | 文件描述符。 | 5793e41f4b71Sopenharmony_ci| options | [PackingOption](#packingoption) | 是 | 设置打包参数。 | 5794e41f4b71Sopenharmony_ci 5795e41f4b71Sopenharmony_ci**返回值:** 5796e41f4b71Sopenharmony_ci 5797e41f4b71Sopenharmony_ci| 类型 | 说明 | 5798e41f4b71Sopenharmony_ci| -------------- | ------------------------- | 5799e41f4b71Sopenharmony_ci| Promise\<void> | 无返回结果的Promise对象。 | 5800e41f4b71Sopenharmony_ci 5801e41f4b71Sopenharmony_ci**错误码:** 5802e41f4b71Sopenharmony_ci 5803e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 5804e41f4b71Sopenharmony_ci 5805e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5806e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 5807e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 5808e41f4b71Sopenharmony_ci| 7800301 | Encode failed. | 5809e41f4b71Sopenharmony_ci 5810e41f4b71Sopenharmony_ci**示例:** 5811e41f4b71Sopenharmony_ci 5812e41f4b71Sopenharmony_ci```ts 5813e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5814e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 5815e41f4b71Sopenharmony_ciimport { fileIo as fs } from '@kit.CoreFileKit'; 5816e41f4b71Sopenharmony_ci 5817e41f4b71Sopenharmony_ciasync function PackToFile() { 5818e41f4b71Sopenharmony_ci const context = getContext(); 5819e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 5820e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("test.jpg"); 5821e41f4b71Sopenharmony_ci let ops: image.SourceOptions = { 5822e41f4b71Sopenharmony_ci sourceDensity: 98, 5823e41f4b71Sopenharmony_ci } 5824e41f4b71Sopenharmony_ci let imageSource: image.ImageSource = image.createImageSource(rawFile.buffer as ArrayBuffer, ops); 5825e41f4b71Sopenharmony_ci let commodityPixelMap: image.PixelMap = await imageSource.createPixelMap(); 5826e41f4b71Sopenharmony_ci let pictureObj: image.Picture = image.createPicture(commodityPixelMap); 5827e41f4b71Sopenharmony_ci 5828e41f4b71Sopenharmony_ci let funcName = "PackToFile"; 5829e41f4b71Sopenharmony_ci if (imagePackerApi != null) { 5830e41f4b71Sopenharmony_ci const context: Context = getContext(); 5831e41f4b71Sopenharmony_ci const filePath: string = context.filesDir + "/test.jpg"; 5832e41f4b71Sopenharmony_ci let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE); 5833e41f4b71Sopenharmony_ci let packOpts: image.PackingOption = { 5834e41f4b71Sopenharmony_ci format: "image/jpeg", 5835e41f4b71Sopenharmony_ci quality: 98, 5836e41f4b71Sopenharmony_ci bufferSize: 10, 5837e41f4b71Sopenharmony_ci desiredDynamicRange: image.PackingDynamicRange.AUTO, 5838e41f4b71Sopenharmony_ci needsPackProperties: true}; 5839e41f4b71Sopenharmony_ci await imagePackerApi.packToFile(pictureObj, file.fd, packOpts).then(() => { 5840e41f4b71Sopenharmony_ci console.info(funcName, 'Succeeded in packing the image to file.'); 5841e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 5842e41f4b71Sopenharmony_ci console.error(funcName, 'Failed to pack the image to file.code ${error.code},message is ${error.message}'); 5843e41f4b71Sopenharmony_ci }); 5844e41f4b71Sopenharmony_ci } 5845e41f4b71Sopenharmony_ci} 5846e41f4b71Sopenharmony_ci``` 5847e41f4b71Sopenharmony_ci 5848e41f4b71Sopenharmony_ci## image.createAuxiliaryPicture<sup>13+</sup> 5849e41f4b71Sopenharmony_ci 5850e41f4b71Sopenharmony_cicreateAuxiliaryPicture(buffer: ArrayBuffer, size: Size, type: AuxiliaryPictureType): AuxiliaryPicture 5851e41f4b71Sopenharmony_ci 5852e41f4b71Sopenharmony_ci通过ArrayBuffer图片数据、辅助图尺寸、辅助图类型创建AuxiliaryPicture实例。 5853e41f4b71Sopenharmony_ci 5854e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image. 5855e41f4b71Sopenharmony_ci 5856e41f4b71Sopenharmony_ci**参数:** 5857e41f4b71Sopenharmony_ci 5858e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5859e41f4b71Sopenharmony_ci| ------ | ----------------------------------------------- | ---- | ---------------------------- | 5860e41f4b71Sopenharmony_ci| buffer | ArrayBuffer | 是 | 以buffer形式存放的图像数据。 | 5861e41f4b71Sopenharmony_ci| size | [Size](#size) | 是 | 辅助图的尺寸。 | 5862e41f4b71Sopenharmony_ci| type | [AuxiliaryPictureType](#auxiliarypicturetype13) | 是 | 辅助图类型。 | 5863e41f4b71Sopenharmony_ci 5864e41f4b71Sopenharmony_ci**返回值:** 5865e41f4b71Sopenharmony_ci 5866e41f4b71Sopenharmony_ci| 类型 | 说明 | 5867e41f4b71Sopenharmony_ci| --------------------------------------- | ------------------------------------------ | 5868e41f4b71Sopenharmony_ci| [AuxiliaryPicture](#auxiliarypicture13) | 如果操作成功,则返回AuxiliaryPicture实例。 | 5869e41f4b71Sopenharmony_ci 5870e41f4b71Sopenharmony_ci**错误码:** 5871e41f4b71Sopenharmony_ci 5872e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 5873e41f4b71Sopenharmony_ci 5874e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5875e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 5876e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 5877e41f4b71Sopenharmony_ci 5878e41f4b71Sopenharmony_ci**示例:** 5879e41f4b71Sopenharmony_ci 5880e41f4b71Sopenharmony_ci```ts 5881e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 5882e41f4b71Sopenharmony_ci 5883e41f4b71Sopenharmony_ciasync function CreateAuxiliaryPicture() { 5884e41f4b71Sopenharmony_ci let funcName = "CreateAuxiliaryPicture"; 5885e41f4b71Sopenharmony_ci const context = getContext(); 5886e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 5887e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("hdr.jpg"); //需要支持hdr的图片 5888e41f4b71Sopenharmony_ci let auxBuffer: ArrayBuffer = rawFile.buffer as ArrayBuffer; 5889e41f4b71Sopenharmony_ci let auxSize: Size = { 5890e41f4b71Sopenharmony_ci height: 180, 5891e41f4b71Sopenharmony_ci width: 240 5892e41f4b71Sopenharmony_ci }; 5893e41f4b71Sopenharmony_ci let auxType: image.AuxiliaryPictureType = image.AuxiliaryPictureType.GAINMAP; 5894e41f4b71Sopenharmony_ci let auxPictureObj: image.AuxiliaryPicture | null = image.createAuxiliaryPicture(auxBuffer, auxSize, auxType); 5895e41f4b71Sopenharmony_ci if(auxPictureObj != null) { 5896e41f4b71Sopenharmony_ci let type: image.AuxiliaryPictureType = auxPictureObj.getType(); 5897e41f4b71Sopenharmony_ci console.info(funcName, 'CreateAuxiliaryPicture succeeded this.Aux_picture.type.' + JSON.stringify(type)); 5898e41f4b71Sopenharmony_ci } else { 5899e41f4b71Sopenharmony_ci console.error(funcName, 'CreateAuxiliaryPicture failed'); 5900e41f4b71Sopenharmony_ci } 5901e41f4b71Sopenharmony_ci} 5902e41f4b71Sopenharmony_ci``` 5903e41f4b71Sopenharmony_ci 5904e41f4b71Sopenharmony_ci## AuxiliaryPicture<sup>13+</sup> 5905e41f4b71Sopenharmony_ci 5906e41f4b71Sopenharmony_ci辅助图一般用于辅助主图进行特殊信息的展示,使图像包含更丰富的信息。辅助图图像类,用于读取或写入图像的辅助图数据以及获取图像的辅助图信息。在调用AuxiliaryPicture的方法前,需要先通过[createAuxiliaryPicture](#imagecreateauxiliarypicture13)创建一个AuxiliaryPicture实例。 5907e41f4b71Sopenharmony_ci 5908e41f4b71Sopenharmony_ci### 属性 5909e41f4b71Sopenharmony_ci 5910e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 5911e41f4b71Sopenharmony_ci 5912e41f4b71Sopenharmony_ci### writePixelsFromBuffer<sup>13+</sup> 5913e41f4b71Sopenharmony_ci 5914e41f4b71Sopenharmony_ciwritePixelsFromBuffer(data: ArrayBuffer): Promise\<void> 5915e41f4b71Sopenharmony_ci 5916e41f4b71Sopenharmony_ci读取ArrayBuffer中的辅助图片数据,并将数据写入AuxiliaryPicture对象,使用Promise形式返回。 5917e41f4b71Sopenharmony_ci 5918e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 5919e41f4b71Sopenharmony_ci 5920e41f4b71Sopenharmony_ci**参数:** 5921e41f4b71Sopenharmony_ci 5922e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5923e41f4b71Sopenharmony_ci| ------ | ----------- | ---- | ---------------- | 5924e41f4b71Sopenharmony_ci| data | ArrayBuffer | 是 | 辅助图像素数据。 | 5925e41f4b71Sopenharmony_ci 5926e41f4b71Sopenharmony_ci**返回值:** 5927e41f4b71Sopenharmony_ci 5928e41f4b71Sopenharmony_ci| 类型 | 说明 | 5929e41f4b71Sopenharmony_ci| -------------- | -------------------------------------- | 5930e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 5931e41f4b71Sopenharmony_ci 5932e41f4b71Sopenharmony_ci**错误码:** 5933e41f4b71Sopenharmony_ci 5934e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 5935e41f4b71Sopenharmony_ci 5936e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5937e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 5938e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 5939e41f4b71Sopenharmony_ci| 7600301 | Memory alloc failed. | 5940e41f4b71Sopenharmony_ci| 7600302 | Memory copy failed. | 5941e41f4b71Sopenharmony_ci 5942e41f4b71Sopenharmony_ci**示例:** 5943e41f4b71Sopenharmony_ci 5944e41f4b71Sopenharmony_ci```ts 5945e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 5946e41f4b71Sopenharmony_ci 5947e41f4b71Sopenharmony_ciasync function WritePixelsFromBuffer() { 5948e41f4b71Sopenharmony_ci const context = getContext(); 5949e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 5950e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("hdr.jpg"); //需要支持hdr的图片 5951e41f4b71Sopenharmony_ci let ops: image.SourceOptions = { 5952e41f4b71Sopenharmony_ci sourceDensity: 98, 5953e41f4b71Sopenharmony_ci } 5954e41f4b71Sopenharmony_ci let imageSource: image.ImageSource = image.createImageSource(rawFile.buffer as ArrayBuffer, ops); 5955e41f4b71Sopenharmony_ci let commodityPixelMap: image.PixelMap = await imageSource.createPixelMap(); 5956e41f4b71Sopenharmony_ci let pictureObj: image.Picture = image.createPicture(commodityPixelMap); 5957e41f4b71Sopenharmony_ci let auxPictureObj: image.AuxiliaryPicture | null = pictureObj.getAuxiliaryPicture(image.AuxiliaryPictureType.GAINMAP); 5958e41f4b71Sopenharmony_ci if(auxPictureObj != null) { 5959e41f4b71Sopenharmony_ci let auxBuffer: ArrayBuffer = await auxPictureObj.readPixelsToBuffer(); 5960e41f4b71Sopenharmony_ci await auxPictureObj.writePixelsFromBuffer(auxBuffer); 5961e41f4b71Sopenharmony_ci console.info('Write pixels from buffer success.'); 5962e41f4b71Sopenharmony_ci } else { 5963e41f4b71Sopenharmony_ci console.error('AuxPictureObj is null.'); 5964e41f4b71Sopenharmony_ci } 5965e41f4b71Sopenharmony_ci} 5966e41f4b71Sopenharmony_ci``` 5967e41f4b71Sopenharmony_ci 5968e41f4b71Sopenharmony_ci### readPixelsToBuffer<sup>13+</sup> 5969e41f4b71Sopenharmony_ci 5970e41f4b71Sopenharmony_cireadPixelsToBuffer(): Promise\<ArrayBuffer> 5971e41f4b71Sopenharmony_ci 5972e41f4b71Sopenharmony_ci读取图像像素映射数据并将数据写入ArrayBuffer,使用Promise形式返回。 5973e41f4b71Sopenharmony_ci 5974e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 5975e41f4b71Sopenharmony_ci 5976e41f4b71Sopenharmony_ci**返回值:** 5977e41f4b71Sopenharmony_ci 5978e41f4b71Sopenharmony_ci| 类型 | 说明 | 5979e41f4b71Sopenharmony_ci| --------------------- | --------------------------------- | 5980e41f4b71Sopenharmony_ci| Promise\<ArrayBuffer> | Promise对象。返回辅助图像素数据。 | 5981e41f4b71Sopenharmony_ci 5982e41f4b71Sopenharmony_ci**错误码:** 5983e41f4b71Sopenharmony_ci 5984e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 5985e41f4b71Sopenharmony_ci 5986e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5987e41f4b71Sopenharmony_ci| -------- | -------------------- | 5988e41f4b71Sopenharmony_ci| 7600301 | Memory alloc failed. | 5989e41f4b71Sopenharmony_ci| 7600302 | Memory copy failed. | 5990e41f4b71Sopenharmony_ci 5991e41f4b71Sopenharmony_ci**示例:** 5992e41f4b71Sopenharmony_ci 5993e41f4b71Sopenharmony_ci```ts 5994e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5995e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 5996e41f4b71Sopenharmony_ci 5997e41f4b71Sopenharmony_ciasync function ReadPixelsToBuffer() { 5998e41f4b71Sopenharmony_ci const context = getContext(); 5999e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 6000e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("hdr.jpg"); //需要支持hdr的图片 6001e41f4b71Sopenharmony_ci let ops: image.SourceOptions = { 6002e41f4b71Sopenharmony_ci sourceDensity: 98, 6003e41f4b71Sopenharmony_ci } 6004e41f4b71Sopenharmony_ci let imageSource: image.ImageSource = image.createImageSource(rawFile.buffer as ArrayBuffer, ops); 6005e41f4b71Sopenharmony_ci let commodityPixelMap: image.PixelMap = await imageSource.createPixelMap(); 6006e41f4b71Sopenharmony_ci let pictureObj: image.Picture = image.createPicture(commodityPixelMap); 6007e41f4b71Sopenharmony_ci let auxPictureObj: image.AuxiliaryPicture | null = pictureObj.getAuxiliaryPicture(image.AuxiliaryPictureType.GAINMAP); 6008e41f4b71Sopenharmony_ci if(auxPictureObj != null) { 6009e41f4b71Sopenharmony_ci await auxPictureObj.readPixelsToBuffer().then((pixelsBuffer: ArrayBuffer) => { 6010e41f4b71Sopenharmony_ci console.info('Read pixels to buffer success.' ); 6011e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 6012e41f4b71Sopenharmony_ci console.error('Read pixels to buffer failed error.code: ' + JSON.stringify(error.code) + ' ,error.message:' + JSON.stringify(error.message)); 6013e41f4b71Sopenharmony_ci }); 6014e41f4b71Sopenharmony_ci } else { 6015e41f4b71Sopenharmony_ci console.error('AuxPictureObj is null.'); 6016e41f4b71Sopenharmony_ci } 6017e41f4b71Sopenharmony_ci} 6018e41f4b71Sopenharmony_ci``` 6019e41f4b71Sopenharmony_ci 6020e41f4b71Sopenharmony_ci### getType<sup>13+</sup> 6021e41f4b71Sopenharmony_ci 6022e41f4b71Sopenharmony_cigetType(): AuxiliaryPictureType 6023e41f4b71Sopenharmony_ci 6024e41f4b71Sopenharmony_ci获取辅助图的类型。 6025e41f4b71Sopenharmony_ci 6026e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 6027e41f4b71Sopenharmony_ci 6028e41f4b71Sopenharmony_ci**返回值:** 6029e41f4b71Sopenharmony_ci 6030e41f4b71Sopenharmony_ci| 类型 | 说明 | 6031e41f4b71Sopenharmony_ci| ----------------------------------------------- | ---------------------------- | 6032e41f4b71Sopenharmony_ci| [AuxiliaryPictureType](#auxiliarypicturetype13) | 操作成功,返回辅助图的类型。 | 6033e41f4b71Sopenharmony_ci 6034e41f4b71Sopenharmony_ci**示例:** 6035e41f4b71Sopenharmony_ci 6036e41f4b71Sopenharmony_ci```ts 6037e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 6038e41f4b71Sopenharmony_ci 6039e41f4b71Sopenharmony_ciasync function GetAuxiliaryPictureType() { 6040e41f4b71Sopenharmony_ci if (auxPictureObj != null) { 6041e41f4b71Sopenharmony_ci let type: image.AuxiliaryPictureType = auxPictureObj.getType(); 6042e41f4b71Sopenharmony_ci console.info('Success get auxiliary picture type ' + JSON.stringify(type)); 6043e41f4b71Sopenharmony_ci } else { 6044e41f4b71Sopenharmony_ci console.info('Failed get auxiliary picture type '); 6045e41f4b71Sopenharmony_ci } 6046e41f4b71Sopenharmony_ci} 6047e41f4b71Sopenharmony_ci``` 6048e41f4b71Sopenharmony_ci 6049e41f4b71Sopenharmony_ci### setMetadata<sup>13+</sup> 6050e41f4b71Sopenharmony_ci 6051e41f4b71Sopenharmony_cisetMetadata(metadataType: MetadataType, metadata: Metadata): Promise\<void> 6052e41f4b71Sopenharmony_ci 6053e41f4b71Sopenharmony_ci设置辅助图元数据。 6054e41f4b71Sopenharmony_ci 6055e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 6056e41f4b71Sopenharmony_ci 6057e41f4b71Sopenharmony_ci**参数:** 6058e41f4b71Sopenharmony_ci 6059e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6060e41f4b71Sopenharmony_ci| ------------ | ------------------------------- | ---- | ------------------------------------ | 6061e41f4b71Sopenharmony_ci| metadataType | [MetadataType](#metadatatype13) | 是 | 元数据的类型,用于设置对应的元数据。 | 6062e41f4b71Sopenharmony_ci| metadata | [Metadata](#metadata13) | 是 | 元数据对象。 | 6063e41f4b71Sopenharmony_ci 6064e41f4b71Sopenharmony_ci**返回值:** 6065e41f4b71Sopenharmony_ci 6066e41f4b71Sopenharmony_ci| 类型 | 说明 | 6067e41f4b71Sopenharmony_ci| -------------- | -------------------------------------- | 6068e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,无返回结果的Promise对象。 | 6069e41f4b71Sopenharmony_ci 6070e41f4b71Sopenharmony_ci**错误码:** 6071e41f4b71Sopenharmony_ci 6072e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 6073e41f4b71Sopenharmony_ci 6074e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6075e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 6076e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 6077e41f4b71Sopenharmony_ci| 7600202 | Unsupported metadata. Possible causes: 1. Unsupported metadata type. 2. The metadata type does not match the auxiliary picture type. | 6078e41f4b71Sopenharmony_ci 6079e41f4b71Sopenharmony_ci**示例:** 6080e41f4b71Sopenharmony_ci 6081e41f4b71Sopenharmony_ci```ts 6082e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6083e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 6084e41f4b71Sopenharmony_ci 6085e41f4b71Sopenharmony_ciasync function SetAuxPictureObjMetadata() { 6086e41f4b71Sopenharmony_ci const exifContext = getContext(); 6087e41f4b71Sopenharmony_ci const exifResourceMgr = exifContext.resourceManager; 6088e41f4b71Sopenharmony_ci const exifRawFile = await exifResourceMgr.getRawFileContent("exif.jpg");//图片包含exif metadata 6089e41f4b71Sopenharmony_ci let exifOps: image.SourceOptions = { 6090e41f4b71Sopenharmony_ci sourceDensity: 98, 6091e41f4b71Sopenharmony_ci } 6092e41f4b71Sopenharmony_ci let exifImageSource: image.ImageSource = image.createImageSource(exifRawFile.buffer as ArrayBuffer, exifOps); 6093e41f4b71Sopenharmony_ci let exifCommodityPixelMap: image.PixelMap = await exifImageSource.createPixelMap(); 6094e41f4b71Sopenharmony_ci let exifPictureObj: image.Picture = image.createPicture(exifCommodityPixelMap); 6095e41f4b71Sopenharmony_ci if (exifPictureObj != null) { 6096e41f4b71Sopenharmony_ci console.info('Create picture succeeded'); 6097e41f4b71Sopenharmony_ci } else { 6098e41f4b71Sopenharmony_ci console.info('Create picture failed'); 6099e41f4b71Sopenharmony_ci } 6100e41f4b71Sopenharmony_ci 6101e41f4b71Sopenharmony_ci if (auxPictureObj != null) { 6102e41f4b71Sopenharmony_ci let metadataType: image.MetadataType = image.MetadataType.EXIF_METADATA; 6103e41f4b71Sopenharmony_ci let exifMetaData: image.Metadata = await exifPictureObj.getMetadata(metadataType); 6104e41f4b71Sopenharmony_ci auxPictureObj.setMetadata(metadataType, exifMetaData).then(() => { 6105e41f4b71Sopenharmony_ci console.info('Set metadata success'); 6106e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 6107e41f4b71Sopenharmony_ci console.error('Set metadata failed.error.code: ${error.code}, error.message: ${error.message}'); 6108e41f4b71Sopenharmony_ci }); 6109e41f4b71Sopenharmony_ci } else { 6110e41f4b71Sopenharmony_ci console.info('AuxPictureObjMetaData is null'); 6111e41f4b71Sopenharmony_ci } 6112e41f4b71Sopenharmony_ci} 6113e41f4b71Sopenharmony_ci``` 6114e41f4b71Sopenharmony_ci 6115e41f4b71Sopenharmony_ci### getMetadata<sup>13+</sup> 6116e41f4b71Sopenharmony_ci 6117e41f4b71Sopenharmony_cigetMetadata(metadataType: MetadataType): Promise\<Metadata> 6118e41f4b71Sopenharmony_ci 6119e41f4b71Sopenharmony_ci从辅助图中获取元数据。 6120e41f4b71Sopenharmony_ci 6121e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 6122e41f4b71Sopenharmony_ci 6123e41f4b71Sopenharmony_ci**参数:** 6124e41f4b71Sopenharmony_ci 6125e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6126e41f4b71Sopenharmony_ci| ------------ | ------------------------------- | ---- | -------------------------------------- | 6127e41f4b71Sopenharmony_ci| metadataType | [MetadataType](#metadatatype13) | 是 | 元数据类型,用于获取对应类型的元数据。 | 6128e41f4b71Sopenharmony_ci 6129e41f4b71Sopenharmony_ci**返回值:** 6130e41f4b71Sopenharmony_ci 6131e41f4b71Sopenharmony_ci| 类型 | 说明 | 6132e41f4b71Sopenharmony_ci| -------------------------------- | ---------------- | 6133e41f4b71Sopenharmony_ci| Promise<[Metadata](#metadata13)> | 返回元数据对象。 | 6134e41f4b71Sopenharmony_ci 6135e41f4b71Sopenharmony_ci**错误码:** 6136e41f4b71Sopenharmony_ci 6137e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 6138e41f4b71Sopenharmony_ci 6139e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6140e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 6141e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 6142e41f4b71Sopenharmony_ci| 7600202 | Unsupported metadata. Possible causes: 1. Unsupported metadata type. 2. The metadata type does not match the auxiliary picture type. | 6143e41f4b71Sopenharmony_ci 6144e41f4b71Sopenharmony_ci**示例:** 6145e41f4b71Sopenharmony_ci 6146e41f4b71Sopenharmony_ci```ts 6147e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 6148e41f4b71Sopenharmony_ci 6149e41f4b71Sopenharmony_ciasync function GetAuxPictureObjMetadata() { 6150e41f4b71Sopenharmony_ci if (auxPictureObj != null) { 6151e41f4b71Sopenharmony_ci let metadataType: image.MetadataType = image.MetadataType.EXIF_METADATA; 6152e41f4b71Sopenharmony_ci let auxPictureObjMetaData: image.Metadata | null = await auxPictureObj.getMetadata(metadataType); 6153e41f4b71Sopenharmony_ci if (auxPictureObjMetaData != null) { 6154e41f4b71Sopenharmony_ci console.info('Get auxpictureobj Metadata success' ); 6155e41f4b71Sopenharmony_ci } else { 6156e41f4b71Sopenharmony_ci console.info('Get auxpictureobj Metadata failed'); 6157e41f4b71Sopenharmony_ci } 6158e41f4b71Sopenharmony_ci } else { 6159e41f4b71Sopenharmony_ci console.info('Get auxpictureobj is null.'); 6160e41f4b71Sopenharmony_ci } 6161e41f4b71Sopenharmony_ci} 6162e41f4b71Sopenharmony_ci``` 6163e41f4b71Sopenharmony_ci 6164e41f4b71Sopenharmony_ci### getAuxiliaryPictureinfo<sup>13+</sup> 6165e41f4b71Sopenharmony_ci 6166e41f4b71Sopenharmony_cigetAuxiliaryPictureInfo(): AuxiliaryPictureInfo 6167e41f4b71Sopenharmony_ci 6168e41f4b71Sopenharmony_ci获取有关此辅助图的图像信息。 6169e41f4b71Sopenharmony_ci 6170e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 6171e41f4b71Sopenharmony_ci 6172e41f4b71Sopenharmony_ci**返回值:** 6173e41f4b71Sopenharmony_ci 6174e41f4b71Sopenharmony_ci| 类型 | 说明 | 6175e41f4b71Sopenharmony_ci| ----------------------------------------------- | --------------------------------- | 6176e41f4b71Sopenharmony_ci| [AuxiliaryPictureInfo](#auxiliarypictureinfo13) | Promise对象,返回辅助图图像信息。 | 6177e41f4b71Sopenharmony_ci 6178e41f4b71Sopenharmony_ci**示例:** 6179e41f4b71Sopenharmony_ci 6180e41f4b71Sopenharmony_ci```ts 6181e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 6182e41f4b71Sopenharmony_ci 6183e41f4b71Sopenharmony_ciasync function GetAuxiliaryPictureInfo() { 6184e41f4b71Sopenharmony_ci if(auxPictureObj != null) { 6185e41f4b71Sopenharmony_ci let auxinfo: image.AuxiliaryPictureInfo = auxPictureObj.getAuxiliaryPictureInfo(); 6186e41f4b71Sopenharmony_ci console.info('GetAuxiliaryPictureInfo Type: ' + auxinfo.auxiliaryPictureType + 6187e41f4b71Sopenharmony_ci ' height: ' + auxinfo.size.height + ' width: ' + auxinfo.size.width + 6188e41f4b71Sopenharmony_ci ' rowStride: ' + auxinfo.rowStride + ' pixelFormat: ' + auxinfo.pixelFormat + 6189e41f4b71Sopenharmony_ci ' colorSpace: ' + auxinfo.colorSpace); 6190e41f4b71Sopenharmony_ci } else { 6191e41f4b71Sopenharmony_ci console.info('Get auxiliary picture information failed'); 6192e41f4b71Sopenharmony_ci } 6193e41f4b71Sopenharmony_ci} 6194e41f4b71Sopenharmony_ci``` 6195e41f4b71Sopenharmony_ci 6196e41f4b71Sopenharmony_ci### setAuxiliaryPictureinfo<sup>13+</sup> 6197e41f4b71Sopenharmony_ci 6198e41f4b71Sopenharmony_cisetAuxiliaryPictureInfo(info: AuxiliaryPictureInfo): void 6199e41f4b71Sopenharmony_ci 6200e41f4b71Sopenharmony_ci设置辅助图的图像信息。 6201e41f4b71Sopenharmony_ci 6202e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 6203e41f4b71Sopenharmony_ci 6204e41f4b71Sopenharmony_ci**参数:** 6205e41f4b71Sopenharmony_ci 6206e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6207e41f4b71Sopenharmony_ci| ------ | ----------------------------------------------- | ---- | ------------------ | 6208e41f4b71Sopenharmony_ci| info | [AuxiliaryPictureInfo](#auxiliarypictureinfo13) | 是 | 辅助图的图像信息。 | 6209e41f4b71Sopenharmony_ci 6210e41f4b71Sopenharmony_ci**错误码:** 6211e41f4b71Sopenharmony_ci 6212e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 6213e41f4b71Sopenharmony_ci 6214e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6215e41f4b71Sopenharmony_ci| -------- | :----------------------------------------------------------- | 6216e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 6217e41f4b71Sopenharmony_ci 6218e41f4b71Sopenharmony_ci**示例:** 6219e41f4b71Sopenharmony_ci 6220e41f4b71Sopenharmony_ci```ts 6221e41f4b71Sopenharmony_ciimport { colorSpaceManager } from '@kit.ArkGraphics2D'; 6222e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 6223e41f4b71Sopenharmony_ci 6224e41f4b71Sopenharmony_ciasync function SetAuxiliaryPictureInfo() { 6225e41f4b71Sopenharmony_ci if(auxPictureObj != null) { 6226e41f4b71Sopenharmony_ci let colorSpaceName = colorSpaceManager.ColorSpace.SRGB; 6227e41f4b71Sopenharmony_ci let info: image.AuxiliaryPictureInfo = { 6228e41f4b71Sopenharmony_ci auxiliaryPictureType: image.AuxiliaryPictureType.GAINMAP, 6229e41f4b71Sopenharmony_ci size: {height: 100, width: 200}, 6230e41f4b71Sopenharmony_ci pixelFormat: image.PixelMapFormat.RGBA_8888, 6231e41f4b71Sopenharmony_ci rowStride: 0, 6232e41f4b71Sopenharmony_ci colorSpace: colorSpaceManager.create(colorSpaceName), 6233e41f4b71Sopenharmony_ci }; 6234e41f4b71Sopenharmony_ci auxPictureObj.setAuxiliaryPictureInfo(info); 6235e41f4b71Sopenharmony_ci } 6236e41f4b71Sopenharmony_ci} 6237e41f4b71Sopenharmony_ci``` 6238e41f4b71Sopenharmony_ci 6239e41f4b71Sopenharmony_ci### release<sup>13+</sup> 6240e41f4b71Sopenharmony_ci 6241e41f4b71Sopenharmony_cirelease():void 6242e41f4b71Sopenharmony_ci 6243e41f4b71Sopenharmony_ci释放辅助图对象,无返回值。 6244e41f4b71Sopenharmony_ci 6245e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 6246e41f4b71Sopenharmony_ci 6247e41f4b71Sopenharmony_ci**示例:** 6248e41f4b71Sopenharmony_ci 6249e41f4b71Sopenharmony_ci```ts 6250e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 6251e41f4b71Sopenharmony_ci 6252e41f4b71Sopenharmony_ciasync function Release() { 6253e41f4b71Sopenharmony_ci let funcName = "Release"; 6254e41f4b71Sopenharmony_ci if (auxPictureObj != null) { 6255e41f4b71Sopenharmony_ci auxPictureObj.release(); 6256e41f4b71Sopenharmony_ci if (auxPictureObj.getType() == null) { 6257e41f4b71Sopenharmony_ci console.info(funcName, 'Success !'); 6258e41f4b71Sopenharmony_ci } else { 6259e41f4b71Sopenharmony_ci console.info(funcName, 'Failed !'); 6260e41f4b71Sopenharmony_ci } 6261e41f4b71Sopenharmony_ci } else { 6262e41f4b71Sopenharmony_ci console.info('PictureObj is null'); 6263e41f4b71Sopenharmony_ci } 6264e41f4b71Sopenharmony_ci} 6265e41f4b71Sopenharmony_ci``` 6266e41f4b71Sopenharmony_ci 6267e41f4b71Sopenharmony_ci## Metadata<sup>13+</sup> 6268e41f4b71Sopenharmony_ci 6269e41f4b71Sopenharmony_ci图像元数据类,用于存储图像的元数据。 6270e41f4b71Sopenharmony_ci 6271e41f4b71Sopenharmony_ci### 属性 6272e41f4b71Sopenharmony_ci 6273e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 6274e41f4b71Sopenharmony_ci 6275e41f4b71Sopenharmony_ci### getProperties<sup>13+</sup> 6276e41f4b71Sopenharmony_ci 6277e41f4b71Sopenharmony_cigetProperties(key: Array\<string>): Promise\<Record\<string, string | null>> 6278e41f4b71Sopenharmony_ci 6279e41f4b71Sopenharmony_ci获取图像中属性的值,此方法使用promise返回记录数组中的属性值。 6280e41f4b71Sopenharmony_ci 6281e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 6282e41f4b71Sopenharmony_ci 6283e41f4b71Sopenharmony_ci**参数:** 6284e41f4b71Sopenharmony_ci 6285e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6286e41f4b71Sopenharmony_ci| ------ | -------------- | ---- | ------------------------ | 6287e41f4b71Sopenharmony_ci| key | Array\<string> | 是 | 要获取其值的属性的名称。 | 6288e41f4b71Sopenharmony_ci 6289e41f4b71Sopenharmony_ci**返回值:** 6290e41f4b71Sopenharmony_ci 6291e41f4b71Sopenharmony_ci| 类型 | 说明 | 6292e41f4b71Sopenharmony_ci| ---------------------------------------- | ------------------------------------------------------------ | 6293e41f4b71Sopenharmony_ci| Promise\<Record<string, string \| null>> | Promise对象,返回元数据要获取的属性的值,如获取失败则返回错误码。 | 6294e41f4b71Sopenharmony_ci 6295e41f4b71Sopenharmony_ci**错误码:** 6296e41f4b71Sopenharmony_ci 6297e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 6298e41f4b71Sopenharmony_ci 6299e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6300e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 6301e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types;3.Parameter verification failed; | 6302e41f4b71Sopenharmony_ci| 7600202 | Unsupported metadata. Possible causes: 1. Unsupported metadata type. 2. The metadata type does not match the auxiliary picture type. | 6303e41f4b71Sopenharmony_ci 6304e41f4b71Sopenharmony_ci**示例:** 6305e41f4b71Sopenharmony_ci 6306e41f4b71Sopenharmony_ci```ts 6307e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6308e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 6309e41f4b71Sopenharmony_ci 6310e41f4b71Sopenharmony_ciasync function GetProperties() { 6311e41f4b71Sopenharmony_ci const context = getContext(); 6312e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 6313e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("exif.jpg"); //图片包含exif metadata 6314e41f4b71Sopenharmony_ci let ops: image.SourceOptions = { 6315e41f4b71Sopenharmony_ci sourceDensity: 98, 6316e41f4b71Sopenharmony_ci } 6317e41f4b71Sopenharmony_ci let imageSource: image.ImageSource = image.createImageSource(rawFile.buffer as ArrayBuffer, ops); 6318e41f4b71Sopenharmony_ci let commodityPixelMap: image.PixelMap = await imageSource.createPixelMap(); 6319e41f4b71Sopenharmony_ci let pictureObj: image.Picture = image.createPicture(commodityPixelMap); 6320e41f4b71Sopenharmony_ci let metadataType: image.MetadataType = image.MetadataType.EXIF_METADATA; 6321e41f4b71Sopenharmony_ci let metaData: image.Metadata | null = await pictureObj.getMetadata(metadataType); 6322e41f4b71Sopenharmony_ci if (metaData != null) { 6323e41f4b71Sopenharmony_ci await metaData.getProperties(["ImageWidth", "ImageLength"]).then((data2) => { 6324e41f4b71Sopenharmony_ci console.info('Get properties ',JSON.stringify(data2)); 6325e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 6326e41f4b71Sopenharmony_ci console.info('Get properties failed error.code: ' +JSON.stringify(error.code) + ' ,error.message:' + JSON.stringify(error.message)); 6327e41f4b71Sopenharmony_ci }); 6328e41f4b71Sopenharmony_ci } else { 6329e41f4b71Sopenharmony_ci console.info('Metadata is null.'); 6330e41f4b71Sopenharmony_ci } 6331e41f4b71Sopenharmony_ci} 6332e41f4b71Sopenharmony_ci``` 6333e41f4b71Sopenharmony_ci 6334e41f4b71Sopenharmony_ci### setProperties<sup>13+</sup> 6335e41f4b71Sopenharmony_ci 6336e41f4b71Sopenharmony_cisetProperties(records: Record\<string, string | null>): Promise\<void> 6337e41f4b71Sopenharmony_ci 6338e41f4b71Sopenharmony_ci批量设置图片元数据中的指定属性的值,用Promise形式不返回结果。 6339e41f4b71Sopenharmony_ci 6340e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 6341e41f4b71Sopenharmony_ci 6342e41f4b71Sopenharmony_ci**参数:** 6343e41f4b71Sopenharmony_ci 6344e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6345e41f4b71Sopenharmony_ci| ------- | ------------------------------ | ---- | ------------------------ | 6346e41f4b71Sopenharmony_ci| records | Record<string, string \| null> | 是 | 要修改的属性和值的数组。 | 6347e41f4b71Sopenharmony_ci 6348e41f4b71Sopenharmony_ci**返回值:** 6349e41f4b71Sopenharmony_ci 6350e41f4b71Sopenharmony_ci| 类型 | 说明 | 6351e41f4b71Sopenharmony_ci| -------------- | ------------------------------------- | 6352e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,如获取失败则返回错误码。 | 6353e41f4b71Sopenharmony_ci 6354e41f4b71Sopenharmony_ci**错误码:** 6355e41f4b71Sopenharmony_ci 6356e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 6357e41f4b71Sopenharmony_ci 6358e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6359e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 6360e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types;3.Parameter verification failed; | 6361e41f4b71Sopenharmony_ci| 7600202 | Unsupported metadata. Possible causes: 1. Unsupported metadata type. 2. The metadata type does not match the auxiliary picture type. | 6362e41f4b71Sopenharmony_ci 6363e41f4b71Sopenharmony_ci**示例:** 6364e41f4b71Sopenharmony_ci 6365e41f4b71Sopenharmony_ci```ts 6366e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6367e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 6368e41f4b71Sopenharmony_ci 6369e41f4b71Sopenharmony_ciasync function SetProperties() { 6370e41f4b71Sopenharmony_ci const context = getContext(); 6371e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 6372e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("exif.jpg"); //图片包含exif metadata 6373e41f4b71Sopenharmony_ci let ops: image.SourceOptions = { 6374e41f4b71Sopenharmony_ci sourceDensity: 98, 6375e41f4b71Sopenharmony_ci } 6376e41f4b71Sopenharmony_ci let imageSource: image.ImageSource = image.createImageSource(rawFile.buffer as ArrayBuffer, ops); 6377e41f4b71Sopenharmony_ci let commodityPixelMap: image.PixelMap = await imageSource.createPixelMap(); 6378e41f4b71Sopenharmony_ci let pictureObj: image.Picture = image.createPicture(commodityPixelMap); 6379e41f4b71Sopenharmony_ci let metadataType: image.MetadataType = image.MetadataType.EXIF_METADATA; 6380e41f4b71Sopenharmony_ci let metaData: image.Metadata | null = await pictureObj.getMetadata(metadataType); 6381e41f4b71Sopenharmony_ci if (metaData != null) { 6382e41f4b71Sopenharmony_ci let setkey: Record<string, string | null> = { 6383e41f4b71Sopenharmony_ci "ImageWidth": "200", 6384e41f4b71Sopenharmony_ci "ImageLength": "300" 6385e41f4b71Sopenharmony_ci }; 6386e41f4b71Sopenharmony_ci await metaData.setProperties(setkey).then(async () => { 6387e41f4b71Sopenharmony_ci console.info('Set auxpictureobj properties success.'); 6388e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 6389e41f4b71Sopenharmony_ci console.error('Failed to set metadata Properties. code is ${error.code}, message is ${error.message}'); 6390e41f4b71Sopenharmony_ci }) 6391e41f4b71Sopenharmony_ci } else { 6392e41f4b71Sopenharmony_ci console.info('AuxPictureObj metadata is null. '); 6393e41f4b71Sopenharmony_ci } 6394e41f4b71Sopenharmony_ci} 6395e41f4b71Sopenharmony_ci``` 6396e41f4b71Sopenharmony_ci 6397e41f4b71Sopenharmony_ci### getAllProperties<sup>13+</sup> 6398e41f4b71Sopenharmony_ci 6399e41f4b71Sopenharmony_cigetAllProperties(): Promise\<Record<string, string | null>> 6400e41f4b71Sopenharmony_ci 6401e41f4b71Sopenharmony_ci获取图片中所有元数据的属性和值,用Promise形式返回结果。 6402e41f4b71Sopenharmony_ci 6403e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 6404e41f4b71Sopenharmony_ci 6405e41f4b71Sopenharmony_ci**返回值:** 6406e41f4b71Sopenharmony_ci 6407e41f4b71Sopenharmony_ci| 类型 | 说明 | 6408e41f4b71Sopenharmony_ci| ---------------------------------------- | ------------------------------------------- | 6409e41f4b71Sopenharmony_ci| Promise\<Record<string, string \| null>> | Promise对象,返回元数据拥有的所有属性的值。 | 6410e41f4b71Sopenharmony_ci 6411e41f4b71Sopenharmony_ci**示例:** 6412e41f4b71Sopenharmony_ci 6413e41f4b71Sopenharmony_ci```ts 6414e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6415e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 6416e41f4b71Sopenharmony_ci 6417e41f4b71Sopenharmony_ciasync function GetAllProperties() { 6418e41f4b71Sopenharmony_ci const context = getContext(); 6419e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 6420e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("exif.jpg"); //图片包含exif metadata 6421e41f4b71Sopenharmony_ci let ops: image.SourceOptions = { 6422e41f4b71Sopenharmony_ci sourceDensity: 98, 6423e41f4b71Sopenharmony_ci } 6424e41f4b71Sopenharmony_ci let imageSource: image.ImageSource = image.createImageSource(rawFile.buffer as ArrayBuffer, ops); 6425e41f4b71Sopenharmony_ci let commodityPixelMap: image.PixelMap = await imageSource.createPixelMap(); 6426e41f4b71Sopenharmony_ci let pictureObj: image.Picture = image.createPicture(commodityPixelMap); 6427e41f4b71Sopenharmony_ci let metadataType: image.MetadataType = image.MetadataType.EXIF_METADATA; 6428e41f4b71Sopenharmony_ci let metaData: image.Metadata | null = await pictureObj.getMetadata(metadataType); 6429e41f4b71Sopenharmony_ci if (metaData != null) { 6430e41f4b71Sopenharmony_ci await metaData.getAllProperties().then((data2) => { 6431e41f4b71Sopenharmony_ci const count = Object.keys(data2).length; 6432e41f4b71Sopenharmony_ci console.info('Metadata have ', count, ' properties'); 6433e41f4b71Sopenharmony_ci console.info('Get metadata all properties: ', JSON.stringify(data2)); 6434e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 6435e41f4b71Sopenharmony_ci console.error('Get metadata all properties failed error.code: ' +JSON.stringify(error.code) + ' ,error.message:' + JSON.stringify(error.message)); 6436e41f4b71Sopenharmony_ci }); 6437e41f4b71Sopenharmony_ci } else { 6438e41f4b71Sopenharmony_ci console.info('Metadata is null.'); 6439e41f4b71Sopenharmony_ci } 6440e41f4b71Sopenharmony_ci} 6441e41f4b71Sopenharmony_ci``` 6442e41f4b71Sopenharmony_ci 6443e41f4b71Sopenharmony_ci### clone<sup>13+</sup> 6444e41f4b71Sopenharmony_ci 6445e41f4b71Sopenharmony_ciclone(): Promise\<Metadata> 6446e41f4b71Sopenharmony_ci 6447e41f4b71Sopenharmony_ci对元数据进行克隆,用Promise形式返回结果。 6448e41f4b71Sopenharmony_ci 6449e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 6450e41f4b71Sopenharmony_ci 6451e41f4b71Sopenharmony_ci**返回值:** 6452e41f4b71Sopenharmony_ci 6453e41f4b71Sopenharmony_ci| 类型 | 说明 | 6454e41f4b71Sopenharmony_ci| --------------------------------- | --------------------------------- | 6455e41f4b71Sopenharmony_ci| Promise\<[Metadata](#metadata13)> | Promise对象,成功返回元数据实例。 | 6456e41f4b71Sopenharmony_ci 6457e41f4b71Sopenharmony_ci**错误码:** 6458e41f4b71Sopenharmony_ci 6459e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 6460e41f4b71Sopenharmony_ci 6461e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6462e41f4b71Sopenharmony_ci| -------- | -------------------- | 6463e41f4b71Sopenharmony_ci| 7600301 | Memory alloc failed. | 6464e41f4b71Sopenharmony_ci| 7600302 | Memory copy failed. | 6465e41f4b71Sopenharmony_ci 6466e41f4b71Sopenharmony_ci**示例:** 6467e41f4b71Sopenharmony_ci 6468e41f4b71Sopenharmony_ci```ts 6469e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6470e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 6471e41f4b71Sopenharmony_ci 6472e41f4b71Sopenharmony_ciasync function clone() { 6473e41f4b71Sopenharmony_ci const context = getContext(); 6474e41f4b71Sopenharmony_ci const resourceMgr = context.resourceManager; 6475e41f4b71Sopenharmony_ci const rawFile = await resourceMgr.getRawFileContent("exif.jpg"); //图片包含exif metadata 6476e41f4b71Sopenharmony_ci let ops: image.SourceOptions = { 6477e41f4b71Sopenharmony_ci sourceDensity: 98, 6478e41f4b71Sopenharmony_ci } 6479e41f4b71Sopenharmony_ci let imageSource: image.ImageSource = image.createImageSource(rawFile.buffer as ArrayBuffer, ops); 6480e41f4b71Sopenharmony_ci let commodityPixelMap: image.PixelMap = await imageSource.createPixelMap(); 6481e41f4b71Sopenharmony_ci let pictureObj: image.Picture = image.createPicture(commodityPixelMap); 6482e41f4b71Sopenharmony_ci let metadataType: image.MetadataType = image.MetadataType.EXIF_METADATA; 6483e41f4b71Sopenharmony_ci let metaData: image.Metadata | null = await pictureObj.getMetadata(metadataType); 6484e41f4b71Sopenharmony_ci if (metaData != null) { 6485e41f4b71Sopenharmony_ci let new_metadata: image.Metadata = await metaData.clone(); 6486e41f4b71Sopenharmony_ci new_metadata.getProperties(["ImageWidth"]).then((data1) => { 6487e41f4b71Sopenharmony_ci console.info('Clone new_metadata and get Properties.', JSON.stringify(data1)); 6488e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 6489e41f4b71Sopenharmony_ci console.error('Clone new_metadata failed.', JSON.stringify(err)); 6490e41f4b71Sopenharmony_ci }); 6491e41f4b71Sopenharmony_ci } else { 6492e41f4b71Sopenharmony_ci console.info('Metadata is null.'); 6493e41f4b71Sopenharmony_ci } 6494e41f4b71Sopenharmony_ci} 6495e41f4b71Sopenharmony_ci``` 6496e41f4b71Sopenharmony_ci 6497e41f4b71Sopenharmony_ci## image.createImageReceiver<sup>11+</sup> 6498e41f4b71Sopenharmony_ci 6499e41f4b71Sopenharmony_cicreateImageReceiver(size: Size, format: ImageFormat, capacity: number): ImageReceiver 6500e41f4b71Sopenharmony_ci 6501e41f4b71Sopenharmony_ci通过图片大小、图片格式、容量创建ImageReceiver实例。 6502e41f4b71Sopenharmony_ci 6503e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6504e41f4b71Sopenharmony_ci 6505e41f4b71Sopenharmony_ci**参数:** 6506e41f4b71Sopenharmony_ci 6507e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6508e41f4b71Sopenharmony_ci| -------- | ------ | ---- | ---------------------- | 6509e41f4b71Sopenharmony_ci| size | [Size](#size) | 是 | 图像的默认大小。 | 6510e41f4b71Sopenharmony_ci| format | [ImageFormat](#imageformat9) | 是 | 图像格式,取值为[ImageFormat](#imageformat9)常量(目前仅支持 ImageFormat:JPEG,实际返回格式由生产者决定,如相机)。 | 6511e41f4b71Sopenharmony_ci| capacity | number | 是 | 同时访问的最大图像数。 | 6512e41f4b71Sopenharmony_ci 6513e41f4b71Sopenharmony_ci**返回值:** 6514e41f4b71Sopenharmony_ci 6515e41f4b71Sopenharmony_ci| 类型 | 说明 | 6516e41f4b71Sopenharmony_ci| -------------------------------- | --------------------------------------- | 6517e41f4b71Sopenharmony_ci| [ImageReceiver](#imagereceiver9) | 如果操作成功,则返回ImageReceiver实例。 | 6518e41f4b71Sopenharmony_ci 6519e41f4b71Sopenharmony_ci**错误码:** 6520e41f4b71Sopenharmony_ci 6521e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 6522e41f4b71Sopenharmony_ci 6523e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6524e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 6525e41f4b71Sopenharmony_ci| 401| Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types; | 6526e41f4b71Sopenharmony_ci 6527e41f4b71Sopenharmony_ci**示例:** 6528e41f4b71Sopenharmony_ci 6529e41f4b71Sopenharmony_ci```ts 6530e41f4b71Sopenharmony_cilet size: image.Size = { 6531e41f4b71Sopenharmony_ci height: 8192, 6532e41f4b71Sopenharmony_ci width: 8 6533e41f4b71Sopenharmony_ci} 6534e41f4b71Sopenharmony_cilet receiver: image.ImageReceiver = image.createImageReceiver(size, image.ImageFormat.JPEG, 8); 6535e41f4b71Sopenharmony_ci``` 6536e41f4b71Sopenharmony_ci 6537e41f4b71Sopenharmony_ci## image.createImageReceiver<sup>(deprecated)</sup> 6538e41f4b71Sopenharmony_ci 6539e41f4b71Sopenharmony_cicreateImageReceiver(width: number, height: number, format: number, capacity: number): ImageReceiver 6540e41f4b71Sopenharmony_ci 6541e41f4b71Sopenharmony_ci通过宽、高、图片格式、容量创建ImageReceiver实例。 6542e41f4b71Sopenharmony_ci 6543e41f4b71Sopenharmony_ci> **说明:** 6544e41f4b71Sopenharmony_ci> 6545e41f4b71Sopenharmony_ci> 从API version 11开始不再维护,建议使用[createImageReceiver](#imagecreateimagereceiver11)代替。 6546e41f4b71Sopenharmony_ci 6547e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6548e41f4b71Sopenharmony_ci 6549e41f4b71Sopenharmony_ci**参数:** 6550e41f4b71Sopenharmony_ci 6551e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6552e41f4b71Sopenharmony_ci| -------- | ------ | ---- | ---------------------- | 6553e41f4b71Sopenharmony_ci| width | number | 是 | 图像的默认宽度。 | 6554e41f4b71Sopenharmony_ci| height | number | 是 | 图像的默认高度。 | 6555e41f4b71Sopenharmony_ci| format | number | 是 | 图像格式,取值为[ImageFormat](#imageformat9)常量(目前仅支持 ImageFormat:JPEG,实际返回格式由生产者决定,如相机)。 | 6556e41f4b71Sopenharmony_ci| capacity | number | 是 | 同时访问的最大图像数。 | 6557e41f4b71Sopenharmony_ci 6558e41f4b71Sopenharmony_ci**返回值:** 6559e41f4b71Sopenharmony_ci 6560e41f4b71Sopenharmony_ci| 类型 | 说明 | 6561e41f4b71Sopenharmony_ci| -------------------------------- | --------------------------------------- | 6562e41f4b71Sopenharmony_ci| [ImageReceiver](#imagereceiver9) | 如果操作成功,则返回ImageReceiver实例。 | 6563e41f4b71Sopenharmony_ci 6564e41f4b71Sopenharmony_ci**示例:** 6565e41f4b71Sopenharmony_ci 6566e41f4b71Sopenharmony_ci```ts 6567e41f4b71Sopenharmony_cilet receiver: image.ImageReceiver = image.createImageReceiver(8192, 8, image.ImageFormat.JPEG, 8); 6568e41f4b71Sopenharmony_ci``` 6569e41f4b71Sopenharmony_ci 6570e41f4b71Sopenharmony_ci## ImageReceiver<sup>9+</sup> 6571e41f4b71Sopenharmony_ci 6572e41f4b71Sopenharmony_ci图像接收类,用于获取组件surface id,接收最新的图片和读取下一张图片,以及释放ImageReceiver实例。 6573e41f4b71Sopenharmony_ci 6574e41f4b71Sopenharmony_ci在调用以下方法前需要先创建ImageReceiver实例。 6575e41f4b71Sopenharmony_ci 6576e41f4b71Sopenharmony_ci### 属性 6577e41f4b71Sopenharmony_ci 6578e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6579e41f4b71Sopenharmony_ci 6580e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 6581e41f4b71Sopenharmony_ci| -------- | ---------------------------- | ---- | ---- | ------------------ | 6582e41f4b71Sopenharmony_ci| size | [Size](#size) | 是 | 否 | 图片大小。 | 6583e41f4b71Sopenharmony_ci| capacity | number | 是 | 否 | 同时访问的图像数。 | 6584e41f4b71Sopenharmony_ci| format | [ImageFormat](#imageformat9) | 是 | 否 | 图像格式。 | 6585e41f4b71Sopenharmony_ci 6586e41f4b71Sopenharmony_ci### getReceivingSurfaceId<sup>9+</sup> 6587e41f4b71Sopenharmony_ci 6588e41f4b71Sopenharmony_cigetReceivingSurfaceId(callback: AsyncCallback\<string>): void 6589e41f4b71Sopenharmony_ci 6590e41f4b71Sopenharmony_ci用于获取一个surface id供Camera或其他组件使用。使用callback返回结果。 6591e41f4b71Sopenharmony_ci 6592e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6593e41f4b71Sopenharmony_ci 6594e41f4b71Sopenharmony_ci**参数:** 6595e41f4b71Sopenharmony_ci 6596e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6597e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | -------------------------- | 6598e41f4b71Sopenharmony_ci| callback | AsyncCallback\<string> | 是 | 回调函数,当获取surface id成功,err为undefined,data为获取到的surface id;否则为错误对象。 | 6599e41f4b71Sopenharmony_ci 6600e41f4b71Sopenharmony_ci**示例:** 6601e41f4b71Sopenharmony_ci 6602e41f4b71Sopenharmony_ci```ts 6603e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6604e41f4b71Sopenharmony_ci 6605e41f4b71Sopenharmony_cireceiver.getReceivingSurfaceId((err: BusinessError, id: string) => { 6606e41f4b71Sopenharmony_ci if (err) { 6607e41f4b71Sopenharmony_ci console.error(`Failed to get the ReceivingSurfaceId.code ${err.code},message is ${err.message}`); 6608e41f4b71Sopenharmony_ci } else { 6609e41f4b71Sopenharmony_ci console.info('Succeeded in getting the ReceivingSurfaceId.'); 6610e41f4b71Sopenharmony_ci } 6611e41f4b71Sopenharmony_ci}); 6612e41f4b71Sopenharmony_ci``` 6613e41f4b71Sopenharmony_ci 6614e41f4b71Sopenharmony_ci### getReceivingSurfaceId<sup>9+</sup> 6615e41f4b71Sopenharmony_ci 6616e41f4b71Sopenharmony_cigetReceivingSurfaceId(): Promise\<string> 6617e41f4b71Sopenharmony_ci 6618e41f4b71Sopenharmony_ci用于获取一个surface id供Camera或其他组件使用。使用promise返回结果。 6619e41f4b71Sopenharmony_ci 6620e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6621e41f4b71Sopenharmony_ci 6622e41f4b71Sopenharmony_ci**返回值:** 6623e41f4b71Sopenharmony_ci 6624e41f4b71Sopenharmony_ci| 类型 | 说明 | 6625e41f4b71Sopenharmony_ci| ---------------- | -------------------- | 6626e41f4b71Sopenharmony_ci| Promise\<string> | Promise对象,返回surface id。 | 6627e41f4b71Sopenharmony_ci 6628e41f4b71Sopenharmony_ci**示例:** 6629e41f4b71Sopenharmony_ci 6630e41f4b71Sopenharmony_ci```ts 6631e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6632e41f4b71Sopenharmony_ci 6633e41f4b71Sopenharmony_cireceiver.getReceivingSurfaceId().then((id: string) => { 6634e41f4b71Sopenharmony_ci console.info('Succeeded in getting the ReceivingSurfaceId.'); 6635e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 6636e41f4b71Sopenharmony_ci console.error(`Failed to get the ReceivingSurfaceId.code ${error.code},message is ${error.message}`); 6637e41f4b71Sopenharmony_ci}) 6638e41f4b71Sopenharmony_ci``` 6639e41f4b71Sopenharmony_ci 6640e41f4b71Sopenharmony_ci### readLatestImage<sup>9+</sup> 6641e41f4b71Sopenharmony_ci 6642e41f4b71Sopenharmony_cireadLatestImage(callback: AsyncCallback\<Image>): void 6643e41f4b71Sopenharmony_ci 6644e41f4b71Sopenharmony_ci从ImageReceiver读取最新的图片,并使用callback返回结果。 6645e41f4b71Sopenharmony_ci 6646e41f4b71Sopenharmony_ci**注意**:此接口返回的[Image](#image9)对象使用完毕后需要调用[release](#release9-4)方法释放,释放后才可以继续接收新的数据。 6647e41f4b71Sopenharmony_ci 6648e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6649e41f4b71Sopenharmony_ci 6650e41f4b71Sopenharmony_ci**参数:** 6651e41f4b71Sopenharmony_ci 6652e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6653e41f4b71Sopenharmony_ci| -------- | ------------------------------- | ---- | ------------------------ | 6654e41f4b71Sopenharmony_ci| callback | AsyncCallback<[Image](#image9)> | 是 | 回调函数,当读取最新图片成功,err为undefined,data为获取到的最新图片;否则为错误对象。 | 6655e41f4b71Sopenharmony_ci 6656e41f4b71Sopenharmony_ci**示例:** 6657e41f4b71Sopenharmony_ci 6658e41f4b71Sopenharmony_ci```ts 6659e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6660e41f4b71Sopenharmony_ci 6661e41f4b71Sopenharmony_cireceiver.readLatestImage((err: BusinessError, img: image.Image) => { 6662e41f4b71Sopenharmony_ci if (err) { 6663e41f4b71Sopenharmony_ci console.error(`Failed to read the latest Image.code ${err.code},message is ${err.message}`); 6664e41f4b71Sopenharmony_ci } else { 6665e41f4b71Sopenharmony_ci console.info('Succeeded in reading the latest Image.'); 6666e41f4b71Sopenharmony_ci } 6667e41f4b71Sopenharmony_ci}); 6668e41f4b71Sopenharmony_ci``` 6669e41f4b71Sopenharmony_ci 6670e41f4b71Sopenharmony_ci### readLatestImage<sup>9+</sup> 6671e41f4b71Sopenharmony_ci 6672e41f4b71Sopenharmony_cireadLatestImage(): Promise\<Image> 6673e41f4b71Sopenharmony_ci 6674e41f4b71Sopenharmony_ci从ImageReceiver读取最新的图片,并使用promise返回结果。 6675e41f4b71Sopenharmony_ci 6676e41f4b71Sopenharmony_ci**注意**:此接口返回的[Image](#image9)对象使用完毕后需要调用[release](#release9-4)方法释放,释放后才可以继续接收新的数据。 6677e41f4b71Sopenharmony_ci 6678e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6679e41f4b71Sopenharmony_ci 6680e41f4b71Sopenharmony_ci**返回值:** 6681e41f4b71Sopenharmony_ci 6682e41f4b71Sopenharmony_ci| 类型 | 说明 | 6683e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 6684e41f4b71Sopenharmony_ci| Promise<[Image](#image9)> | Promise对象,返回最新图片。 | 6685e41f4b71Sopenharmony_ci 6686e41f4b71Sopenharmony_ci**示例:** 6687e41f4b71Sopenharmony_ci 6688e41f4b71Sopenharmony_ci```ts 6689e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6690e41f4b71Sopenharmony_ci 6691e41f4b71Sopenharmony_cireceiver.readLatestImage().then((img: image.Image) => { 6692e41f4b71Sopenharmony_ci console.info('Succeeded in reading the latest Image.'); 6693e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 6694e41f4b71Sopenharmony_ci console.error(`Failed to read the latest Image.code ${error.code},message is ${error.message}`); 6695e41f4b71Sopenharmony_ci}) 6696e41f4b71Sopenharmony_ci``` 6697e41f4b71Sopenharmony_ci 6698e41f4b71Sopenharmony_ci### readNextImage<sup>9+</sup> 6699e41f4b71Sopenharmony_ci 6700e41f4b71Sopenharmony_cireadNextImage(callback: AsyncCallback\<Image>): void 6701e41f4b71Sopenharmony_ci 6702e41f4b71Sopenharmony_ci从ImageReceiver读取下一张图片,并使用callback返回结果。 6703e41f4b71Sopenharmony_ci 6704e41f4b71Sopenharmony_ci**注意**:此接口返回的[Image](#image9)对象使用完毕后需要调用[release](#release9-4)方法释放,释放后才可以继续接收新的数据。 6705e41f4b71Sopenharmony_ci 6706e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6707e41f4b71Sopenharmony_ci 6708e41f4b71Sopenharmony_ci**参数:** 6709e41f4b71Sopenharmony_ci 6710e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6711e41f4b71Sopenharmony_ci| -------- | ------------------------------- | ---- | -------------------------- | 6712e41f4b71Sopenharmony_ci| callback | AsyncCallback<[Image](#image9)> | 是 | 回调函数,当获取下一张图片成功,err为undefined,data为获取到的下一张图片;否则为错误对象。 | 6713e41f4b71Sopenharmony_ci 6714e41f4b71Sopenharmony_ci**示例:** 6715e41f4b71Sopenharmony_ci 6716e41f4b71Sopenharmony_ci```ts 6717e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6718e41f4b71Sopenharmony_ci 6719e41f4b71Sopenharmony_cireceiver.readNextImage((err: BusinessError, img: image.Image) => { 6720e41f4b71Sopenharmony_ci if (err) { 6721e41f4b71Sopenharmony_ci console.error(`Failed to read the next Image.code ${err.code},message is ${err.message}`); 6722e41f4b71Sopenharmony_ci } else { 6723e41f4b71Sopenharmony_ci console.info('Succeeded in reading the next Image.'); 6724e41f4b71Sopenharmony_ci } 6725e41f4b71Sopenharmony_ci}); 6726e41f4b71Sopenharmony_ci``` 6727e41f4b71Sopenharmony_ci 6728e41f4b71Sopenharmony_ci### readNextImage<sup>9+</sup> 6729e41f4b71Sopenharmony_ci 6730e41f4b71Sopenharmony_cireadNextImage(): Promise\<Image> 6731e41f4b71Sopenharmony_ci 6732e41f4b71Sopenharmony_ci从ImageReceiver读取下一张图片,并使用promise返回结果。 6733e41f4b71Sopenharmony_ci 6734e41f4b71Sopenharmony_ci**注意**:此接口返回的[Image](#image9)对象使用完毕后需要调用[release](#release9-4)方法释放,释放后才可以继续接收新的数据。 6735e41f4b71Sopenharmony_ci 6736e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6737e41f4b71Sopenharmony_ci 6738e41f4b71Sopenharmony_ci**返回值:** 6739e41f4b71Sopenharmony_ci 6740e41f4b71Sopenharmony_ci| 类型 | 说明 | 6741e41f4b71Sopenharmony_ci| ------------------------- | -------------------- | 6742e41f4b71Sopenharmony_ci| Promise<[Image](#image9)> | Promise对象,返回下一张图片。 | 6743e41f4b71Sopenharmony_ci 6744e41f4b71Sopenharmony_ci**示例:** 6745e41f4b71Sopenharmony_ci 6746e41f4b71Sopenharmony_ci```ts 6747e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6748e41f4b71Sopenharmony_ci 6749e41f4b71Sopenharmony_cireceiver.readNextImage().then((img: image.Image) => { 6750e41f4b71Sopenharmony_ci console.info('Succeeded in reading the next Image.'); 6751e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 6752e41f4b71Sopenharmony_ci console.error(`Failed to read the next Image.code ${error.code},message is ${error.message}`); 6753e41f4b71Sopenharmony_ci}) 6754e41f4b71Sopenharmony_ci``` 6755e41f4b71Sopenharmony_ci 6756e41f4b71Sopenharmony_ci### on<sup>9+</sup> 6757e41f4b71Sopenharmony_ci 6758e41f4b71Sopenharmony_cion(type: 'imageArrival', callback: AsyncCallback\<void>): void 6759e41f4b71Sopenharmony_ci 6760e41f4b71Sopenharmony_ci接收图片时注册回调。 6761e41f4b71Sopenharmony_ci 6762e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6763e41f4b71Sopenharmony_ci 6764e41f4b71Sopenharmony_ci**参数:** 6765e41f4b71Sopenharmony_ci 6766e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6767e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------------------------------ | 6768e41f4b71Sopenharmony_ci| type | string | 是 | 注册事件的类型,固定为'imageArrival',接收图片时触发。 | 6769e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当注册事件触发成功,err为undefined,否则为错误对象。 | 6770e41f4b71Sopenharmony_ci 6771e41f4b71Sopenharmony_ci**示例:** 6772e41f4b71Sopenharmony_ci 6773e41f4b71Sopenharmony_ci```ts 6774e41f4b71Sopenharmony_cireceiver.on('imageArrival', () => { 6775e41f4b71Sopenharmony_ci // image arrival, do something. 6776e41f4b71Sopenharmony_ci}) 6777e41f4b71Sopenharmony_ci``` 6778e41f4b71Sopenharmony_ci 6779e41f4b71Sopenharmony_ci### release<sup>9+</sup> 6780e41f4b71Sopenharmony_ci 6781e41f4b71Sopenharmony_cirelease(callback: AsyncCallback\<void>): void 6782e41f4b71Sopenharmony_ci 6783e41f4b71Sopenharmony_ci释放ImageReceiver实例并使用回调返回结果。 6784e41f4b71Sopenharmony_ci 6785e41f4b71Sopenharmony_ciArkTS有内存回收机制,ImageReceiver对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 6786e41f4b71Sopenharmony_ci 6787e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6788e41f4b71Sopenharmony_ci 6789e41f4b71Sopenharmony_ci**参数:** 6790e41f4b71Sopenharmony_ci 6791e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6792e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------ | 6793e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当释放ImageReceiver实例成功,err为undefined,否则为错误对象。 | 6794e41f4b71Sopenharmony_ci 6795e41f4b71Sopenharmony_ci**示例:** 6796e41f4b71Sopenharmony_ci 6797e41f4b71Sopenharmony_ci```ts 6798e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6799e41f4b71Sopenharmony_ci 6800e41f4b71Sopenharmony_cireceiver.release((err: BusinessError) => { 6801e41f4b71Sopenharmony_ci if (err) { 6802e41f4b71Sopenharmony_ci console.error(`Failed to release the receiver.code ${err.code},message is ${err.message}`); 6803e41f4b71Sopenharmony_ci } else { 6804e41f4b71Sopenharmony_ci console.info('Succeeded in releasing the receiver.'); 6805e41f4b71Sopenharmony_ci } 6806e41f4b71Sopenharmony_ci}) 6807e41f4b71Sopenharmony_ci``` 6808e41f4b71Sopenharmony_ci 6809e41f4b71Sopenharmony_ci### release<sup>9+</sup> 6810e41f4b71Sopenharmony_ci 6811e41f4b71Sopenharmony_cirelease(): Promise\<void> 6812e41f4b71Sopenharmony_ci 6813e41f4b71Sopenharmony_ci释放ImageReceiver实例并使用promise返回结果。 6814e41f4b71Sopenharmony_ci 6815e41f4b71Sopenharmony_ciArkTS有内存回收机制,ImageReceiver对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 6816e41f4b71Sopenharmony_ci 6817e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 6818e41f4b71Sopenharmony_ci 6819e41f4b71Sopenharmony_ci**返回值:** 6820e41f4b71Sopenharmony_ci 6821e41f4b71Sopenharmony_ci| 类型 | 说明 | 6822e41f4b71Sopenharmony_ci| -------------- | ------------------ | 6823e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 6824e41f4b71Sopenharmony_ci 6825e41f4b71Sopenharmony_ci**示例:** 6826e41f4b71Sopenharmony_ci 6827e41f4b71Sopenharmony_ci```ts 6828e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6829e41f4b71Sopenharmony_ci 6830e41f4b71Sopenharmony_cireceiver.release().then(() => { 6831e41f4b71Sopenharmony_ci console.info('Succeeded in releasing the receiver.'); 6832e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 6833e41f4b71Sopenharmony_ci console.error(`Failed to release the receiver.code ${error.code},message is ${error.message}`); 6834e41f4b71Sopenharmony_ci}) 6835e41f4b71Sopenharmony_ci``` 6836e41f4b71Sopenharmony_ci 6837e41f4b71Sopenharmony_ci## image.createImageCreator<sup>11+</sup> 6838e41f4b71Sopenharmony_ci 6839e41f4b71Sopenharmony_cicreateImageCreator(size: Size, format: ImageFormat, capacity: number): ImageCreator 6840e41f4b71Sopenharmony_ci 6841e41f4b71Sopenharmony_ci通过图片大小、图片格式、容量创建ImageCreator实例。 6842e41f4b71Sopenharmony_ci 6843e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageCreator 6844e41f4b71Sopenharmony_ci 6845e41f4b71Sopenharmony_ci**参数:** 6846e41f4b71Sopenharmony_ci 6847e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6848e41f4b71Sopenharmony_ci| -------- | ------ | ---- | ---------------------- | 6849e41f4b71Sopenharmony_ci| size | [Size](#size) | 是 | 图像的默认大小。 | 6850e41f4b71Sopenharmony_ci| format | [ImageFormat](#imageformat9) | 是 | 图像格式,如YCBCR_422_SP,JPEG。 | 6851e41f4b71Sopenharmony_ci| capacity | number | 是 | 同时访问的最大图像数。 | 6852e41f4b71Sopenharmony_ci 6853e41f4b71Sopenharmony_ci**返回值:** 6854e41f4b71Sopenharmony_ci 6855e41f4b71Sopenharmony_ci| 类型 | 说明 | 6856e41f4b71Sopenharmony_ci| ------------------------------ | --------------------------------------- | 6857e41f4b71Sopenharmony_ci| [ImageCreator](#imagecreator9) | 如果操作成功,则返回ImageCreator实例。 | 6858e41f4b71Sopenharmony_ci 6859e41f4b71Sopenharmony_ci 6860e41f4b71Sopenharmony_ci**错误码:** 6861e41f4b71Sopenharmony_ci 6862e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Image错误码](errorcode-image.md)。 6863e41f4b71Sopenharmony_ci 6864e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6865e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 6866e41f4b71Sopenharmony_ci| 401| Parameter error.Possible causes:1.Mandatory parameters are left unspecified;2.Incorrect parameter types; | 6867e41f4b71Sopenharmony_ci 6868e41f4b71Sopenharmony_ci**示例:** 6869e41f4b71Sopenharmony_ci 6870e41f4b71Sopenharmony_ci```ts 6871e41f4b71Sopenharmony_cilet size: image.Size = { 6872e41f4b71Sopenharmony_ci height: 8192, 6873e41f4b71Sopenharmony_ci width: 8 6874e41f4b71Sopenharmony_ci} 6875e41f4b71Sopenharmony_cilet creator: image.ImageCreator = image.createImageCreator(size, image.ImageFormat.JPEG, 8); 6876e41f4b71Sopenharmony_ci``` 6877e41f4b71Sopenharmony_ci 6878e41f4b71Sopenharmony_ci## image.createImageCreator<sup>(deprecated)</sup> 6879e41f4b71Sopenharmony_ci 6880e41f4b71Sopenharmony_cicreateImageCreator(width: number, height: number, format: number, capacity: number): ImageCreator 6881e41f4b71Sopenharmony_ci 6882e41f4b71Sopenharmony_ci通过宽、高、图片格式、容量创建ImageCreator实例。 6883e41f4b71Sopenharmony_ci 6884e41f4b71Sopenharmony_ci> **说明:** 6885e41f4b71Sopenharmony_ci> 6886e41f4b71Sopenharmony_ci> 从API version 11开始不再维护,建议使用[createImageCreator](#imagecreateimagecreator11)代替。 6887e41f4b71Sopenharmony_ci 6888e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageCreator 6889e41f4b71Sopenharmony_ci 6890e41f4b71Sopenharmony_ci**参数:** 6891e41f4b71Sopenharmony_ci 6892e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6893e41f4b71Sopenharmony_ci| -------- | ------ | ---- | ---------------------- | 6894e41f4b71Sopenharmony_ci| width | number | 是 | 图像的默认宽度。 | 6895e41f4b71Sopenharmony_ci| height | number | 是 | 图像的默认高度。 | 6896e41f4b71Sopenharmony_ci| format | number | 是 | 图像格式,如YCBCR_422_SP,JPEG。 | 6897e41f4b71Sopenharmony_ci| capacity | number | 是 | 同时访问的最大图像数。 | 6898e41f4b71Sopenharmony_ci 6899e41f4b71Sopenharmony_ci**返回值:** 6900e41f4b71Sopenharmony_ci 6901e41f4b71Sopenharmony_ci| 类型 | 说明 | 6902e41f4b71Sopenharmony_ci| ------------------------------ | --------------------------------------- | 6903e41f4b71Sopenharmony_ci| [ImageCreator](#imagecreator9) | 如果操作成功,则返回ImageCreator实例。 | 6904e41f4b71Sopenharmony_ci 6905e41f4b71Sopenharmony_ci**示例:** 6906e41f4b71Sopenharmony_ci 6907e41f4b71Sopenharmony_ci```ts 6908e41f4b71Sopenharmony_cilet creator: image.ImageCreator = image.createImageCreator(8192, 8, image.ImageFormat.JPEG, 8); 6909e41f4b71Sopenharmony_ci``` 6910e41f4b71Sopenharmony_ci 6911e41f4b71Sopenharmony_ci## ImageCreator<sup>9+</sup> 6912e41f4b71Sopenharmony_ci 6913e41f4b71Sopenharmony_ci图像创建模块,用于请求图像原生数据区域,并开放给应用编译原生图像数据的能力。 6914e41f4b71Sopenharmony_ci在调用以下方法前需要先创建[ImageCreator](#imagecreator9)实例,ImageCreator不支持多线程。 6915e41f4b71Sopenharmony_ci 6916e41f4b71Sopenharmony_ci### 属性 6917e41f4b71Sopenharmony_ci 6918e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageCreator 6919e41f4b71Sopenharmony_ci 6920e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 6921e41f4b71Sopenharmony_ci| -------- | ---------------------------- | ---- | ---- | ------------------ | 6922e41f4b71Sopenharmony_ci| capacity | number | 是 | 否 | 同时访问的图像数。 | 6923e41f4b71Sopenharmony_ci| format | [ImageFormat](#imageformat9) | 是 | 否 | 图像格式。 | 6924e41f4b71Sopenharmony_ci 6925e41f4b71Sopenharmony_ci### dequeueImage<sup>9+</sup> 6926e41f4b71Sopenharmony_ci 6927e41f4b71Sopenharmony_cidequeueImage(callback: AsyncCallback\<Image>): void 6928e41f4b71Sopenharmony_ci 6929e41f4b71Sopenharmony_ci从空闲队列中获取buffer图片,用于绘制UI内容,并使用callback返回结果。 6930e41f4b71Sopenharmony_ci 6931e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageCreator 6932e41f4b71Sopenharmony_ci 6933e41f4b71Sopenharmony_ci**参数:** 6934e41f4b71Sopenharmony_ci 6935e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6936e41f4b71Sopenharmony_ci| ------------- | ---------------------------------------| ---- | -------------------- | 6937e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[Image](#image9)> | 是 | 回调函数,当获取最新图片成功,err为undefined,data为获取到的最新图片;否则为错误对象。 | 6938e41f4b71Sopenharmony_ci 6939e41f4b71Sopenharmony_ci**示例:** 6940e41f4b71Sopenharmony_ci 6941e41f4b71Sopenharmony_ci```ts 6942e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6943e41f4b71Sopenharmony_ci 6944e41f4b71Sopenharmony_cicreator.dequeueImage((err: BusinessError, img: image.Image) => { 6945e41f4b71Sopenharmony_ci if (err) { 6946e41f4b71Sopenharmony_ci console.error(`Failed to dequeue the Image.code ${err.code},message is ${err.message}`); 6947e41f4b71Sopenharmony_ci } else { 6948e41f4b71Sopenharmony_ci console.info('Succeeded in dequeuing the Image.'); 6949e41f4b71Sopenharmony_ci } 6950e41f4b71Sopenharmony_ci}); 6951e41f4b71Sopenharmony_ci``` 6952e41f4b71Sopenharmony_ci 6953e41f4b71Sopenharmony_ci### dequeueImage<sup>9+</sup> 6954e41f4b71Sopenharmony_ci 6955e41f4b71Sopenharmony_cidequeueImage(): Promise\<Image> 6956e41f4b71Sopenharmony_ci 6957e41f4b71Sopenharmony_ci从空闲队列中获取buffer图片,用于绘制UI内容,并使用promise返回结果。 6958e41f4b71Sopenharmony_ci 6959e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageCreator 6960e41f4b71Sopenharmony_ci 6961e41f4b71Sopenharmony_ci**返回值:** 6962e41f4b71Sopenharmony_ci 6963e41f4b71Sopenharmony_ci| 类型 | 说明 | 6964e41f4b71Sopenharmony_ci| --------------- | ------------- | 6965e41f4b71Sopenharmony_ci| Promise\<[Image](#image9)> | Promise对象,返回最新图片。 | 6966e41f4b71Sopenharmony_ci 6967e41f4b71Sopenharmony_ci**示例:** 6968e41f4b71Sopenharmony_ci 6969e41f4b71Sopenharmony_ci```ts 6970e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6971e41f4b71Sopenharmony_ci 6972e41f4b71Sopenharmony_cicreator.dequeueImage().then((img: image.Image) => { 6973e41f4b71Sopenharmony_ci console.info('Succeeded in dequeuing the Image.'); 6974e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 6975e41f4b71Sopenharmony_ci console.error(`Failed to dequeue the Image.code ${error.code},message is ${error.message}`); 6976e41f4b71Sopenharmony_ci}) 6977e41f4b71Sopenharmony_ci``` 6978e41f4b71Sopenharmony_ci 6979e41f4b71Sopenharmony_ci### queueImage<sup>9+</sup> 6980e41f4b71Sopenharmony_ci 6981e41f4b71Sopenharmony_ciqueueImage(interface: Image, callback: AsyncCallback\<void>): void 6982e41f4b71Sopenharmony_ci 6983e41f4b71Sopenharmony_ci将绘制好的图片放入Dirty队列,并使用callback返回结果。 6984e41f4b71Sopenharmony_ci 6985e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageCreator 6986e41f4b71Sopenharmony_ci 6987e41f4b71Sopenharmony_ci**参数:** 6988e41f4b71Sopenharmony_ci 6989e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6990e41f4b71Sopenharmony_ci| ------------- | -------------------------| ---- | -------------------- | 6991e41f4b71Sopenharmony_ci| interface | [Image](#image9) | 是 | 绘制好的buffer图像。 | 6992e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当将图片放入Dirty队列成功,err为undefined,否则为错误对象。 | 6993e41f4b71Sopenharmony_ci 6994e41f4b71Sopenharmony_ci**示例:** 6995e41f4b71Sopenharmony_ci 6996e41f4b71Sopenharmony_ci```ts 6997e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6998e41f4b71Sopenharmony_ci 6999e41f4b71Sopenharmony_cicreator.dequeueImage().then((img: image.Image) => { 7000e41f4b71Sopenharmony_ci //绘制图片 7001e41f4b71Sopenharmony_ci img.getComponent(4).then((component : image.Component) => { 7002e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(component.byteBuffer); 7003e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i += 4) { 7004e41f4b71Sopenharmony_ci bufferArr[i] = 0; //B 7005e41f4b71Sopenharmony_ci bufferArr[i + 1] = 0; //G 7006e41f4b71Sopenharmony_ci bufferArr[i + 2] = 255; //R 7007e41f4b71Sopenharmony_ci bufferArr[i + 3] = 255; //A 7008e41f4b71Sopenharmony_ci } 7009e41f4b71Sopenharmony_ci }) 7010e41f4b71Sopenharmony_ci creator.queueImage(img, (err: BusinessError) => { 7011e41f4b71Sopenharmony_ci if (err) { 7012e41f4b71Sopenharmony_ci console.error(`Failed to queue the Image.code ${err.code},message is ${err.message}`); 7013e41f4b71Sopenharmony_ci } else { 7014e41f4b71Sopenharmony_ci console.info('Succeeded in queuing the Image.'); 7015e41f4b71Sopenharmony_ci } 7016e41f4b71Sopenharmony_ci }) 7017e41f4b71Sopenharmony_ci}) 7018e41f4b71Sopenharmony_ci 7019e41f4b71Sopenharmony_ci``` 7020e41f4b71Sopenharmony_ci 7021e41f4b71Sopenharmony_ci### queueImage<sup>9+</sup> 7022e41f4b71Sopenharmony_ci 7023e41f4b71Sopenharmony_ciqueueImage(interface: Image): Promise\<void> 7024e41f4b71Sopenharmony_ci 7025e41f4b71Sopenharmony_ci将绘制好的图片放入Dirty队列,并使用promise返回结果。 7026e41f4b71Sopenharmony_ci 7027e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageCreator 7028e41f4b71Sopenharmony_ci 7029e41f4b71Sopenharmony_ci**参数:** 7030e41f4b71Sopenharmony_ci 7031e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7032e41f4b71Sopenharmony_ci| ------------- | --------| ---- | ------------------- | 7033e41f4b71Sopenharmony_ci| interface | [Image](#image9) | 是 | 绘制好的buffer图像。 | 7034e41f4b71Sopenharmony_ci 7035e41f4b71Sopenharmony_ci**返回值:** 7036e41f4b71Sopenharmony_ci 7037e41f4b71Sopenharmony_ci| 类型 | 说明 | 7038e41f4b71Sopenharmony_ci| -------------- | ------------- | 7039e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 7040e41f4b71Sopenharmony_ci 7041e41f4b71Sopenharmony_ci**示例:** 7042e41f4b71Sopenharmony_ci 7043e41f4b71Sopenharmony_ci```ts 7044e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7045e41f4b71Sopenharmony_ci 7046e41f4b71Sopenharmony_cicreator.dequeueImage().then((img: image.Image) => { 7047e41f4b71Sopenharmony_ci //绘制图片 7048e41f4b71Sopenharmony_ci img.getComponent(4).then((component: image.Component) => { 7049e41f4b71Sopenharmony_ci let bufferArr: Uint8Array = new Uint8Array(component.byteBuffer); 7050e41f4b71Sopenharmony_ci for (let i = 0; i < bufferArr.length; i += 4) { 7051e41f4b71Sopenharmony_ci bufferArr[i] = 0; //B 7052e41f4b71Sopenharmony_ci bufferArr[i + 1] = 0; //G 7053e41f4b71Sopenharmony_ci bufferArr[i + 2] = 255; //R 7054e41f4b71Sopenharmony_ci bufferArr[i + 3] = 255; //A 7055e41f4b71Sopenharmony_ci } 7056e41f4b71Sopenharmony_ci }) 7057e41f4b71Sopenharmony_ci creator.queueImage(img).then(() => { 7058e41f4b71Sopenharmony_ci console.info('Succeeded in queuing the Image.'); 7059e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 7060e41f4b71Sopenharmony_ci console.error(`Failed to queue the Image.code ${error.code},message is ${error.message}`); 7061e41f4b71Sopenharmony_ci }) 7062e41f4b71Sopenharmony_ci}) 7063e41f4b71Sopenharmony_ci 7064e41f4b71Sopenharmony_ci``` 7065e41f4b71Sopenharmony_ci 7066e41f4b71Sopenharmony_ci### on<sup>9+</sup> 7067e41f4b71Sopenharmony_ci 7068e41f4b71Sopenharmony_cion(type: 'imageRelease', callback: AsyncCallback\<void>): void 7069e41f4b71Sopenharmony_ci 7070e41f4b71Sopenharmony_ci监听imageRelease事件,并使用callback返回结果。 7071e41f4b71Sopenharmony_ci 7072e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageCreator 7073e41f4b71Sopenharmony_ci 7074e41f4b71Sopenharmony_ci**参数:** 7075e41f4b71Sopenharmony_ci 7076e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7077e41f4b71Sopenharmony_ci| ------------- | -------------------------| ---- | -------------------- | 7078e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件类型,如'imageRelease'。 | 7079e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当监听事件触发成功,err为undefined,否则为错误对象。 | 7080e41f4b71Sopenharmony_ci 7081e41f4b71Sopenharmony_ci**示例:** 7082e41f4b71Sopenharmony_ci 7083e41f4b71Sopenharmony_ci```ts 7084e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7085e41f4b71Sopenharmony_ci 7086e41f4b71Sopenharmony_cicreator.on('imageRelease', (err: BusinessError) => { 7087e41f4b71Sopenharmony_ci if (err) { 7088e41f4b71Sopenharmony_ci console.error(`Failed to get the imageRelease callback.code ${err.code},message is ${err.message}`); 7089e41f4b71Sopenharmony_ci } else { 7090e41f4b71Sopenharmony_ci console.info('Succeeded in getting imageRelease callback.'); 7091e41f4b71Sopenharmony_ci } 7092e41f4b71Sopenharmony_ci}) 7093e41f4b71Sopenharmony_ci``` 7094e41f4b71Sopenharmony_ci 7095e41f4b71Sopenharmony_ci### release<sup>9+</sup> 7096e41f4b71Sopenharmony_ci 7097e41f4b71Sopenharmony_cirelease(callback: AsyncCallback\<void>): void 7098e41f4b71Sopenharmony_ci 7099e41f4b71Sopenharmony_ci释放当前图像,并使用callback返回结果。 7100e41f4b71Sopenharmony_ci 7101e41f4b71Sopenharmony_ciArkTS有内存回收机制,ImageCreator对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 7102e41f4b71Sopenharmony_ci 7103e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageCreator 7104e41f4b71Sopenharmony_ci 7105e41f4b71Sopenharmony_ci**参数:** 7106e41f4b71Sopenharmony_ci 7107e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7108e41f4b71Sopenharmony_ci| ------------- | -------------------------| ---- | -------------------- | 7109e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当图像释放成功,err为undefined,否则为错误对象。 | 7110e41f4b71Sopenharmony_ci 7111e41f4b71Sopenharmony_ci**示例:** 7112e41f4b71Sopenharmony_ci 7113e41f4b71Sopenharmony_ci```ts 7114e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7115e41f4b71Sopenharmony_ci 7116e41f4b71Sopenharmony_cicreator.release((err: BusinessError) => { 7117e41f4b71Sopenharmony_ci if (err) { 7118e41f4b71Sopenharmony_ci console.error(`Failed to release the creator.code ${err.code},message is ${err.message}`); 7119e41f4b71Sopenharmony_ci } else { 7120e41f4b71Sopenharmony_ci console.info('Succeeded in releasing creator.'); 7121e41f4b71Sopenharmony_ci } 7122e41f4b71Sopenharmony_ci}); 7123e41f4b71Sopenharmony_ci``` 7124e41f4b71Sopenharmony_ci### release<sup>9+</sup> 7125e41f4b71Sopenharmony_ci 7126e41f4b71Sopenharmony_cirelease(): Promise\<void> 7127e41f4b71Sopenharmony_ci 7128e41f4b71Sopenharmony_ci释放当前图像,并使用promise返回结果。 7129e41f4b71Sopenharmony_ci 7130e41f4b71Sopenharmony_ciArkTS有内存回收机制,ImageCreator对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 7131e41f4b71Sopenharmony_ci 7132e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageCreator 7133e41f4b71Sopenharmony_ci 7134e41f4b71Sopenharmony_ci**返回值:** 7135e41f4b71Sopenharmony_ci 7136e41f4b71Sopenharmony_ci| 类型 | 说明 | 7137e41f4b71Sopenharmony_ci| -------------- | ------------- | 7138e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 7139e41f4b71Sopenharmony_ci 7140e41f4b71Sopenharmony_ci**示例:** 7141e41f4b71Sopenharmony_ci 7142e41f4b71Sopenharmony_ci```ts 7143e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7144e41f4b71Sopenharmony_ci 7145e41f4b71Sopenharmony_cicreator.release().then(() => { 7146e41f4b71Sopenharmony_ci console.info('Succeeded in releasing creator.'); 7147e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 7148e41f4b71Sopenharmony_ci console.error(`Failed to release the creator.code ${error.code},message is ${error.message}`); 7149e41f4b71Sopenharmony_ci}) 7150e41f4b71Sopenharmony_ci``` 7151e41f4b71Sopenharmony_ci 7152e41f4b71Sopenharmony_ci## Image<sup>9+</sup> 7153e41f4b71Sopenharmony_ci 7154e41f4b71Sopenharmony_ci提供基本的图像操作,包括获取图像信息、读写图像数据。调用[readNextImage](#readnextimage9)和[readLatestImage](#readlatestimage9)接口时会返回image。 7155e41f4b71Sopenharmony_ci 7156e41f4b71Sopenharmony_ci### 属性 7157e41f4b71Sopenharmony_ci 7158e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7159e41f4b71Sopenharmony_ci 7160e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 7161e41f4b71Sopenharmony_ci| -------- | ------------------ | ---- | ---- | -------------------------------------------------- | 7162e41f4b71Sopenharmony_ci| clipRect | [Region](#region8) | 是 | 是 | 要裁剪的图像区域。 | 7163e41f4b71Sopenharmony_ci| size | [Size](#size) | 是 | 否 | 图像大小。如果image对象所存储的是相机预览流数据,即YUV图像数据,那么获取到的size中的宽高分别对应YUV图像的宽高; 如果image对象所存储的是相机拍照流数据,即JPEG图像,由于已经是编码后的文件,size中的宽等于JPEG文件大小,高等于1。image对象所存储的数据是预览流还是拍照流,取决于应用将receiver中的surfaceId传给相机的previewOutput还是captureOutput。 | 7164e41f4b71Sopenharmony_ci| format | number | 是 | 否 | 图像格式,参考[OH_NativeBuffer_Format](../apis-arkgraphics2d/_o_h___native_buffer.md#oh_nativebuffer_format)。 | 7165e41f4b71Sopenharmony_ci| timestamp<sup>12+</sup> | number | 是 | 否 | 图像时间戳。时间戳以纳秒为单位,通常是单调递增的。时间戳的具体含义和基准取决于图像的生产者,在相机预览/拍照场景,生产者就是相机。来自不同生产者的图像的时间戳可能有不同的含义和基准,因此可能无法进行比较。如果要获取某张照片的生成时间,可以通过[getImageProperty](#getimageproperty11)接口读取相关的EXIF信息。| 7166e41f4b71Sopenharmony_ci 7167e41f4b71Sopenharmony_ci### getComponent<sup>9+</sup> 7168e41f4b71Sopenharmony_ci 7169e41f4b71Sopenharmony_cigetComponent(componentType: ComponentType, callback: AsyncCallback\<Component>): void 7170e41f4b71Sopenharmony_ci 7171e41f4b71Sopenharmony_ci根据图像的组件类型从图像中获取组件缓存并使用callback返回结果。 7172e41f4b71Sopenharmony_ci 7173e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7174e41f4b71Sopenharmony_ci 7175e41f4b71Sopenharmony_ci**参数:** 7176e41f4b71Sopenharmony_ci 7177e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7178e41f4b71Sopenharmony_ci| ------------- | --------------------------------------- | ---- | -------------------- | 7179e41f4b71Sopenharmony_ci| componentType | [ComponentType](#componenttype9) | 是 | 图像的组件类型。(目前仅支持 ComponentType:JPEG,实际返回格式由生产者决定,如相机) | 7180e41f4b71Sopenharmony_ci| callback | AsyncCallback<[Component](#component9)> | 是 | 回调函数,当返回组件缓冲区成功,err为undefined,data为获取到的组件缓冲区;否则为错误对象。 | 7181e41f4b71Sopenharmony_ci 7182e41f4b71Sopenharmony_ci**示例:** 7183e41f4b71Sopenharmony_ci 7184e41f4b71Sopenharmony_ci```ts 7185e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7186e41f4b71Sopenharmony_ci 7187e41f4b71Sopenharmony_ciimg.getComponent(4, (err: BusinessError, component: image.Component) => { 7188e41f4b71Sopenharmony_ci if (err) { 7189e41f4b71Sopenharmony_ci console.error(`Failed to get the component.code ${err.code},message is ${err.message}`); 7190e41f4b71Sopenharmony_ci } else { 7191e41f4b71Sopenharmony_ci console.info('Succeeded in getting component.'); 7192e41f4b71Sopenharmony_ci } 7193e41f4b71Sopenharmony_ci}) 7194e41f4b71Sopenharmony_ci``` 7195e41f4b71Sopenharmony_ci 7196e41f4b71Sopenharmony_ci### getComponent<sup>9+</sup> 7197e41f4b71Sopenharmony_ci 7198e41f4b71Sopenharmony_cigetComponent(componentType: ComponentType): Promise\<Component> 7199e41f4b71Sopenharmony_ci 7200e41f4b71Sopenharmony_ci根据图像的组件类型从图像中获取组件缓存并使用Promise方式返回结果。 7201e41f4b71Sopenharmony_ci 7202e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7203e41f4b71Sopenharmony_ci 7204e41f4b71Sopenharmony_ci**参数:** 7205e41f4b71Sopenharmony_ci 7206e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7207e41f4b71Sopenharmony_ci| ------------- | -------------------------------- | ---- | ---------------- | 7208e41f4b71Sopenharmony_ci| componentType | [ComponentType](#componenttype9) | 是 | 图像的组件类型。(目前仅支持 ComponentType:JPEG,实际返回格式由生产者决定,如相机) | 7209e41f4b71Sopenharmony_ci 7210e41f4b71Sopenharmony_ci**返回值:** 7211e41f4b71Sopenharmony_ci 7212e41f4b71Sopenharmony_ci| 类型 | 说明 | 7213e41f4b71Sopenharmony_ci| --------------------------------- | --------------------------------- | 7214e41f4b71Sopenharmony_ci| Promise<[Component](#component9)> | Promise对象,返回组件缓冲区。 | 7215e41f4b71Sopenharmony_ci 7216e41f4b71Sopenharmony_ci**示例:** 7217e41f4b71Sopenharmony_ci 7218e41f4b71Sopenharmony_ci```ts 7219e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7220e41f4b71Sopenharmony_ci 7221e41f4b71Sopenharmony_ciimg.getComponent(4).then((component: image.Component) => { 7222e41f4b71Sopenharmony_ci console.info('Succeeded in getting component.'); 7223e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 7224e41f4b71Sopenharmony_ci console.error(`Failed to get the component.code ${error.code},message is ${error.message}`); 7225e41f4b71Sopenharmony_ci}) 7226e41f4b71Sopenharmony_ci``` 7227e41f4b71Sopenharmony_ci 7228e41f4b71Sopenharmony_ci### release<sup>9+</sup> 7229e41f4b71Sopenharmony_ci 7230e41f4b71Sopenharmony_cirelease(callback: AsyncCallback\<void>): void 7231e41f4b71Sopenharmony_ci 7232e41f4b71Sopenharmony_ci释放当前图像并使用callback返回结果。 7233e41f4b71Sopenharmony_ci 7234e41f4b71Sopenharmony_ci在接收另一个图像前必须先释放对应资源。 7235e41f4b71Sopenharmony_ci 7236e41f4b71Sopenharmony_ciArkTS有内存回收机制,Image对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 7237e41f4b71Sopenharmony_ci 7238e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7239e41f4b71Sopenharmony_ci 7240e41f4b71Sopenharmony_ci**参数:** 7241e41f4b71Sopenharmony_ci 7242e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7243e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------------- | 7244e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,当图像释放成功,err为undefined,否则为错误对象。 | 7245e41f4b71Sopenharmony_ci 7246e41f4b71Sopenharmony_ci**示例:** 7247e41f4b71Sopenharmony_ci 7248e41f4b71Sopenharmony_ci```ts 7249e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7250e41f4b71Sopenharmony_ci 7251e41f4b71Sopenharmony_ciimg.release((err: BusinessError) => { 7252e41f4b71Sopenharmony_ci if (err) { 7253e41f4b71Sopenharmony_ci console.error(`Failed to release the image instance.code ${err.code},message is ${err.message}`); 7254e41f4b71Sopenharmony_ci } else { 7255e41f4b71Sopenharmony_ci console.info('Succeeded in releasing the image instance.'); 7256e41f4b71Sopenharmony_ci } 7257e41f4b71Sopenharmony_ci}) 7258e41f4b71Sopenharmony_ci``` 7259e41f4b71Sopenharmony_ci 7260e41f4b71Sopenharmony_ci### release<sup>9+</sup> 7261e41f4b71Sopenharmony_ci 7262e41f4b71Sopenharmony_cirelease(): Promise\<void> 7263e41f4b71Sopenharmony_ci 7264e41f4b71Sopenharmony_ci释放当前图像并使用Promise方式返回结果。 7265e41f4b71Sopenharmony_ci 7266e41f4b71Sopenharmony_ci在接收另一个图像前必须先释放对应资源。 7267e41f4b71Sopenharmony_ci 7268e41f4b71Sopenharmony_ciArkTS有内存回收机制,Image对象不调用release方法,内存最终也会由系统统一释放。但图片使用的内存往往较大,为尽快释放内存,建议应用在使用完成后主动调用release方法提前释放内存。 7269e41f4b71Sopenharmony_ci 7270e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7271e41f4b71Sopenharmony_ci 7272e41f4b71Sopenharmony_ci**返回值:** 7273e41f4b71Sopenharmony_ci 7274e41f4b71Sopenharmony_ci| 类型 | 说明 | 7275e41f4b71Sopenharmony_ci| -------------- | --------------------- | 7276e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 7277e41f4b71Sopenharmony_ci 7278e41f4b71Sopenharmony_ci**示例:** 7279e41f4b71Sopenharmony_ci 7280e41f4b71Sopenharmony_ci```ts 7281e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7282e41f4b71Sopenharmony_ci 7283e41f4b71Sopenharmony_ciimg.release().then(() => { 7284e41f4b71Sopenharmony_ci console.info('Succeeded in releasing the image instance.'); 7285e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 7286e41f4b71Sopenharmony_ci console.error(`Failed to release the image instance.code ${error.code},message is ${error.message}`); 7287e41f4b71Sopenharmony_ci}) 7288e41f4b71Sopenharmony_ci``` 7289e41f4b71Sopenharmony_ci 7290e41f4b71Sopenharmony_ci## PositionArea<sup>7+</sup> 7291e41f4b71Sopenharmony_ci 7292e41f4b71Sopenharmony_ci表示图片指定区域内的数据。 7293e41f4b71Sopenharmony_ci 7294e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 7295e41f4b71Sopenharmony_ci 7296e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 7297e41f4b71Sopenharmony_ci 7298e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7299e41f4b71Sopenharmony_ci 7300e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读| 可选| 说明 | 7301e41f4b71Sopenharmony_ci| ------ | ------------------ | ---| -----|------------------------------------------------------- | 7302e41f4b71Sopenharmony_ci| pixels | ArrayBuffer | 否 | 否 | 像素。 | 7303e41f4b71Sopenharmony_ci| offset | number | 否 | 否 | 偏移量。 | 7304e41f4b71Sopenharmony_ci| stride | number | 否 | 否 | 跨距,内存中每行像素所占的空间。stride >= region.size.width*4。 | 7305e41f4b71Sopenharmony_ci| region | [Region](#region8) | 否 | 否 |区域,按照区域读写。写入的区域宽度加X坐标不能大于原图的宽度,写入的区域高度加Y坐标不能大于原图的高度。 | 7306e41f4b71Sopenharmony_ci 7307e41f4b71Sopenharmony_ci## ImageInfo 7308e41f4b71Sopenharmony_ci 7309e41f4b71Sopenharmony_ci表示图片信息。 7310e41f4b71Sopenharmony_ci 7311e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7312e41f4b71Sopenharmony_ci 7313e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7314e41f4b71Sopenharmony_ci| ---- | ------------- | --- |-----|---------- | 7315e41f4b71Sopenharmony_ci| size<sup>6+</sup> | [Size](#size) | 否 | 否 |图片大小。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7316e41f4b71Sopenharmony_ci| density<sup>9+</sup> | number | 否 | 否 |像素密度,单位为ppi。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7317e41f4b71Sopenharmony_ci| stride<sup>11+</sup> | number | 否 | 否 | 跨距,内存中每行像素所占的空间。stride >= region.size.width*4 <br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7318e41f4b71Sopenharmony_ci| pixelFormat<sup>12+</sup> | [PixelMapFormat](#pixelmapformat7) | 否 | 否 | 像素格式。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7319e41f4b71Sopenharmony_ci| alphaType<sup>12+</sup> | [AlphaType](#alphatype9) | 否 | 否 |透明度。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7320e41f4b71Sopenharmony_ci| mimeType<sup>12+</sup> | string | 否 | 否 |图片真实格式(MIME type)。 | 7321e41f4b71Sopenharmony_ci| isHdr<sup>12+</sup> | boolean | 否 | 否 | 图片是否为高动态范围(HDR)。对于[ImageSource](#imagesource),代表源图片是否为HDR;对于[PixelMap](#pixelmap7),代表解码后的pixelmap是否为HDR。 | 7322e41f4b71Sopenharmony_ci 7323e41f4b71Sopenharmony_ci## Size 7324e41f4b71Sopenharmony_ci 7325e41f4b71Sopenharmony_ci表示图片尺寸。 7326e41f4b71Sopenharmony_ci 7327e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 7328e41f4b71Sopenharmony_ci 7329e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 7330e41f4b71Sopenharmony_ci 7331e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7332e41f4b71Sopenharmony_ci 7333e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 |说明 | 7334e41f4b71Sopenharmony_ci| ------ | ------ | -- |-----| -------------- | 7335e41f4b71Sopenharmony_ci| height | number | 否 | 否 |输出图片的高,单位:像素。 | 7336e41f4b71Sopenharmony_ci| width | number | 否 | 否 | 输出图片的宽,单位:像素。 | 7337e41f4b71Sopenharmony_ci 7338e41f4b71Sopenharmony_ci## PixelMapFormat<sup>7+</sup> 7339e41f4b71Sopenharmony_ci 7340e41f4b71Sopenharmony_ci枚举,图片像素格式。 7341e41f4b71Sopenharmony_ci 7342e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7343e41f4b71Sopenharmony_ci 7344e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7345e41f4b71Sopenharmony_ci| ---------------------- | ------ | ----------------- | 7346e41f4b71Sopenharmony_ci| UNKNOWN | 0 | 未知格式。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7347e41f4b71Sopenharmony_ci| RGB_565 | 2 | 格式为RGB_565。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7348e41f4b71Sopenharmony_ci| RGBA_8888 | 3 | 格式为RGBA_8888。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7349e41f4b71Sopenharmony_ci| BGRA_8888<sup>9+</sup> | 4 | 格式为BGRA_8888。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7350e41f4b71Sopenharmony_ci| RGB_888<sup>9+</sup> | 5 | 格式为RGB_888。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7351e41f4b71Sopenharmony_ci| ALPHA_8<sup>9+</sup> | 6 | 格式为ALPHA_8。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7352e41f4b71Sopenharmony_ci| RGBA_F16<sup>9+</sup> | 7 | 格式为RGBA_F16。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7353e41f4b71Sopenharmony_ci| NV21<sup>9+</sup> | 8 | 格式为NV21。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7354e41f4b71Sopenharmony_ci| NV12<sup>9+</sup> | 9 | 格式为NV12。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7355e41f4b71Sopenharmony_ci| RGBA_1010102<sup>12+</sup> | 10 | 格式为RGBA_1010102 | 7356e41f4b71Sopenharmony_ci| YCBCR_P010<sup>12+</sup> | 11 | 格式为YCBCR_P010 | 7357e41f4b71Sopenharmony_ci| YCRCB_P010<sup>12+</sup> | 12 | 格式为YCRCB_P010 | 7358e41f4b71Sopenharmony_ci 7359e41f4b71Sopenharmony_ci## AlphaType<sup>9+</sup> 7360e41f4b71Sopenharmony_ci 7361e41f4b71Sopenharmony_ci枚举,图像的透明度类型。 7362e41f4b71Sopenharmony_ci 7363e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 7364e41f4b71Sopenharmony_ci 7365e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 7366e41f4b71Sopenharmony_ci 7367e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7368e41f4b71Sopenharmony_ci 7369e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7370e41f4b71Sopenharmony_ci| -------- | ------ | ----------------------- | 7371e41f4b71Sopenharmony_ci| UNKNOWN | 0 | 未知透明度。 | 7372e41f4b71Sopenharmony_ci| OPAQUE | 1 | 没有alpha或图片不透明。 | 7373e41f4b71Sopenharmony_ci| PREMUL | 2 | RGB预乘alpha。 | 7374e41f4b71Sopenharmony_ci| UNPREMUL | 3 | RGB非预乘alpha。 | 7375e41f4b71Sopenharmony_ci 7376e41f4b71Sopenharmony_ci## AuxiliaryPictureType<sup>13+</sup> 7377e41f4b71Sopenharmony_ci 7378e41f4b71Sopenharmony_ci枚举,辅助图的图像类型。 7379e41f4b71Sopenharmony_ci 7380e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7381e41f4b71Sopenharmony_ci 7382e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7383e41f4b71Sopenharmony_ci| ------------- | ---- | ------------ | 7384e41f4b71Sopenharmony_ci| GAINMAP | 1 | 增益图,代表了一种增强SDR图像以产生具有可变显示调整能力的HDR图像的机制。它是一组描述如何应用gainmap元数据的组合。 | 7385e41f4b71Sopenharmony_ci| DEPTH_MAP | 2 | 深度图,储存图像的深度数据,通过捕捉每个像素与摄像机之间的距离,提供场景的三维结构信息,通常用于3D重建和场景理解。 | 7386e41f4b71Sopenharmony_ci| UNREFOCUS_MAP | 3 | 人像未对焦的原图,提供了一种在人像拍摄中突出背景模糊效果的方式,能够帮助用户在后期处理中选择焦点区域,增加创作自由度。 | 7387e41f4b71Sopenharmony_ci| LINEAR_MAP | 4 | 线性图,用于提供额外的数据视角或补充信息,通常用于视觉效果的增强,它可以包含场景中光照、颜色或其他视觉元素的线性表示。 | 7388e41f4b71Sopenharmony_ci| FRAGMENT_MAP | 5 | 水印裁剪图,表示在原图中被水印覆盖的区域,该图像用于修复或移除水印影响,恢复图像的完整性和可视性。 | 7389e41f4b71Sopenharmony_ci 7390e41f4b71Sopenharmony_ci## AuxiliaryPictureInfo<sup>13+</sup> 7391e41f4b71Sopenharmony_ci 7392e41f4b71Sopenharmony_ci表示辅助图图像信息。 7393e41f4b71Sopenharmony_ci 7394e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7395e41f4b71Sopenharmony_ci 7396e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7397e41f4b71Sopenharmony_ci| ------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | 7398e41f4b71Sopenharmony_ci| auxiliaryPictureType | [AuxiliaryPictureType](#auxiliarypicturetype13) | 否 | 否 | 辅助图的图像类型。 | 7399e41f4b71Sopenharmony_ci| size | [Size](#size) | 否 | 否 | 图片大小。 | 7400e41f4b71Sopenharmony_ci| rowStride | number | 否 | 否 | 行距。 | 7401e41f4b71Sopenharmony_ci| pixelFormat | [PixelMapFormat](#pixelmapformat7) | 否 | 否 | 像素格式。 | 7402e41f4b71Sopenharmony_ci| colorSpace | [colorSpaceManager.ColorSpaceManager](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspacemanager) | 否 | 否 | 目标色彩空间。 | 7403e41f4b71Sopenharmony_ci 7404e41f4b71Sopenharmony_ci## MetadataType<sup>13+</sup> 7405e41f4b71Sopenharmony_ci 7406e41f4b71Sopenharmony_ci枚举,图片元数据类型。 7407e41f4b71Sopenharmony_ci 7408e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7409e41f4b71Sopenharmony_ci 7410e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7411e41f4b71Sopenharmony_ci| ----------------- | ---- | ------------------ | 7412e41f4b71Sopenharmony_ci| EXIF_METADATA | 1 | exif数据。 | 7413e41f4b71Sopenharmony_ci| FRAGMENT_METADATA | 2 | 水印裁切图元数据。 | 7414e41f4b71Sopenharmony_ci 7415e41f4b71Sopenharmony_ci## ScaleMode<sup>9+</sup> 7416e41f4b71Sopenharmony_ci 7417e41f4b71Sopenharmony_ci枚举,图像的缩放模式。 7418e41f4b71Sopenharmony_ci 7419e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 7420e41f4b71Sopenharmony_ci 7421e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 7422e41f4b71Sopenharmony_ci 7423e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7424e41f4b71Sopenharmony_ci 7425e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7426e41f4b71Sopenharmony_ci| --------------- | ------ | -------------------------------------------------- | 7427e41f4b71Sopenharmony_ci| CENTER_CROP | 1 | 缩放图像以填充目标图像区域并居中裁剪区域外的效果。 | 7428e41f4b71Sopenharmony_ci| FIT_TARGET_SIZE | 0 | 图像适合目标尺寸的效果。 | 7429e41f4b71Sopenharmony_ci 7430e41f4b71Sopenharmony_ci## SourceOptions<sup>9+</sup> 7431e41f4b71Sopenharmony_ci 7432e41f4b71Sopenharmony_ciImageSource的初始化选项。 7433e41f4b71Sopenharmony_ci 7434e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 7435e41f4b71Sopenharmony_ci 7436e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 7437e41f4b71Sopenharmony_ci 7438e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7439e41f4b71Sopenharmony_ci 7440e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7441e41f4b71Sopenharmony_ci| ----------------- | ---------------------------------- | ---- | ---- | ------------------ | 7442e41f4b71Sopenharmony_ci| sourceDensity | number | 否 | 否 | 图片资源像素密度,单位DPI。<br>在解码参数[DecodingOptions](#decodingoptions7)未设置desiredSize的前提下,当前参数SourceOptions.sourceDensity与DecodingOptions.fitDensity非零时将对解码输出的pixelmap进行缩放。<br>缩放后宽计算公式如下(高同理):(width * fitDensity + (sourceDensity >> 1)) / sourceDensity。| 7443e41f4b71Sopenharmony_ci| sourcePixelFormat | [PixelMapFormat](#pixelmapformat7) | 否 | 是 | 图片像素格式,默认值为UNKNOWN。 | 7444e41f4b71Sopenharmony_ci| sourceSize | [Size](#size) | 否 | 是 | 图像像素大小,默认值为空。 | 7445e41f4b71Sopenharmony_ci 7446e41f4b71Sopenharmony_ci 7447e41f4b71Sopenharmony_ci## InitializationOptions<sup>8+</sup> 7448e41f4b71Sopenharmony_ci 7449e41f4b71Sopenharmony_ciPixelMap的初始化选项。 7450e41f4b71Sopenharmony_ci 7451e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7452e41f4b71Sopenharmony_ci 7453e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 |可选 | 说明 | 7454e41f4b71Sopenharmony_ci| ------------------------ | ---------------------------------- | ----| -----| -------------- | 7455e41f4b71Sopenharmony_ci| alphaType<sup>9+</sup> | [AlphaType](#alphatype9) | 否 | 是| 透明度。默认值为IMAGE_ALPHA_TYPE_PREMUL。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7456e41f4b71Sopenharmony_ci| editable | boolean | 否 | 是| 是否可编辑。默认值为false。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。| 7457e41f4b71Sopenharmony_ci| srcPixelFormat<sup>12+</sup> | [PixelMapFormat](#pixelmapformat7) | 否 | 是 | 传入的buffer数据的像素格式。默认值为BGRA_8888。| 7458e41f4b71Sopenharmony_ci| pixelFormat | [PixelMapFormat](#pixelmapformat7) | 否 | 是| 生成的pixelMap的像素格式。默认值为RGBA_8888。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7459e41f4b71Sopenharmony_ci| scaleMode<sup>9+</sup> | [ScaleMode](#scalemode9) | 否 | 是 | 缩略值。默认值为0。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7460e41f4b71Sopenharmony_ci| size | [Size](#size) | 否 | 否|创建图片大小。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7461e41f4b71Sopenharmony_ci 7462e41f4b71Sopenharmony_ci## DecodingOptions<sup>7+</sup> 7463e41f4b71Sopenharmony_ci 7464e41f4b71Sopenharmony_ci图像解码设置选项。 7465e41f4b71Sopenharmony_ci 7466e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 7467e41f4b71Sopenharmony_ci 7468e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7469e41f4b71Sopenharmony_ci| ------------------ | ---------------------------------- | ---- | ---- | ---------------- | 7470e41f4b71Sopenharmony_ci| sampleSize | number | 否 | 是 | 缩略图采样大小,默认值为1。当前只能取1。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7471e41f4b71Sopenharmony_ci| rotate | number | 否 | 是 | 旋转角度。默认值为0。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7472e41f4b71Sopenharmony_ci| editable | boolean | 否 | 是 | 是否可编辑。默认值为false。当取值为false时,图片不可二次编辑,如writepixels操作将失败。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7473e41f4b71Sopenharmony_ci| desiredSize | [Size](#size) | 否 | 是 | 期望输出大小。默认值为空。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7474e41f4b71Sopenharmony_ci| desiredRegion | [Region](#region8) | 否 | 是 | 解码区域。默认值为空。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7475e41f4b71Sopenharmony_ci| desiredPixelFormat | [PixelMapFormat](#pixelmapformat7) | 否 | 是 | 解码的像素格式。默认值为RGBA_8888。仅支持设置:RGBA_8888、BGRA_8888和RGB_565。有透明通道图片格式不支持设置RGB_565,如PNG、GIF、ICO和WEBP。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7476e41f4b71Sopenharmony_ci| index | number | 否 | 是 | 解码图片序号。默认值为0。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7477e41f4b71Sopenharmony_ci| fitDensity<sup>9+</sup> | number | 否 | 是 | 图像像素密度,单位为ppi。默认值为0。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 <br>**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 | 7478e41f4b71Sopenharmony_ci| desiredColorSpace<sup>11+</sup> | [colorSpaceManager.ColorSpaceManager](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspacemanager) | 否 | 是 | 目标色彩空间。默认值为UNKNOWN。 | 7479e41f4b71Sopenharmony_ci| desiredDynamicRange<sup>12+</sup> | [DecodingDynamicRange](#decodingdynamicrange12) | 否 | 是 | 目标动态范围,默认值为SDR。<br>通过[CreateIncrementalSource](#imagecreateincrementalsource9)创建的imagesource不支持设置此属性,默认解码为SDR内容。<br>如果平台不支持HDR,设置无效,默认解码为SDR内容。 | 7480e41f4b71Sopenharmony_ci 7481e41f4b71Sopenharmony_ci## DecodingOptionsForPicture<sup>13+</sup> 7482e41f4b71Sopenharmony_ci 7483e41f4b71Sopenharmony_ci图像解码设置选项。 7484e41f4b71Sopenharmony_ci 7485e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 7486e41f4b71Sopenharmony_ci 7487e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7488e41f4b71Sopenharmony_ci| ------------------------ | ------------------------------------------------------- | ---- | ---- | ------------------------------------------------------------ | 7489e41f4b71Sopenharmony_ci| desiredAuxiliaryPictures | Array\<[AuxiliaryPictureType](#auxiliarypicturetype13)> | 否 | 否 | 设置AuxiliaryPicture类型,默认解码所有AuxiliaryPicture类型。 | 7490e41f4b71Sopenharmony_ci 7491e41f4b71Sopenharmony_ci## Region<sup>8+</sup> 7492e41f4b71Sopenharmony_ci 7493e41f4b71Sopenharmony_ci表示区域信息。 7494e41f4b71Sopenharmony_ci 7495e41f4b71Sopenharmony_ci**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 7496e41f4b71Sopenharmony_ci 7497e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 7498e41f4b71Sopenharmony_ci 7499e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7500e41f4b71Sopenharmony_ci 7501e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选| 说明 | 7502e41f4b71Sopenharmony_ci| ---- | ------------- | ---- | ---- | ------------ | 7503e41f4b71Sopenharmony_ci| size | [Size](#size) | 否 | 否 | 区域大小。 | 7504e41f4b71Sopenharmony_ci| x | number | 否 | 否 | 区域横坐标。 | 7505e41f4b71Sopenharmony_ci| y | number | 否 | 否 | 区域纵坐标。 | 7506e41f4b71Sopenharmony_ci 7507e41f4b71Sopenharmony_ci## PackingOption 7508e41f4b71Sopenharmony_ci 7509e41f4b71Sopenharmony_ci表示图片打包选项。 7510e41f4b71Sopenharmony_ci 7511e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImagePacker 7512e41f4b71Sopenharmony_ci 7513e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7514e41f4b71Sopenharmony_ci| ------- | ------ | ---- | ---- | --------------------------------------------------- | 7515e41f4b71Sopenharmony_ci| format | string | 否 | 否 | 目标格式。</br>当前只支持"image/jpeg"、"image/webp"、"image/png"和"image/heif"<sup>12+</sup>(不同硬件设备支持情况不同)。<br>**说明:** 因为jpeg不支持透明通道,若使用带透明通道的数据编码jpeg格式,透明色将变为黑色。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 7516e41f4b71Sopenharmony_ci| quality | number | 否 | 否 | JPEG编码中设定输出图片质量的参数,取值范围为0-100。0质量最低,100质量最高,质量越高生成图片所占空间越大。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 7517e41f4b71Sopenharmony_ci| bufferSize<sup>9+</sup> | number | 否 | 是 | 接收编码数据的缓冲区大小,单位为Byte。如果不设置大小,默认为25M。如果编码图片超过25M,需要指定大小。bufferSize需大于编码后图片大小。使用[packToFile](#packtofile11)不受此参数限制。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 7518e41f4b71Sopenharmony_ci| desiredDynamicRange<sup>12+</sup> | [PackingDynamicRange](#packingdynamicrange12) | 否 | 是 | 目标动态范围。默认值为SDR。 | 7519e41f4b71Sopenharmony_ci| needsPackProperties<sup>12+</sup> | boolean | 否 | 是 | 是否需要编码图片属性信息,例如EXIF。默认值为false。 | 7520e41f4b71Sopenharmony_ci 7521e41f4b71Sopenharmony_ci## ImagePropertyOptions<sup>11+</sup> 7522e41f4b71Sopenharmony_ci 7523e41f4b71Sopenharmony_ci表示查询图片属性的索引。 7524e41f4b71Sopenharmony_ci 7525e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 7526e41f4b71Sopenharmony_ci 7527e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7528e41f4b71Sopenharmony_ci| ------------ | ------ | ---- | ---- | ------------ | 7529e41f4b71Sopenharmony_ci| index | number | 是 | 是 | 图片序号。默认值为0。 | 7530e41f4b71Sopenharmony_ci| defaultValue | string | 是 | 是 | 默认属性值。默认值为空。 | 7531e41f4b71Sopenharmony_ci 7532e41f4b71Sopenharmony_ci## GetImagePropertyOptions<sup>(deprecated)</sup> 7533e41f4b71Sopenharmony_ci 7534e41f4b71Sopenharmony_ci表示查询图片属性的索引。 7535e41f4b71Sopenharmony_ci 7536e41f4b71Sopenharmony_ci> **说明:** 7537e41f4b71Sopenharmony_ci> 7538e41f4b71Sopenharmony_ci> 从API version 11开始不再维护,建议使用[ImagePropertyOptions](#imagepropertyoptions11)代替。 7539e41f4b71Sopenharmony_ci 7540e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageSource 7541e41f4b71Sopenharmony_ci 7542e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7543e41f4b71Sopenharmony_ci| ------------ | ------ | ---- | ---- | ------------ | 7544e41f4b71Sopenharmony_ci| index | number | 否 | 是 | 图片序号。默认值为0。 | 7545e41f4b71Sopenharmony_ci| defaultValue | string | 否 | 是 | 默认属性值。默认值为空。 | 7546e41f4b71Sopenharmony_ci 7547e41f4b71Sopenharmony_ci## PropertyKey<sup>7+</sup> 7548e41f4b71Sopenharmony_ci 7549e41f4b71Sopenharmony_ci枚举,Exif(Exchangeable image file format)图片信息。 7550e41f4b71Sopenharmony_ci 7551e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7552e41f4b71Sopenharmony_ci 7553e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7554e41f4b71Sopenharmony_ci| ----------------- | ----------------------- |---------------------------| 7555e41f4b71Sopenharmony_ci| NEW_SUBFILE_TYPE <sup>12+</sup> | "NewSubfileType" | **读写能力:** 可读写<br> 在Exif中,"NewSubfileType"字段用于标识子文件的数据类型,如全分辨率图像、缩略图或多帧图像的一部分。其值是位掩码,0代表全分辨率图像,1代表缩略图,2代表多帧图像的一部分。| 7556e41f4b71Sopenharmony_ci| SUBFILE_TYPE <sup>12+</sup> | "SubfileType" | **读写能力:** 可读写<br> 此标签指示此子文件中的数据类型。标签已弃用,请使用NewSubfileType替代。| 7557e41f4b71Sopenharmony_ci| IMAGE_WIDTH | "ImageWidth" | **读写能力:** 可读写<br> 图片宽度。| 7558e41f4b71Sopenharmony_ci| IMAGE_LENGTH | "ImageLength" | **读写能力:** 可读写<br> 图片长度。| 7559e41f4b71Sopenharmony_ci| BITS_PER_SAMPLE | "BitsPerSample" | **读写能力:** 可读写<br> 每个像素比特数。| 7560e41f4b71Sopenharmony_ci| COMPRESSION <sup>12+</sup> | "Compression" | **读写能力:** 可读写<br> 图像压缩方案。| 7561e41f4b71Sopenharmony_ci| PHOTOMETRIC_INTERPRETATION <sup>12+</sup> | "PhotometricInterpretation" | **读写能力:** 可读写<br> 像素构成,例如 RGB 或 YCbCr。| 7562e41f4b71Sopenharmony_ci| IMAGE_DESCRIPTION<sup>10+</sup> | "ImageDescription" | **读写能力:** 可读写<br> 图像信息描述。| 7563e41f4b71Sopenharmony_ci| MAKE<sup>10+</sup> | "Make" | **读写能力:** 可读写<br> 生产商。| 7564e41f4b71Sopenharmony_ci| MODEL<sup>10+</sup> | "Model" | **读写能力:** 可读写<br> 设备型号。| 7565e41f4b71Sopenharmony_ci| STRIP_OFFSETS <sup>12+</sup> | "StripOffsets" | **读写能力:** 可读写<br> 每个strip的字节偏移量。| 7566e41f4b71Sopenharmony_ci| ORIENTATION | "Orientation" | **读写能力:** 可读写<br> 图片方向。<br/>- 1:Top-left,图像未旋转。<br/>- 2:Top-right,镜像水平翻转。<br/>- 3:Bottom-right,图像旋转180°。<br/>- 4:Bottom-left,镜像垂直翻转。<br/>- 5:Left-top,镜像水平翻转再顺时针旋转270°。<br/>- 6:Right-top,顺时针旋转90°。<br/>- 7:Right-bottom,镜像水平翻转再顺时针旋转90°。<br/>- 8:Left-bottom,顺时针旋转270°。<br/>- 未定义值返回Unknown Value。| 7567e41f4b71Sopenharmony_ci| SAMPLES_PER_PIXEL <sup>12+</sup> | "SamplesPerPixel" | **读写能力:** 可读写<br> 每个像素的分量数。由于该标准适用于 RGB 和 YCbCr 图像,因此该标签的值设置为 3。在 JPEG 压缩数据中,使用 JPEG 标记代替该标签。| 7568e41f4b71Sopenharmony_ci| ROWS_PER_STRIP <sup>12+</sup> | "RowsPerStrip" | **读写能力:** 可读写<br> 每个strip的图像数据行数。| 7569e41f4b71Sopenharmony_ci| STRIP_BYTE_COUNTS <sup>12+</sup> | "StripByteCounts" | **读写能力:** 可读写<br> 每个图像数据带的总字节数。| 7570e41f4b71Sopenharmony_ci| X_RESOLUTION <sup>12+</sup> | "XResolution" | **读写能力:** 可读写<br> 图像宽度方向的分辨率。| 7571e41f4b71Sopenharmony_ci| Y_RESOLUTION <sup>12+</sup> | "YResolution" | **读写能力:** 可读写<br> 图像高度方向的分辨率。| 7572e41f4b71Sopenharmony_ci| PLANAR_CONFIGURATION <sup>12+</sup> | "PlanarConfiguration" | **读写能力:** 可读写<br> 表示像素组件的记录格式,chunky格式或是planar格式。| 7573e41f4b71Sopenharmony_ci| RESOLUTION_UNIT <sup>12+</sup> | "ResolutionUnit" | **读写能力:** 可读写<br> 用于测量XResolution和YResolution的单位。| 7574e41f4b71Sopenharmony_ci| TRANSFER_FUNCTION <sup>12+</sup> | "TransferFunction" | **读写能力:** 可读写<br> 图像的传递函数,通常用于颜色校正。| 7575e41f4b71Sopenharmony_ci| SOFTWARE <sup>12+</sup> | "Software" | **读写能力:** 可读写<br> 用于生成图像的软件的名称和版本。| 7576e41f4b71Sopenharmony_ci| DATE_TIME<sup>10+</sup> | "DateTime" | **读写能力:** 可读写<br> 日期时间。| 7577e41f4b71Sopenharmony_ci| ARTIST <sup>12+</sup> | "Artist" | **读写能力:** 可读写<br> 创建图像的用户名称。| 7578e41f4b71Sopenharmony_ci| WHITE_POINT <sup>12+</sup> | "WhitePoint" | **读写能力:** 可读写<br> 图像的白点色度。| 7579e41f4b71Sopenharmony_ci| PRIMARY_CHROMATICITIES <sup>12+</sup> | "PrimaryChromaticities" | **读写能力:** 可读写<br> 图像的主要颜色的色度。| 7580e41f4b71Sopenharmony_ci| PHOTO_MODE<sup>10+</sup> | "PhotoMode" | **读写能力:** 可读写<br> 拍照模式。| 7581e41f4b71Sopenharmony_ci| JPEG_INTERCHANGE_FORMAT <sup>12+</sup> | "JPEGInterchangeFormat" | **读写能力:** 可读写<br> JPEG压缩缩略图数据开始字节(SOI)的偏移。| 7582e41f4b71Sopenharmony_ci| JPEG_INTERCHANGE_FORMAT_LENGTH <sup>12+</sup> | "JPEGInterchangeFormatLength" | **读写能力:** 可读写<br> JPEG压缩缩略图数据的字节数。| 7583e41f4b71Sopenharmony_ci| YCBCR_COEFFICIENTS <sup>12+</sup> | "YCbCrCoefficients" | **读写能力:** 可读写<br> 从RGB到YCbCr图像数据的转换矩阵系数。| 7584e41f4b71Sopenharmony_ci| YCBCR_SUB_SAMPLING <sup>12+</sup> | "YCbCrSubSampling" | **读写能力:** 可读写<br> 色度分量与亮度分量的采样比率。| 7585e41f4b71Sopenharmony_ci| YCBCR_POSITIONING <sup>12+</sup> | "YCbCrPositioning" | **读写能力:** 可读写<br> 色度分量相对于亮度分量的位置。| 7586e41f4b71Sopenharmony_ci| REFERENCE_BLACK_WHITE <sup>12+</sup> | "ReferenceBlackWhite" | **读写能力:** 可读写<br> 参考黑点值和参考白点值。| 7587e41f4b71Sopenharmony_ci| COPYRIGHT <sup>12+</sup> | "Copyright" | **读写能力:** 可读写<br> 图像的版权信息。| 7588e41f4b71Sopenharmony_ci| EXPOSURE_TIME<sup>9+</sup> | "ExposureTime" | **读写能力:** 可读写<br> 曝光时间,例如1/33 sec。| 7589e41f4b71Sopenharmony_ci| F_NUMBER<sup>9+</sup> | "FNumber" | **读写能力:** 可读写<br> 光圈值,例如f/1.8。| 7590e41f4b71Sopenharmony_ci| EXPOSURE_PROGRAM <sup>12+</sup> | "ExposureProgram" | **读写能力:** 可读写<br> 拍照时相机用来设置曝光的程序的类别。| 7591e41f4b71Sopenharmony_ci| SPECTRAL_SENSITIVITY <sup>12+</sup> | "SpectralSensitivity" | **读写能力:** 可读写<br> 表示所用相机的每个通道的光谱灵敏度。| 7592e41f4b71Sopenharmony_ci| GPS_VERSION_ID <sup>12+</sup> | "GPSVersionID" | **读写能力:** 可读写<br> GPSInfoIFD的版本。| 7593e41f4b71Sopenharmony_ci| GPS_LATITUDE_REF | "GPSLatitudeRef" | **读写能力:** 可读写<br> 纬度引用,例如N或S。| 7594e41f4b71Sopenharmony_ci| GPS_LATITUDE | "GPSLatitude" | **读写能力:** 可读写<br> 图片纬度。修改时应按"度,分,秒"格式传入,如"39,54,7.542"| 7595e41f4b71Sopenharmony_ci| GPS_LONGITUDE_REF | "GPSLongitudeRef" | **读写能力:** 可读写<br> 经度引用,例如W或E。| 7596e41f4b71Sopenharmony_ci| GPS_LONGITUDE | "GPSLongitude" | **读写能力:** 可读写<br> 图片经度。修改时应按"度,分,秒"格式传入,如"116,19,42.16"| 7597e41f4b71Sopenharmony_ci| GPS_ALTITUDE_REF <sup>12+</sup> | "GPSAltitudeRef" | **读写能力:** 可读写<br> 用于GPS高度的参照高度。| 7598e41f4b71Sopenharmony_ci| GPS_ALTITUDE <sup>12+</sup> | "GPSAltitude" | **读写能力:** 可读写<br> 基于GPSAltitudeRef的高度。| 7599e41f4b71Sopenharmony_ci| GPS_TIME_STAMP<sup>10+</sup> | "GPSTimeStamp" | **读写能力:** 可读写<br> GPS时间戳。| 7600e41f4b71Sopenharmony_ci| GPS_SATELLITES <sup>12+</sup> | "GPSSatellites" | **读写能力:** 可读写<br> 用于测量的GPS卫星。| 7601e41f4b71Sopenharmony_ci| GPS_STATUS <sup>12+</sup> | "GPSStatus" | **读写能力:** 可读写<br> 录制图像时GPS接收器的状态。| 7602e41f4b71Sopenharmony_ci| GPS_MEASURE_MODE <sup>12+</sup> | "GPSMeasureMode" | **读写能力:** 可读写<br> GPS测量模式。| 7603e41f4b71Sopenharmony_ci| GPS_DOP <sup>12+</sup> | "GPSDOP" | **读写能力:** 可读写<br> GPS DOP(数据精度等级)。| 7604e41f4b71Sopenharmony_ci| GPS_SPEED_REF <sup>12+</sup> | "GPSSpeedRef" | **读写能力:** 可读写<br> 用来表示GPS接收器移动速度的单位。| 7605e41f4b71Sopenharmony_ci| GPS_SPEED <sup>12+</sup> | "GPSSpeed" | **读写能力:** 可读写<br> GPS接收器的移动速度。| 7606e41f4b71Sopenharmony_ci| GPS_TRACK_REF <sup>12+</sup> | "GPSTrackRef" | **读写能力:** 可读写<br> GPS接收机移动方向的参照。| 7607e41f4b71Sopenharmony_ci| GPS_TRACK <sup>12+</sup> | "GPSTrack" | **读写能力:** 可读写<br> GPS接收机的移动方向。| 7608e41f4b71Sopenharmony_ci| GPS_IMG_DIRECTION_REF <sup>12+</sup> | "GPSImgDirectionRef" | **读写能力:** 可读写<br> 图像方向的参照。| 7609e41f4b71Sopenharmony_ci| GPS_IMG_DIRECTION <sup>12+</sup> | "GPSImgDirection" | **读写能力:** 可读写<br> 拍摄时图像的方向。| 7610e41f4b71Sopenharmony_ci| GPS_MAP_DATUM <sup>12+</sup> | "GPSMapDatum" | **读写能力:** 可读写<br> GPS接收器使用的大地测量数据。| 7611e41f4b71Sopenharmony_ci| GPS_DEST_LATITUDE_REF <sup>12+</sup> | "GPSDestLatitudeRef" | **读写能力:** 可读写<br> 目的地点的纬度参照。| 7612e41f4b71Sopenharmony_ci| GPS_DEST_LATITUDE <sup>12+</sup> | "GPSDestLatitude" | **读写能力:** 可读写<br> 目的地点的纬度。| 7613e41f4b71Sopenharmony_ci| GPS_DEST_LONGITUDE_REF <sup>12+</sup> | "GPSDestLongitudeRef" | **读写能力:** 可读写<br> 目的地点的经度参照。| 7614e41f4b71Sopenharmony_ci| GPS_DEST_LONGITUDE <sup>12+</sup> | "GPSDestLongitude" | **读写能力:** 可读写<br> 目的地点的经度。| 7615e41f4b71Sopenharmony_ci| GPS_DEST_BEARING_REF <sup>12+</sup> | "GPSDestBearingRef" | **读写能力:** 可读写<br> 指向目的地点的方位参照。| 7616e41f4b71Sopenharmony_ci| GPS_DEST_BEARING <sup>12+</sup> | "GPSDestBearing" | **读写能力:** 可读写<br> 目的地方位。| 7617e41f4b71Sopenharmony_ci| GPS_DEST_DISTANCE_REF <sup>12+</sup> | "GPSDestDistanceRef" | **读写能力:** 可读写<br> 目标点距离的测量单位。| 7618e41f4b71Sopenharmony_ci| GPS_DEST_DISTANCE <sup>12+</sup> | "GPSDestDistance" | **读写能力:** 可读写<br> 到目的地点的距离。| 7619e41f4b71Sopenharmony_ci| GPS_PROCESSING_METHOD <sup>12+</sup> | "GPSProcessingMethod" | **读写能力:** 可读写<br> 记录定位方法名的字符字符串。| 7620e41f4b71Sopenharmony_ci| GPS_AREA_INFORMATION <sup>12+</sup> | "GPSAreaInformation" | **读写能力:** 可读写<br> 记录GPS区域名的字符字符串。| 7621e41f4b71Sopenharmony_ci| GPS_DATE_STAMP<sup>10+</sup> | "GPSDateStamp" | **读写能力:** 可读写<br> GPS日期戳。| 7622e41f4b71Sopenharmony_ci| GPS_DIFFERENTIAL <sup>12+</sup> | "GPSDifferential" | **读写能力:** 可读写<br> 此字段表示GPS数据是否应用了差分校正,对于精确的位置准确性至关重要。| 7623e41f4b71Sopenharmony_ci| GPS_H_POSITIONING_ERROR <sup>12+</sup> | "GPSHPositioningError" | **读写能力:** 可读写<br> 此标签指示水平定位误差,单位为米。| 7624e41f4b71Sopenharmony_ci| ISO_SPEED_RATINGS<sup>9+</sup> | "ISOSpeedRatings" | **读写能力:** 可读写<br> ISO感光度,例如400。| 7625e41f4b71Sopenharmony_ci| PHOTOGRAPHIC_SENSITIVITY <sup>12+</sup> | "PhotographicSensitivity" | **读写能力:** 可读写<br> 此标签指示拍摄图像时相机或输入设备的灵敏度。| 7626e41f4b71Sopenharmony_ci| OECF <sup>12+</sup> | "OECF" | **读写能力:** 可读写<br> 表示ISO 14524中规定的光电转换函数(OECF)。| 7627e41f4b71Sopenharmony_ci| SENSITIVITY_TYPE<sup>10+</sup> | "SensitivityType" | **读写能力:** 可读写<br> 灵敏度类型。| 7628e41f4b71Sopenharmony_ci| STANDARD_OUTPUT_SENSITIVITY<sup>10+</sup> | "StandardOutputSensitivity" | **读写能力:** 可读写<br> 标准输出灵敏度。| 7629e41f4b71Sopenharmony_ci| RECOMMENDED_EXPOSURE_INDEX<sup>10+</sup> | "RecommendedExposureIndex" | **读写能力:** 可读写<br> 推荐曝光指数。| 7630e41f4b71Sopenharmony_ci| ISO_SPEED<sup>10+</sup> | "ISOSpeedRatings" | **读写能力:** 可读写<br> ISO速度等级。| 7631e41f4b71Sopenharmony_ci| ISO_SPEED_LATITUDE_YYY <sup>12+</sup> | "ISOSpeedLatitudeyyy" | **读写能力:** 可读写<br> 该标签指示摄像机或输入设备的ISO速度纬度yyy值,该值在ISO 12232中定义。| 7632e41f4b71Sopenharmony_ci| ISO_SPEED_LATITUDE_ZZZ <sup>12+</sup> | "ISOSpeedLatitudezzz" | **读写能力:** 可读写<br> 该标签指示摄像机或输入设备的ISO速度纬度zzz值,该值在ISO 12232中定义。| 7633e41f4b71Sopenharmony_ci| EXIF_VERSION <sup>12+</sup> | "ExifVersion" | **读写能力:** 可读写<br> 支持的Exif标准版本。| 7634e41f4b71Sopenharmony_ci| DATE_TIME_ORIGINAL<sup>9+</sup> | "DateTimeOriginal" | **读写能力:** 可读写<br> 拍摄时间,例如2022:09:06 15:48:00。| 7635e41f4b71Sopenharmony_ci| DATE_TIME_DIGITIZED <sup>12+</sup> | "DateTimeDigitized" | **读写能力:** 可读写<br> 图像作为数字数据存储的日期和时间,格式为YYYY:MM:DD HH:MM:SS| 7636e41f4b71Sopenharmony_ci| OFFSET_TIME <sup>12+</sup> | "OffsetTime" | **读写能力:** 可读写<br> 在Exif中,OffsetTime字段表示与UTC(协调世界时)的时间偏移,格式为±HH:MM,用于确定照片拍摄的本地时间。| 7637e41f4b71Sopenharmony_ci| OFFSET_TIME_ORIGINAL <sup>12+</sup> | "OffsetTimeOriginal" | **读写能力:** 可读写<br> 此标签记录原始图像创建时的UTC偏移量,对于时间敏感的应用至关重要。| 7638e41f4b71Sopenharmony_ci| OFFSET_TIME_DIGITIZED <sup>12+</sup> | "OffsetTimeDigitized" | **读写能力:** 可读写<br> 此标签记录图像数字化时的UTC偏移量,有助于准确调整时间戳。| 7639e41f4b71Sopenharmony_ci| COMPONENTS_CONFIGURATION <sup>12+</sup> | "ComponentsConfiguration" | **读写能力:** 可读写<br> 压缩数据的特定信息。| 7640e41f4b71Sopenharmony_ci| COMPRESSED_BITS_PER_PIXEL <sup>12+</sup> | "CompressedBitsPerPixel" | **读写能力:** 可读写<br> 用于压缩图像的压缩模式,单位为每像素位数。| 7641e41f4b71Sopenharmony_ci| SHUTTER_SPEED <sup>12+</sup> | "ShutterSpeedValue" | **读写能力:** 可读写<br> 快门速度,以APEX(摄影曝光的加法系统)值表示。| 7642e41f4b71Sopenharmony_ci| APERTURE_VALUE<sup>10+</sup> | "ApertureValue" | **读写能力:** 可读写<br> 光圈值。| 7643e41f4b71Sopenharmony_ci| BRIGHTNESS_VALUE <sup>12+</sup> | "BrightnessValue" | **读写能力:** 可读写<br> 图像的亮度值,以APEX单位表示。| 7644e41f4b71Sopenharmony_ci| EXPOSURE_BIAS_VALUE<sup>10+</sup> | "ExposureBiasValue" | **读写能力:** 可读写<br> 曝光偏差值。| 7645e41f4b71Sopenharmony_ci| MAX_APERTURE_VALUE <sup>12+</sup> | "MaxApertureValue" | **读写能力:** 可读写<br> 最小F数镜头。| 7646e41f4b71Sopenharmony_ci| SUBJECT_DISTANCE <sup>12+</sup> | "SubjectDistance" | **读写能力:** 可读写<br> 测量单位为米的主体距离。| 7647e41f4b71Sopenharmony_ci| METERING_MODE<sup>10+</sup> | "MeteringMode" | **读写能力:** 可读写<br> 测光模式。| 7648e41f4b71Sopenharmony_ci| LIGHT_SOURCE<sup>10+</sup> | "LightSource" | **读写能力:** 可读写<br> 光源。| 7649e41f4b71Sopenharmony_ci| FLASH <sup>10+</sup> | "Flash" | **读写能力:** 可读写<br> 闪光灯,记录闪光灯状态。| 7650e41f4b71Sopenharmony_ci| FOCAL_LENGTH <sup>10+</sup> | "FocalLength" | **读写能力:** 可读写<br> 焦距。| 7651e41f4b71Sopenharmony_ci| SUBJECT_AREA <sup>12+</sup> | "SubjectArea" | **读写能力:** 可读写<br> 该标签指示整个场景中主要主体的位置和区域。| 7652e41f4b71Sopenharmony_ci| MAKER_NOTE <sup>12+</sup> | "MakerNote" | **读写能力:** 只读<br> Exif/DCF制造商使用的标签,用于记录任何所需信息。| 7653e41f4b71Sopenharmony_ci| SCENE_POINTER <sup>12+</sup> | "HwMnoteScenePointer" | **读写能力:** 只读<br> 场景指针。| 7654e41f4b71Sopenharmony_ci| SCENE_VERSION <sup>12+</sup> | "HwMnoteSceneVersion" | **读写能力:** 只读<br> 场景算法版本信息。| 7655e41f4b71Sopenharmony_ci| SCENE_FOOD_CONF<sup>11+</sup> | "HwMnoteSceneFoodConf" | **读写能力:** 只读<br> 拍照场景:食物。| 7656e41f4b71Sopenharmony_ci| SCENE_STAGE_CONF<sup>11+</sup> | "HwMnoteSceneStageConf" | **读写能力:** 只读<br> 拍照场景:舞台。| 7657e41f4b71Sopenharmony_ci| SCENE_BLUE_SKY_CONF<sup>11+</sup> | "HwMnoteSceneBlueSkyConf" | **读写能力:** 只读<br> 拍照场景:蓝天。| 7658e41f4b71Sopenharmony_ci| SCENE_GREEN_PLANT_CONF<sup>11+</sup> | "HwMnoteSceneGreenPlantConf" | **读写能力:** 只读<br> 拍照场景:绿植。| 7659e41f4b71Sopenharmony_ci| SCENE_BEACH_CONF<sup>11+</sup> | "HwMnoteSceneBeachConf" | **读写能力:** 只读<br> 拍照场景:沙滩。| 7660e41f4b71Sopenharmony_ci| SCENE_SNOW_CONF<sup>11+</sup> | "HwMnoteSceneSnowConf" | **读写能力:** 只读<br> 拍照场景:下雪。| 7661e41f4b71Sopenharmony_ci| SCENE_SUNSET_CONF<sup>11+</sup> | "HwMnoteSceneSunsetConf" | **读写能力:** 只读<br> 拍照场景:日落。| 7662e41f4b71Sopenharmony_ci| SCENE_FLOWERS_CONF<sup>11+</sup> | "HwMnoteSceneFlowersConf" | **读写能力:** 只读<br> 拍照场景:花。| 7663e41f4b71Sopenharmony_ci| SCENE_NIGHT_CONF<sup>11+</sup> | "HwMnoteSceneNightConf" | **读写能力:** 只读<br> 拍照场景:夜晚。| 7664e41f4b71Sopenharmony_ci| SCENE_TEXT_CONF<sup>11+</sup> | "HwMnoteSceneTextConf" | **读写能力:** 只读<br> 拍照场景:文本。| 7665e41f4b71Sopenharmony_ci| FACE_POINTER <sup>12+</sup> | "HwMnoteFacePointer" | **读写能力:** 只读<br> 脸部指针。| 7666e41f4b71Sopenharmony_ci| FACE_VERSION <sup>12+</sup> | "HwMnoteFaceVersion" | **读写能力:** 只读<br> 人脸算法版本信息。| 7667e41f4b71Sopenharmony_ci| FACE_COUNT<sup>11+</sup> | "HwMnoteFaceCount" | **读写能力:** 只读<br> 人脸数量。| 7668e41f4b71Sopenharmony_ci| FACE_CONF <sup>12+</sup> | "HwMnoteFaceConf" | **读写能力:** 只读<br> 人脸置信度。| 7669e41f4b71Sopenharmony_ci| FACE_SMILE_SCORE <sup>12+</sup> | "HwMnoteFaceSmileScore" | **读写能力:** 只读<br> FaceCount张人脸的笑脸分数。| 7670e41f4b71Sopenharmony_ci| FACE_RECT <sup>12+</sup> | "HwMnoteFaceRect" | **读写能力:** 只读<br> 脸部矩形。| 7671e41f4b71Sopenharmony_ci| FACE_LEYE_CENTER <sup>12+</sup> | "HwMnoteFaceLeyeCenter" | **读写能力:** 只读<br> 左眼中心。| 7672e41f4b71Sopenharmony_ci| FACE_REYE_CENTER <sup>12+</sup> | "HwMnoteFaceReyeCenter" | **读写能力:** 只读<br> 右眼中心。| 7673e41f4b71Sopenharmony_ci| FACE_MOUTH_CENTER <sup>12+</sup> | "HwMnoteFaceMouthCenter" | **读写能力:** 只读<br> 嘴中心。| 7674e41f4b71Sopenharmony_ci| CAPTURE_MODE <sup>10+</sup> | "HwMnoteCaptureMode" | **读写能力:** 可读写<br> 捕获模式。| 7675e41f4b71Sopenharmony_ci| BURST_NUMBER <sup>12+</sup> | "HwMnoteBurstNumber" | **读写能力:** 只读<br> 连拍次数。| 7676e41f4b71Sopenharmony_ci| FRONT_CAMERA <sup>12+</sup> | "HwMnoteFrontCamera" | **读写能力:** 只读<br> 是否是前置相机自拍。| 7677e41f4b71Sopenharmony_ci| ROLL_ANGLE <sup>11+</sup> | "HwMnoteRollAngle" | **读写能力:** 只读<br> 滚动角度。| 7678e41f4b71Sopenharmony_ci| PITCH_ANGLE<sup>11+</sup> | "HwMnotePitchAngle" | **读写能力:** 只读<br> 俯仰角度。| 7679e41f4b71Sopenharmony_ci| PHYSICAL_APERTURE <sup>10+</sup> | "HwMnotePhysicalAperture" | **读写能力:** 只读<br> 物理孔径,光圈大小。| 7680e41f4b71Sopenharmony_ci| FOCUS_MODE<sup>11+</sup> | "HwMnoteFocusMode" | **读写能力:** 只读<br> 对焦模式。| 7681e41f4b71Sopenharmony_ci| USER_COMMENT <sup>10+</sup> | "UserComment" | **读写能力:** 可读写<br> 用户注释。| 7682e41f4b71Sopenharmony_ci| SUBSEC_TIME <sup>12+</sup> | "SubsecTime" | **读写能力:** 可读写<br> 用于为DateTime标签记录秒的分数的标签。| 7683e41f4b71Sopenharmony_ci| SUBSEC_TIME_ORIGINAL <sup>12+</sup> | "SubsecTimeOriginal" | **读写能力:** 可读写<br> 用于为DateTimeOriginal标签记录秒的分数的标签。| 7684e41f4b71Sopenharmony_ci| SUBSEC_TIME_DIGITIZED <sup>12+</sup> | "SubsecTimeDigitized" | **读写能力:** 可读写<br> 用于为DateTimeDigitized标签记录秒的分数的标签。| 7685e41f4b71Sopenharmony_ci| FLASHPIX_VERSION <sup>12+</sup> | "FlashpixVersion" | **读写能力:** 可读写<br> 该标签表示FPXR文件支持的Flashpix格式版本,增强了设备兼容性。| 7686e41f4b71Sopenharmony_ci| COLOR_SPACE <sup>12+</sup> | "ColorSpace" | **读写能力:** 可读写<br> 色彩空间信息标签,通常记录为色彩空间指定符。| 7687e41f4b71Sopenharmony_ci| PIXEL_X_DIMENSION <sup>10+</sup> | "PixelXDimension" | **读写能力:** 可读写<br> 像素X尺寸。| 7688e41f4b71Sopenharmony_ci| PIXEL_Y_DIMENSION<sup>10+</sup> | "PixelYDimension" | **读写能力:** 可读写<br> 像素Y尺寸。| 7689e41f4b71Sopenharmony_ci| RELATED_SOUND_FILE <sup>12+</sup> | "RelatedSoundFile" | **读写能力:** 可读写<br> 与图像数据相关的音频文件的名称。| 7690e41f4b71Sopenharmony_ci| FLASH_ENERGY <sup>12+</sup> | "FlashEnergy" | **读写能力:** 可读写<br> 图像捕获时的闪光能量,以BCPS表示。| 7691e41f4b71Sopenharmony_ci| SPATIAL_FREQUENCY_RESPONSE <sup>12+</sup> | "SpatialFrequencyResponse" | **读写能力:** 可读写<br> 相机或输入设备的空间频率表。| 7692e41f4b71Sopenharmony_ci| FOCAL_PLANE_X_RESOLUTION <sup>12+</sup> | "FocalPlaneXResolution" | **读写能力:** 可读写<br> 图像宽度中每FocalPlaneResolutionUnit的像素。| 7693e41f4b71Sopenharmony_ci| FOCAL_PLANE_Y_RESOLUTION <sup>12+</sup> | "FocalPlaneYResolution" | **读写能力:** 可读写<br> 图像高度中每FocalPlaneResolutionUnit的像素。| 7694e41f4b71Sopenharmony_ci| FOCAL_PLANE_RESOLUTION_UNIT <sup>12+</sup> | "FocalPlaneResolutionUnit" | **读写能力:** 可读写<br> 测量FocalPlaneXResolution和FocalPlaneYResolution的单位。| 7695e41f4b71Sopenharmony_ci| SUBJECT_LOCATION <sup>12+</sup> | "SubjectLocation" | **读写能力:** 可读写<br> 主要对象相对于左边缘的位置。| 7696e41f4b71Sopenharmony_ci| EXPOSURE_INDEX <sup>12+</sup> | "ExposureIndex" | **读写能力:** 可读写<br> 捕获时选定的曝光指数。| 7697e41f4b71Sopenharmony_ci| SENSING_METHOD <sup>12+</sup> | "SensingMethod" | **读写能力:** 可读写<br> 相机上的图像传感器类型。| 7698e41f4b71Sopenharmony_ci| FILE_SOURCE <sup>12+</sup> | "FileSource" | **读写能力:** 可读写<br> 表明图像来源。| 7699e41f4b71Sopenharmony_ci| SCENE_TYPE<sup>9+</sup> | "SceneType" | **读写能力:** 可读写<br> 拍摄场景模式,例如人像、风光、运动、夜景等。| 7700e41f4b71Sopenharmony_ci| CFA_PATTERN <sup>12+</sup> | "CFAPattern" | **读写能力:** 可读写<br> 图像传感器的色彩滤光片(CFA)几何图案。| 7701e41f4b71Sopenharmony_ci| CUSTOM_RENDERED <sup>12+</sup> | "CustomRendered" | **读写能力:** 可读写<br> 指示图像数据上的特殊处理。| 7702e41f4b71Sopenharmony_ci| EXPOSURE_MODE <sup>12+</sup> | "ExposureMode" | **读写能力:** 可读写<br> 拍摄时设置的曝光模式。| 7703e41f4b71Sopenharmony_ci| WHITE_BALANCE <sup>10+</sup> | "WhiteBalance" | **读写能力:** 可读写<br> 白平衡。| 7704e41f4b71Sopenharmony_ci| DIGITAL_ZOOM_RATIO <sup>12+</sup> | "DigitalZoomRatio" | **读写能力:** 可读写<br> 捕获时的数字变焦比率。| 7705e41f4b71Sopenharmony_ci| FOCAL_LENGTH_IN_35_MM_FILM <sup>10+</sup> | "FocalLengthIn35mmFilm" | **读写能力:** 可读写<br> 焦距35毫米胶片。| 7706e41f4b71Sopenharmony_ci| SCENE_CAPTURE_TYPE <sup>12+</sup> | "SceneCaptureType" | **读写能力:** 可读写<br> 捕获的场景类型。| 7707e41f4b71Sopenharmony_ci| GAIN_CONTROL <sup>12+</sup> | "GainControl" | **读写能力:** 可读写<br> 整体图像增益调整的程度。| 7708e41f4b71Sopenharmony_ci| CONTRAST <sup>12+</sup> | "Contrast" | **读写能力:** 可读写<br> 相机应用的对比度处理方向。| 7709e41f4b71Sopenharmony_ci| SATURATION <sup>12+</sup> | "Saturation" | **读写能力:** 可读写<br> 相机应用的饱和度处理方向。| 7710e41f4b71Sopenharmony_ci| SHARPNESS <sup>12+</sup> | "Sharpness" | **读写能力:** 可读写<br> 相机应用的锐度处理方向。| 7711e41f4b71Sopenharmony_ci| DEVICE_SETTING_DESCRIPTION <sup>12+</sup> | "DeviceSettingDescription" | **读写能力:** 可读写<br> 特定相机模型的拍照条件信息。| 7712e41f4b71Sopenharmony_ci| SUBJECT_DISTANCE_RANGE <sup>12+</sup> | "SubjectDistanceRange" | **读写能力:** 可读写<br> 表示主体到相机的距离范围。| 7713e41f4b71Sopenharmony_ci| IMAGE_UNIQUE_ID <sup>12+</sup> | "ImageUniqueID" | **读写能力:** 可读写<br> 为每张图片唯一分配的标识符。| 7714e41f4b71Sopenharmony_ci| CAMERA_OWNER_NAME <sup>12+</sup> | "CameraOwnerName" | **读写能力:** 可读写<br> 相机所有者的姓名。| 7715e41f4b71Sopenharmony_ci| BODY_SERIAL_NUMBER <sup>12+</sup> | "BodySerialNumber" | **读写能力:** 可读写<br> 相机机身的序列号。| 7716e41f4b71Sopenharmony_ci| LENS_SPECIFICATION <sup>12+</sup> | "LensSpecification" | **读写能力:** 可读写<br> 使用的镜头规格。| 7717e41f4b71Sopenharmony_ci| LENS_MAKE <sup>12+</sup> | "LensMake" | **读写能力:** 可读写<br> 镜头的制造商。| 7718e41f4b71Sopenharmony_ci| LENS_MODEL <sup>12+</sup> | "LensModel" | **读写能力:** 可读写<br> 镜头的型号名称。| 7719e41f4b71Sopenharmony_ci| LENS_SERIAL_NUMBER <sup>12+</sup> | "LensSerialNumber" | **读写能力:** 可读写<br> 镜头的序列号。| 7720e41f4b71Sopenharmony_ci| COMPOSITE_IMAGE <sup>12+</sup> | "CompositeImage" | **读写能力:** 可读写<br> 表示图像是否为合成图像。| 7721e41f4b71Sopenharmony_ci| SOURCE_IMAGE_NUMBER_OF_COMPOSITE_IMAGE <sup>12+</sup> | "SourceImageNumberOfCompositeImage" | **读写能力:** 可读写<br> 用于合成图像的源图像数量。| 7722e41f4b71Sopenharmony_ci| SOURCE_EXPOSURE_TIMES_OF_COMPOSITE_IMAGE <sup>12+</sup> | "SourceExposureTimesOfCompositeImage" | **读写能力:** 可读写<br> 合成图像的源图像曝光时间。| 7723e41f4b71Sopenharmony_ci| GAMMA <sup>12+</sup> | "Gamma" | **读写能力:** 可读写<br> 表示系数伽马的值。| 7724e41f4b71Sopenharmony_ci| DNG_VERSION <sup>12+</sup> | "DNGVersion" | **读写能力:** 可读写<br> DNG版本标签编码了符合DNG规范的四级版本号。| 7725e41f4b71Sopenharmony_ci| DEFAULT_CROP_SIZE <sup>12+</sup> | "DefaultCropSize" | **读写能力:** 可读写<br> DefaultCropSize指定了原始坐标中的最终图像大小,考虑了额外的边缘像素。| 7726e41f4b71Sopenharmony_ci| GIF_LOOP_COUNT <sup>12+</sup> | "GIFLoopCount" | **读写能力:** 只读<br> GIF图片循环次数。0表示无限循环,其他值表示循环次数。| 7727e41f4b71Sopenharmony_ci| IS_XMAGE_SUPPORTED <sup>12+</sup> | "HwMnoteIsXmageSupported" | **读写能力:** 可读写<br>是否支持XMAGE。 | 7728e41f4b71Sopenharmony_ci| XMAGE_MODE <sup>12+</sup> | "HwMnoteXmageMode" | **读写能力:** 可读写<br>XMAGE水印模式。 | 7729e41f4b71Sopenharmony_ci| XMAGE_LEFT <sup>12+</sup> | "HwMnoteXmageLeft" | **读写能力:** 可读写<br>水印区域X1坐标。 | 7730e41f4b71Sopenharmony_ci| XMAGE_TOP <sup>12+</sup> | "HwMnoteXmageTop" | **读写能力:** 可读写<br>水印区域Y1坐标。 | 7731e41f4b71Sopenharmony_ci| XMAGE_RIGHT <sup>12+</sup> | "HwMnoteXmageRight" | **读写能力:** 可读写<br>水印区域X2坐标。 | 7732e41f4b71Sopenharmony_ci| XMAGE_BOTTOM <sup>12+</sup> | "HwMnoteXmageBottom" | **读写能力:** 可读写<br>水印区域Y2坐标。 | 7733e41f4b71Sopenharmony_ci| CLOUD_ENHANCEMENT_MODE <sup>12+</sup> | "HwMnoteCloudEnhancementMode" | **读写能力:** 可读写<br>云增强模式。 | 7734e41f4b71Sopenharmony_ci| WIND_SNAPSHOT_MODE <sup>12+</sup> | "HwMnoteWindSnapshotMode" | **读写能力:** 只读<br>运动快拍模式。 | 7735e41f4b71Sopenharmony_ci 7736e41f4b71Sopenharmony_ci## ImageFormat<sup>9+</sup> 7737e41f4b71Sopenharmony_ci 7738e41f4b71Sopenharmony_ci枚举,图片格式。 7739e41f4b71Sopenharmony_ci 7740e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7741e41f4b71Sopenharmony_ci 7742e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7743e41f4b71Sopenharmony_ci| ------------ | ------ | -------------------- | 7744e41f4b71Sopenharmony_ci| YCBCR_422_SP | 1000 | YCBCR422半平面格式。 | 7745e41f4b71Sopenharmony_ci| JPEG | 2000 | JPEG编码格式。 | 7746e41f4b71Sopenharmony_ci 7747e41f4b71Sopenharmony_ci## ComponentType<sup>9+</sup> 7748e41f4b71Sopenharmony_ci 7749e41f4b71Sopenharmony_ci枚举,图像的组件类型。 7750e41f4b71Sopenharmony_ci 7751e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver 7752e41f4b71Sopenharmony_ci 7753e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7754e41f4b71Sopenharmony_ci| ----- | ------ | ----------- | 7755e41f4b71Sopenharmony_ci| YUV_Y | 1 | 亮度信息。 | 7756e41f4b71Sopenharmony_ci| YUV_U | 2 | 色度信息。 | 7757e41f4b71Sopenharmony_ci| YUV_V | 3 | 色度信息。 | 7758e41f4b71Sopenharmony_ci| JPEG | 4 | JPEG 类型。 | 7759e41f4b71Sopenharmony_ci 7760e41f4b71Sopenharmony_ci## Component<sup>9+</sup> 7761e41f4b71Sopenharmony_ci 7762e41f4b71Sopenharmony_ci描述图像颜色分量。 7763e41f4b71Sopenharmony_ci 7764e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7765e41f4b71Sopenharmony_ci 7766e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7767e41f4b71Sopenharmony_ci| ------------- | -------------------------------- | ---- | ---- | ------------ | 7768e41f4b71Sopenharmony_ci| componentType | [ComponentType](#componenttype9) | 是 | 否 | 组件类型。 | 7769e41f4b71Sopenharmony_ci| rowStride | number | 是 | 否 | 行距。读取相机预览流数据时,需要考虑按stride进行读取,具体用法见[ArkTS双路预览示例](../../media/camera/camera-dual-channel-preview.md)。 | 7770e41f4b71Sopenharmony_ci| pixelStride | number | 是 | 否 | 像素间距。 | 7771e41f4b71Sopenharmony_ci| byteBuffer | ArrayBuffer | 是 | 否 | 组件缓冲区。 | 7772e41f4b71Sopenharmony_ci 7773e41f4b71Sopenharmony_ci## DecodingDynamicRange<sup>12+</sup> 7774e41f4b71Sopenharmony_ci 7775e41f4b71Sopenharmony_ci描述解码时期望的图像动态范围。 7776e41f4b71Sopenharmony_ci 7777e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7778e41f4b71Sopenharmony_ci 7779e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7780e41f4b71Sopenharmony_ci| ------------- | ----------| ------------ | 7781e41f4b71Sopenharmony_ci| AUTO | 0 | 自适应,根据图片信息处理。即如果图片本身为HDR图片,则会按照HDR内容解码;反之按照SDR内容解码。通过[CreateIncrementalSource](#imagecreateincrementalsource9)创建的imagesource会解码为SDR内容。 | 7782e41f4b71Sopenharmony_ci| SDR | 1 | 按照标准动态范围处理图片。 | 7783e41f4b71Sopenharmony_ci| HDR | 2 | 按照高动态范围处理图片。通过[CreateIncrementalSource](#imagecreateincrementalsource9)创建的imagesource会解码为SDR内容。 | 7784e41f4b71Sopenharmony_ci 7785e41f4b71Sopenharmony_ci## PackingDynamicRange<sup>12+</sup> 7786e41f4b71Sopenharmony_ci 7787e41f4b71Sopenharmony_ci描述编码时期望的图像动态范围。 7788e41f4b71Sopenharmony_ci 7789e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7790e41f4b71Sopenharmony_ci 7791e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7792e41f4b71Sopenharmony_ci| ------------- | ----------| ------------ | 7793e41f4b71Sopenharmony_ci| AUTO | 0 | 自适应,根据[pixelmap](#pixelmap7)内容处理。即如果pixelmap本身为HDR,则会按照HDR内容进行编码;反之按照SDR内容编码。 | 7794e41f4b71Sopenharmony_ci| SDR | 1 | 按照标准动态范围处理图片。 | 7795e41f4b71Sopenharmony_ci 7796e41f4b71Sopenharmony_ci## HdrMetadataKey<sup>12+</sup> 7797e41f4b71Sopenharmony_ci 7798e41f4b71Sopenharmony_ci枚举,[pixelmap](#pixelmap7)使用的HDR相关元数据信息的关键字。 7799e41f4b71Sopenharmony_ci 7800e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7801e41f4b71Sopenharmony_ci 7802e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7803e41f4b71Sopenharmony_ci| ------------- | ----------| ------------ | 7804e41f4b71Sopenharmony_ci| HDR_METADATA_TYPE | 0 | [pixelmap](#pixelmap7)使用的元数据类型。 | 7805e41f4b71Sopenharmony_ci| HDR_STATIC_METADATA | 1 | 静态元数据。 | 7806e41f4b71Sopenharmony_ci| HDR_DYNAMIC_METADATA | 2 | 动态元数据。 | 7807e41f4b71Sopenharmony_ci| HDR_GAINMAP_METADATA | 3 | Gainmap使用的元数据。 | 7808e41f4b71Sopenharmony_ci 7809e41f4b71Sopenharmony_ci## HdrMetadataType<sup>12+</sup> 7810e41f4b71Sopenharmony_ci 7811e41f4b71Sopenharmony_ci枚举,[HdrMetadataKey](#hdrmetadatakey12)中HDR_METADATA_TYPE关键字对应的值。 7812e41f4b71Sopenharmony_ci 7813e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7814e41f4b71Sopenharmony_ci 7815e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7816e41f4b71Sopenharmony_ci| ------------- | ----------| ------------ | 7817e41f4b71Sopenharmony_ci| NONE | 0 | 无元数据内容。 | 7818e41f4b71Sopenharmony_ci| BASE | 1 | 表示用于基础图的元数据。 | 7819e41f4b71Sopenharmony_ci| GAINMAP | 2 | 表示用于Gainmap图的元数据。 | 7820e41f4b71Sopenharmony_ci| ALTERNATE| 3 | 表示用于合成后HDR图的元数据。 | 7821e41f4b71Sopenharmony_ci 7822e41f4b71Sopenharmony_ci## HdrStaticMetadata<sup>12+</sup> 7823e41f4b71Sopenharmony_ci 7824e41f4b71Sopenharmony_ci静态元数据值,[HdrMetadataKey](#hdrmetadatakey12)中HDR_STATIC_METADATA关键字对应的值。 7825e41f4b71Sopenharmony_ci 7826e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7827e41f4b71Sopenharmony_ci 7828e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7829e41f4b71Sopenharmony_ci| ------------- | ----------| -- | -- | ------------ | 7830e41f4b71Sopenharmony_ci| displayPrimariesX | Array\<number> | 否 | 否 | 归一化后显示设备三基色的X坐标,数组的长度为3,以0.00002为单位,范围[0.0, 1.0]。 | 7831e41f4b71Sopenharmony_ci| displayPrimariesY | Array\<number> | 否 | 否 | 归一化后显示设备三基色的Y坐标,数组的长度为3,以0.00002为单位,范围[0.0, 1.0]。 | 7832e41f4b71Sopenharmony_ci| whitePointX | number | 否 | 否 | 归一化后白点值的X坐标,以0.00002为单位,范围[0.0, 1.0]。 | 7833e41f4b71Sopenharmony_ci| whitePointY | number | 否 | 否 | 归一化后白点值的Y坐标,以0.00002为单位,范围[0.0, 1.0]。 | 7834e41f4b71Sopenharmony_ci| maxLuminance | number | 否 | 否 | 图像主监视器最大亮度。以1为单位,最大值为65535。 | 7835e41f4b71Sopenharmony_ci| minLuminance | number | 否 | 否 | 图像主监视器最小亮度。以0.0001为单位,最大值6.55535。 | 7836e41f4b71Sopenharmony_ci| maxContentLightLevel | number | 否 | 否 | 显示内容的最大亮度。以1为单位,最大值为65535。 | 7837e41f4b71Sopenharmony_ci| maxFrameAverageLightLevel | number | 否 | 否 | 显示内容的最大平均亮度,以1为单位,最大值为65535。 | 7838e41f4b71Sopenharmony_ci 7839e41f4b71Sopenharmony_ci## GainmapChannel<sup>12+</sup> 7840e41f4b71Sopenharmony_ci 7841e41f4b71Sopenharmony_ciGainmap图单个通道的数据内容,参考ISO 21496-1。 7842e41f4b71Sopenharmony_ci 7843e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7844e41f4b71Sopenharmony_ci 7845e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7846e41f4b71Sopenharmony_ci| ------------- | ----------| -- | -- | ------------ | 7847e41f4b71Sopenharmony_ci| gainmapMax | number | 否 | 否 | 增强图像的最大值,参考ISO 21496-1。 | 7848e41f4b71Sopenharmony_ci| gainmapMin | number | 否 | 否 | 增强图像的最小值,参考ISO 21496-1。 | 7849e41f4b71Sopenharmony_ci| gamma | number | 否 | 否 | gamma值,参考ISO 21496-1。 | 7850e41f4b71Sopenharmony_ci| baseOffset | number | 否 | 否 | 基础图的偏移,参考ISO 21496-1。 | 7851e41f4b71Sopenharmony_ci| alternateOffset | number | 否 | 否 | 提取的可选择图像偏移量,参考ISO 21496-1。 | 7852e41f4b71Sopenharmony_ci 7853e41f4b71Sopenharmony_ci## HdrGainmapMetadata<sup>12+</sup> 7854e41f4b71Sopenharmony_ci 7855e41f4b71Sopenharmony_ciGainmap使用的元数据值,[HdrMetadataKey](#hdrmetadatakey12)中HDR_GAINMAP_METADATA关键字对应的值,参考ISO 21496-1。 7856e41f4b71Sopenharmony_ci 7857e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7858e41f4b71Sopenharmony_ci 7859e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 7860e41f4b71Sopenharmony_ci| ------------- | ----------| -- | -- | ------------ | 7861e41f4b71Sopenharmony_ci| writerVersion | number | 否 | 否 | 元数据编写器使用的版本。 | 7862e41f4b71Sopenharmony_ci| miniVersion | number | 否 | 否 | 元数据解析需要理解的最小版本。 | 7863e41f4b71Sopenharmony_ci| gainmapChannelCount | number | 否 | 否 | Gainmap的颜色通道数,值为3时RGB通道的元数据值不同,值为1时各通道元数据值相同,参考ISO 21496-1。 | 7864e41f4b71Sopenharmony_ci| useBaseColorFlag | boolean | 否 | 否 | 是否使用基础图的色彩空间,参考ISO 21496-1。 | 7865e41f4b71Sopenharmony_ci| baseHeadroom | number | 否 | 否 | 基础图提亮比,参考ISO 21496-1。 | 7866e41f4b71Sopenharmony_ci| alternateHeadroom | number | 否 | 否 | 提取的可选择图像提亮比,参考ISO 21496-1。 | 7867e41f4b71Sopenharmony_ci| channels | Array<[GainmapChannel](#gainmapchannel12)> | 否 | 否 | 各通道的数据,长度为3,参考ISO 21496-1。 | 7868e41f4b71Sopenharmony_ci 7869e41f4b71Sopenharmony_ci## HdrMetadataValue<sup>12+</sup> 7870e41f4b71Sopenharmony_ci 7871e41f4b71Sopenharmony_citype HdrMetadataValue = HdrMetadataType | HdrStaticMetadata | ArrayBuffer | HdrGainmapMetadata 7872e41f4b71Sopenharmony_ci 7873e41f4b71Sopenharmony_ciPixelMap使用的HDR元数据值类型,和[HdrMetadataKey](#hdrmetadatakey12)关键字相对应。 7874e41f4b71Sopenharmony_ci 7875e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7876e41f4b71Sopenharmony_ci 7877e41f4b71Sopenharmony_ci| 类型 | 说明 | 7878e41f4b71Sopenharmony_ci| ------------------- | ----------------------------------------------- | 7879e41f4b71Sopenharmony_ci| [HdrMetadataType](#hdrmetadatatype12) | [HdrMetadataKey](#hdrmetadatakey12)中HDR_GAINMAP_METADATA关键字对应的元数据值类型。 | 7880e41f4b71Sopenharmony_ci| [HdrStaticMetadata](#hdrstaticmetadata12) | [HdrMetadataKey](#hdrmetadatakey12)中HDR_STATIC_METADATA关键字对应的元数据值类型。 | 7881e41f4b71Sopenharmony_ci| ArrayBuffer | [HdrMetadataKey](#hdrmetadatakey12)中HDR_DYNAMIC_METADATA关键字对应的元数据值类型。 | 7882e41f4b71Sopenharmony_ci| [HdrGainmapMetadata](#hdrgainmapmetadata12) | [HdrMetadataKey](#hdrmetadatakey12)中HDR_GAINMAP_METADATA关键字对应的元数据值类型。 | 7883e41f4b71Sopenharmony_ci 7884e41f4b71Sopenharmony_ci## AntiAliasingLevel<sup>12+</sup> 7885e41f4b71Sopenharmony_ci 7886e41f4b71Sopenharmony_ci缩放时的缩放算法。 7887e41f4b71Sopenharmony_ci 7888e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Image.Core 7889e41f4b71Sopenharmony_ci 7890e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7891e41f4b71Sopenharmony_ci| ---------------------- | ------ | ----------------- | 7892e41f4b71Sopenharmony_ci| NONE | 0 | 默认为最近邻缩放算法。 | 7893e41f4b71Sopenharmony_ci| LOW | 1 | 双线性缩放算法。 | 7894e41f4b71Sopenharmony_ci| MEDIUM | 2 | 双线性缩放算法,同步开启mipmap。| 7895e41f4b71Sopenharmony_ci| HIGH | 3 | cubic缩放算法。 | 7896e41f4b71Sopenharmony_ci 7897e41f4b71Sopenharmony_ci## 补充说明 7898e41f4b71Sopenharmony_ci### SVG标签说明 7899e41f4b71Sopenharmony_ci 7900e41f4b71Sopenharmony_ci从API version 10开始支持SVG标签,使用版本为(SVG) 1.1,SVG文件需添加xml声明,应以“<?xml”开头,并且SVG标签需设置width,height。当前支持的标签列表有: 7901e41f4b71Sopenharmony_ci- a 7902e41f4b71Sopenharmony_ci- circla 7903e41f4b71Sopenharmony_ci- clipPath 7904e41f4b71Sopenharmony_ci- defs 7905e41f4b71Sopenharmony_ci- ellipse 7906e41f4b71Sopenharmony_ci- feBlend 7907e41f4b71Sopenharmony_ci- feColorMatrix 7908e41f4b71Sopenharmony_ci- feComposite 7909e41f4b71Sopenharmony_ci- feDiffuseLighting 7910e41f4b71Sopenharmony_ci- feDisplacementMap 7911e41f4b71Sopenharmony_ci- feDistantLight 7912e41f4b71Sopenharmony_ci- feFlood 7913e41f4b71Sopenharmony_ci- feGaussianBlur 7914e41f4b71Sopenharmony_ci- feImage 7915e41f4b71Sopenharmony_ci- feMorphology 7916e41f4b71Sopenharmony_ci- feOffset 7917e41f4b71Sopenharmony_ci- fePointLight 7918e41f4b71Sopenharmony_ci- feSpecularLighting 7919e41f4b71Sopenharmony_ci- feSpotLight 7920e41f4b71Sopenharmony_ci- feTurbulence 7921e41f4b71Sopenharmony_ci- filter 7922e41f4b71Sopenharmony_ci- g 7923e41f4b71Sopenharmony_ci- image 7924e41f4b71Sopenharmony_ci- line 7925e41f4b71Sopenharmony_ci- linearGradient 7926e41f4b71Sopenharmony_ci- mask 7927e41f4b71Sopenharmony_ci- path 7928e41f4b71Sopenharmony_ci- pattern 7929e41f4b71Sopenharmony_ci- polygon 7930e41f4b71Sopenharmony_ci- polyline 7931e41f4b71Sopenharmony_ci- radialGradient 7932e41f4b71Sopenharmony_ci- rect 7933e41f4b71Sopenharmony_ci- stop 7934e41f4b71Sopenharmony_ci- svg 7935e41f4b71Sopenharmony_ci- text 7936e41f4b71Sopenharmony_ci- textPath 7937e41f4b71Sopenharmony_ci- tspan 7938e41f4b71Sopenharmony_ci- use