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/NV21RGB888/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/NV21RGB888/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&#60;PropertyKey&#62;): 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.sourceDensityDecodingOptions.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