• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.multimedia.image (图片处理)
2
3本模块提供图片处理效果,包括通过属性创建PixelMap、读取图像像素数据、读取区域内的图片数据等。
4
5> **说明:**
6> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7
8## 导入模块
9
10```js
11import image from '@ohos.multimedia.image';
12```
13
14## image.createPixelMap<sup>8+</sup>
15
16createPixelMap(colors: ArrayBuffer, options: InitializationOptions): Promise\<PixelMap>
17
18通过属性创建PixelMap,默认采用BGRA_8888格式处理数据,通过Promise返回结果。
19
20**系统能力:** SystemCapability.Multimedia.Image.Core
21
22**参数:**
23
24| 参数名  | 类型                                             | 必填 | 说明                                                             |
25| ------- | ------------------------------------------------ | ---- | ---------------------------------------------------------------- |
26| colors  | ArrayBuffer                                      | 是   | BGRA_8888格式的颜色数组。                                        |
27| options | [InitializationOptions](#initializationoptions8) | 是   | 创建像素的属性,包括透明度,尺寸,缩略值,像素格式和是否可编辑。 |
28
29**返回值:**
30
31| 类型                             | 说明                                                                    |
32| -------------------------------- | ----------------------------------------------------------------------- |
33| Promise\<[PixelMap](#pixelmap7)> | 返回Pixelmap。<br>当创建的pixelmap大小超过原图大小时,返回原图pixelmap大小。|
34
35
36**示例:**
37
38```js
39const color = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
40let bufferArr = new Uint8Array(color);
41let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
42image.createPixelMap(color, opts).then((pixelmap) => {
43    console.log('Succeeded in creating pixelmap.');
44}).catch(error => {
45    console.log('Failed to create pixelmap.');
46})
47```
48
49## image.createPixelMap<sup>8+</sup>
50
51createPixelMap(colors: ArrayBuffer, options: InitializationOptions, callback: AsyncCallback\<PixelMap>): void
52
53通过属性创建PixelMap,默认采用BGRA_8888格式处理数据,通过回调函数返回结果。
54
55**系统能力:** SystemCapability.Multimedia.Image.Core
56
57**参数:**
58
59| 参数名   | 类型                                             | 必填 | 说明                       |
60| -------- | ------------------------------------------------ | ---- | -------------------------- |
61| colors   | ArrayBuffer                                      | 是   | BGRA_8888格式的颜色数组。  |
62| options  | [InitializationOptions](#initializationoptions8) | 是   | 属性。                     |
63| callback | AsyncCallback\<[PixelMap](#pixelmap7)>           | 是   | 通过回调返回PixelMap对象。 |
64
65**示例:**
66
67```js
68const color = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
69let bufferArr = new Uint8Array(color);
70let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
71image.createPixelMap(color, opts, (error, pixelmap) => {
72    if(error) {
73        console.log('Failed to create pixelmap.');
74    } else {
75        console.log('Succeeded in creating pixelmap.');
76    }
77})
78```
79
80## PixelMap<sup>7+</sup>
81
82图像像素类,用于读取或写入图像数据以及获取图像信息。在调用PixelMap的方法前,需要先通过createPixelMap创建一个PixelMap实例。目前pixelmap序列化大小最大128MB,超过会送显失败。大小计算方式为(宽\*高\*每像素占用字节数)。
83
84 ### 属性
85
86**系统能力:** SystemCapability.Multimedia.Image.Core
87
88| 名称       | 类型    | 可读 | 可写 | 说明                       |
89| ---------- | ------- | ---- | ---- | -------------------------- |
90| isEditable | boolean | 是   | 否   | 设定是否图像像素可被编辑。 |
91
92### readPixelsToBuffer<sup>7+</sup>
93
94readPixelsToBuffer(dst: ArrayBuffer): Promise\<void>
95
96读取图像像素数据,结果写入ArrayBuffer里,使用Promise形式返回。指定BGRA_8888格式创建pixelmap,读取的像素数据与原数据保持一致。
97
98**系统能力:** SystemCapability.Multimedia.Image.Core
99
100**参数:**
101
102| 参数名 | 类型        | 必填 | 说明                                                                                                  |
103| ------ | ----------- | ---- | ----------------------------------------------------------------------------------------------------- |
104| dst    | ArrayBuffer | 是   | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由getPixelBytesNumber接口获取。 |
105
106**返回值:**
107
108| 类型           | 说明                                            |
109| -------------- | ----------------------------------------------- |
110| Promise\<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
111
112**示例:**
113
114```js
115const readBuffer = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
116pixelmap.readPixelsToBuffer(readBuffer).then(() => {
117    console.log('Succeeded in reading image pixel data.');  //符合条件则进入
118}).catch(error => {
119    console.log('Failed to read image pixel data.');  //不符合条件则进入
120})
121```
122
123### readPixelsToBuffer<sup>7+</sup>
124
125readPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback\<void>): void
126
127读取图像像素数据,结果写入ArrayBuffer里,使用callback形式返回。指定BGRA_8888格式创建pixelmap,读取的像素数据与原数据保持一致。
128
129**系统能力:** SystemCapability.Multimedia.Image.Core
130
131**参数:**
132
133| 参数名   | 类型                 | 必填 | 说明                                                                                                  |
134| -------- | -------------------- | ---- | ----------------------------------------------------------------------------------------------------- |
135| dst      | ArrayBuffer          | 是   | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。缓冲区大小由getPixelBytesNumber接口获取。 |
136| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。                                                                        |
137
138**示例:**
139
140```js
141const readBuffer = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
142pixelmap.readPixelsToBuffer(readBuffer, (err, res) => {
143    if(err) {
144        console.log('Failed to read image pixel data.');  //不符合条件则进入
145    } else {
146        console.log('Succeeded in reading image pixel data.');  //符合条件则进入
147    }
148})
149```
150
151### readPixels<sup>7+</sup>
152
153readPixels(area: PositionArea): Promise\<void>
154
155读取区域内的图片数据,使用Promise形式返回读取结果。
156
157**系统能力:** SystemCapability.Multimedia.Image.Core
158
159**参数:**
160
161| 参数名 | 类型                           | 必填 | 说明                     |
162| ------ | ------------------------------ | ---- | ------------------------ |
163| area   | [PositionArea](#positionarea7) | 是   | 区域大小,根据区域读取。 |
164
165**返回值:**
166
167| 类型           | 说明                                                |
168| :------------- | :-------------------------------------------------- |
169| Promise\<void> | Promise实例,用于获取读取结果,失败时返回错误信息。 |
170
171**示例:**
172
173```js
174const area = {
175    pixels: new ArrayBuffer(8),
176    offset: 0,
177    stride: 8,
178    region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
179}
180pixelmap.readPixels(area).then(() => {
181    console.log('Succeeded in reading the image data in the area.'); //符合条件则进入
182}).catch(error => {
183    console.log('Failed to read the image data in the area.'); //不符合条件则进入
184})
185```
186
187### readPixels<sup>7+</sup>
188
189readPixels(area: PositionArea, callback: AsyncCallback\<void>): void
190
191读取区域内的图片数据,使用callback形式返回读取结果。
192
193**系统能力:** SystemCapability.Multimedia.Image.Core
194
195**参数:**
196
197| 参数名   | 类型                           | 必填 | 说明                           |
198| -------- | ------------------------------ | ---- | ------------------------------ |
199| area     | [PositionArea](#positionarea7) | 是   | 区域大小,根据区域读取。       |
200| callback | AsyncCallback\<void>           | 是   | 获取回调,失败时返回错误信息。 |
201
202**示例:**
203
204```js
205const color = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
206let bufferArr = new Uint8Array(color);
207let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
208image.createPixelMap(color, opts, (err, pixelmap) => {
209    if(pixelmap == undefined){
210        console.info('createPixelMap failed.');
211    } else {
212        const area = { pixels: new ArrayBuffer(8),
213            offset: 0,
214            stride: 8,
215            region: { size: { height: 1, width: 2 }, x: 0, y: 0 }};
216        pixelmap.readPixels(area, () => {
217            console.info('readPixels success');
218        })
219    }
220})
221```
222
223### writePixels<sup>7+</sup>
224
225writePixels(area: PositionArea): Promise\<void>
226
227将PixelMap写入指定区域内,使用Promise形式返回写入结果。
228
229**系统能力:** SystemCapability.Multimedia.Image.Core
230
231**参数:**
232
233| 参数名 | 类型                           | 必填 | 说明                 |
234| ------ | ------------------------------ | ---- | -------------------- |
235| area   | [PositionArea](#positionarea7) | 是   | 区域,根据区域写入。 |
236
237**返回值:**
238
239| 类型           | 说明                                                |
240| :------------- | :-------------------------------------------------- |
241| Promise\<void> | Promise实例,用于获取写入结果,失败时返回错误信息。 |
242
243**示例:**
244
245```js
246const color = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
247let bufferArr = new Uint8Array(color);
248let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
249image.createPixelMap(color, opts)
250    .then( pixelmap => {
251        if (pixelmap == undefined) {
252            console.info('createPixelMap failed.');
253        }
254        const area = { pixels: new ArrayBuffer(8),
255            offset: 0,
256            stride: 8,
257            region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
258        }
259        let bufferArr = new Uint8Array(area.pixels);
260        for (var i = 0; i < bufferArr.length; i++) {
261            bufferArr[i] = i + 1;
262        }
263
264        pixelmap.writePixels(area).then(() => {
265		    console.info('Succeeded to write pixelmap into the specified area.');
266        })
267    }).catch(error => {
268        console.log('error: ' + error);
269    })
270```
271
272### writePixels<sup>7+</sup>
273
274writePixels(area: PositionArea, callback: AsyncCallback\<void>): void
275
276将PixelMap写入指定区域内,使用callback形式返回写入结果。
277
278**系统能力:** SystemCapability.Multimedia.Image.Core
279
280**参数:**
281
282| 参数名    | 类型                           | 必填 | 说明                           |
283| --------- | ------------------------------ | ---- | ------------------------------ |
284| area      | [PositionArea](#positionarea7) | 是   | 区域,根据区域写入。           |
285| callback  | AsyncCallback\<void>           | 是   | 获取回调,失败时返回错误信息。 |
286
287**示例:**
288
289```js
290const area = { pixels: new ArrayBuffer(8),
291    offset: 0,
292    stride: 8,
293    region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
294}
295let bufferArr = new Uint8Array(area.pixels);
296for (var i = 0; i < bufferArr.length; i++) {
297    bufferArr[i] = i + 1;
298}
299pixelmap.writePixels(area, (error) => {
300    if (error != undefined) {
301		console.info('Failed to write pixelmap into the specified area.');
302	} else {
303		console.info('Succeeded to write pixelmap into the specified area.');
304	}
305})
306```
307
308### writeBufferToPixels<sup>7+</sup>
309
310writeBufferToPixels(src: ArrayBuffer): Promise\<void>
311
312读取缓冲区中的图片数据,结果写入PixelMap中,使用Promise形式返回。
313
314**系统能力:** SystemCapability.Multimedia.Image.Core
315
316**参数:**
317
318| 参数名 | 类型        | 必填 | 说明           |
319| ------ | ----------- | ---- | -------------- |
320| src    | ArrayBuffer | 是   | 图像像素数据。 |
321
322**返回值:**
323
324| 类型           | 说明                                            |
325| -------------- | ----------------------------------------------- |
326| Promise\<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
327
328**示例:**
329
330```js
331const color = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
332let bufferArr = new Uint8Array(color);
333for (var i = 0; i < bufferArr.length; i++) {
334    bufferArr[i] = i + 1;
335}
336pixelmap.writeBufferToPixels(color).then(() => {
337    console.log("Succeeded in writing data from a buffer to a PixelMap.");
338}).catch((err) => {
339    console.error("Failed to write data from a buffer to a PixelMap.");
340})
341```
342
343### writeBufferToPixels<sup>7+</sup>
344
345writeBufferToPixels(src: ArrayBuffer, callback: AsyncCallback\<void>): void
346
347读取缓冲区中的图片数据,结果写入PixelMap中,使用callback形式返回。
348
349**系统能力:** SystemCapability.Multimedia.Image.Core
350
351**参数:**
352
353| 参数名   | 类型                 | 必填 | 说明                           |
354| -------- | -------------------- | ---- | ------------------------------ |
355| src      | ArrayBuffer          | 是   | 图像像素数据。                 |
356| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。 |
357
358**示例:**
359
360```js
361const color = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
362let bufferArr = new Uint8Array(color);
363for (var i = 0; i < bufferArr.length; i++) {
364    bufferArr[i] = i + 1;
365}
366pixelmap.writeBufferToPixels(color, function(err) {
367    if (err) {
368        console.error("Failed to write data from a buffer to a PixelMap.");
369        return;
370    } else {
371		console.log("Succeeded in writing data from a buffer to a PixelMap.");
372	}
373});
374```
375
376### getImageInfo<sup>7+</sup>
377
378getImageInfo(): Promise\<ImageInfo>
379
380获取图像像素信息,使用Promise形式返回获取的图像像素信息。
381
382**系统能力:** SystemCapability.Multimedia.Image.Core
383
384**返回值:**
385
386| 类型                              | 说明                                                        |
387| --------------------------------- | ----------------------------------------------------------- |
388| Promise\<[ImageInfo](#imageinfo)> | Promise实例,用于异步获取图像像素信息,失败时返回错误信息。 |
389
390**示例:**
391
392```js
393const color = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
394let opts = { editable: true, pixelFormat: 2, size: { height: 6, width: 8 } }
395image.createPixelMap(color, opts).then(pixelmap => {
396    if (pixelmap == undefined) {
397        console.error("Failed to obtain the image pixel map information.");
398    }
399    pixelmap.getImageInfo().then(imageInfo => {
400        if (imageInfo == undefined) {
401            console.error("Failed to obtain the image pixel map information.");
402        }
403        if (imageInfo.size.height == 4 && imageInfo.size.width == 6) {
404            console.log("Succeeded in obtaining the image pixel map information.");
405        }
406    })
407})
408```
409
410### getImageInfo<sup>7+</sup>
411
412getImageInfo(callback: AsyncCallback\<ImageInfo>): void
413
414获取图像像素信息,使用callback形式返回获取的图像像素信息。
415
416**系统能力:** SystemCapability.Multimedia.Image.Core
417
418**参数:**
419
420| 参数名   | 类型                                    | 必填 | 说明                                                         |
421| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
422| callback | AsyncCallback\<[ImageInfo](#imageinfo)> | 是   | 获取图像像素信息回调,异步返回图像像素信息,失败时返回错误信息。 |
423
424**示例:**
425
426```js
427const color = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
428let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
429image.createPixelMap(color, opts, (err, pixelmap) => {
430    if (pixelmap == undefined) {
431        console.error("Failed to obtain the image pixel map information.");
432    }
433    pixelmap.getImageInfo((err, imageInfo) => {
434        if (imageInfo == undefined) {
435            console.error("Failed to obtain the image pixel map information.");
436        }
437        if (imageInfo.size.height == 4 && imageInfo.size.width == 6) {
438            console.log("Succeeded in obtaining the image pixel map information.");
439        }
440    })
441})
442```
443
444### getBytesNumberPerRow<sup>7+</sup>
445
446getBytesNumberPerRow(): number
447
448获取图像像素每行字节数。
449
450**系统能力:** SystemCapability.Multimedia.Image.Core
451
452**返回值:**
453
454| 类型   | 说明                 |
455| ------ | -------------------- |
456| number | 图像像素的行字节数。 |
457
458**示例:**
459
460```js
461const color = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
462let bufferArr = new Uint8Array(color);
463let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
464image.createPixelMap(color, opts, (err,pixelmap) => {
465    let rowCount = pixelmap.getBytesNumberPerRow();
466})
467```
468
469### getPixelBytesNumber<sup>7+</sup>
470
471getPixelBytesNumber(): number
472
473获取图像像素的总字节数。
474
475**系统能力:** SystemCapability.Multimedia.Image.Core
476
477**返回值:**
478
479| 类型   | 说明                 |
480| ------ | -------------------- |
481| number | 图像像素的总字节数。 |
482
483**示例:**
484
485```js
486let pixelBytesNumber = pixelmap.getPixelBytesNumber();
487```
488
489### getDensity<sup>9+</sup>
490
491getDensity():number
492
493获取当前图像像素的密度。
494
495**系统能力:** SystemCapability.Multimedia.Image.Core
496
497**返回值:**
498
499| 类型   | 说明            |
500| ------ | --------------- |
501| number | 图像像素的密度。|
502
503**示例:**
504
505```js
506let getDensity = pixelmap.getDensity();
507```
508
509### opacity<sup>9+</sup>
510
511opacity(rate: number, callback: AsyncCallback\<void>): void
512
513通过设置透明比率来让PixelMap达到对应的透明效果,使用callback形式返回。
514
515**系统能力:** SystemCapability.Multimedia.Image.Core
516
517**参数:**
518
519| 参数名   | 类型                 | 必填 | 说明                           |
520| -------- | -------------------- | ---- | ------------------------------ |
521| rate     | number               | 是   | 透明比率的值,取值范围:0-1。   |
522| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。 |
523
524**示例:**
525
526```js
527var rate = 0.5;
528pixelmap.opacity(rate, (err) => {
529	if (err) {
530        console.error("Failed to set opacity.");
531        return;
532    } else {
533        console.log("Succeeded in setting opacity.");
534	}
535})
536```
537
538### opacity<sup>9+</sup>
539
540opacity(rate: number): Promise\<void>
541
542通过设置透明比率来让PixelMap达到对应的透明效果,使用Promise形式返回。
543
544**系统能力:** SystemCapability.Multimedia.Image.Core
545
546**参数:**
547
548| 参数名 | 类型   | 必填 | 说明                        |
549| ------ | ------ | ---- | --------------------------- |
550| rate   | number | 是   | 透明比率的值,取值范围:0-1。|
551
552**返回值:**
553
554| 类型           | 说明                                            |
555| -------------- | ----------------------------------------------- |
556| Promise\<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
557
558**示例:**
559
560```js
561async function Demo() {
562    await pixelmap.opacity(0.5);
563}
564```
565
566### createAlphaPixelmap<sup>9+</sup>
567
568createAlphaPixelmap(): Promise\<PixelMap>
569
570根据Alpha通道的信息,来生成一个仅包含Alpha通道信息的pixelmap,可用于阴影效果,使用Promise形式返回。
571
572**系统能力:** SystemCapability.Multimedia.Image.Core
573
574**返回值:**
575
576| 类型                             | 说明                        |
577| -------------------------------- | --------------------------- |
578| Promise\<[PixelMap](#pixelmap7)> | Promise实例,返回pixelmap。 |
579
580**示例:**
581
582```js
583async function Demo() {
584    await pixelmap.createAlphaPixelmap();
585}
586```
587
588### createAlphaPixelmap<sup>9+</sup>
589
590createAlphaPixelmap(callback: AsyncCallback\<PixelMap>): void
591
592根据Alpha通道的信息,来生成一个仅包含Alpha通道信息的pixelmap,可用于阴影效果,使用callback形式返回。
593
594**系统能力:** SystemCapability.Multimedia.Image.Core
595
596**参数:**
597
598| 参数名   | 类型                     | 必填 | 说明                     |
599| -------- | ------------------------ | ---- | ------------------------ |
600| callback | AsyncCallback\<PixelMap> | 是   | 获取回调,异步返回结果。 |
601
602**示例:**
603
604```js
605pixelmap.createAlphaPixelmap((err, alphaPixelMap) => {
606    if (alphaPixelMap == undefined) {
607        console.info('Failed to obtain new pixel map.');
608    } else {
609        console.info('Succeed in obtaining new pixel map.');
610    }
611})
612```
613
614### scale<sup>9+</sup>
615
616scale(x: number, y: number, callback: AsyncCallback\<void>): void
617
618根据输入的宽高对图片进行缩放,使用callback形式返回。
619
620**系统能力:** SystemCapability.Multimedia.Image.Core
621
622**参数:**
623
624| 参数名   | 类型                 | 必填 | 说明                            |
625| -------- | -------------------- | ---- | ------------------------------- |
626| x        | number               | 是   | 宽度的缩放值,其值为输入的倍数。|
627| y        | number               | 是   | 高度的缩放值,其值为输入的倍数。|
628| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。  |
629
630**示例:**
631
632```js
633async function Demo() {
634	await pixelmap.scale(2.0, 1.0);
635}
636```
637
638### scale<sup>9+</sup>
639
640scale(x: number, y: number): Promise\<void>
641
642根据输入的宽高对图片进行缩放,使用Promise形式返回。
643
644**系统能力:** SystemCapability.Multimedia.Image.Core
645
646**参数:**
647
648| 参数名 | 类型   | 必填 | 说明                            |
649| ------ | ------ | ---- | ------------------------------- |
650| x      | number | 是   | 宽度的缩放值,其值为输入的倍数。|
651| y      | number | 是   | 高度的缩放值,其值为输入的倍数。|
652
653**返回值:**
654
655| 类型           | 说明                        |
656| -------------- | --------------------------- |
657| Promise\<void> | Promise实例,异步返回结果。 |
658
659**示例:**
660
661```js
662async function Demo() {
663	await pixelmap.scale(2.0, 1.0);
664}
665```
666
667### translate<sup>9+</sup>
668
669translate(x: number, y: number, callback: AsyncCallback\<void>): void
670
671根据输入的坐标对图片进行位置变换,使用callback形式返回。
672
673**系统能力:** SystemCapability.Multimedia.Image.Core
674
675**参数:**
676
677| 参数名   | 类型                 | 必填 | 说明                          |
678| -------- | -------------------- | ---- | ----------------------------- |
679| x        | number               | 是   | 区域横坐标。                  |
680| y        | number               | 是   | 区域纵坐标。                  |
681| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。|
682
683**示例:**
684
685```js
686async function Demo() {
687	await pixelmap.translate(3.0, 1.0);
688}
689```
690
691### translate<sup>9+</sup>
692
693translate(x: number, y: number): Promise\<void>
694
695根据输入的坐标对图片进行位置变换,使用Promise形式返回。
696
697**系统能力:** SystemCapability.Multimedia.Image.Core
698
699**参数:**
700
701| 参数名 | 类型   | 必填 | 说明        |
702| ------ | ------ | ---- | ----------- |
703| x      | number | 是   | 区域横坐标。|
704| y      | number | 是   | 区域纵坐标。|
705
706**返回值:**
707
708| 类型           | 说明                        |
709| -------------- | --------------------------- |
710| Promise\<void> | Promise实例,异步返回结果。 |
711
712**示例:**
713
714```js
715async function Demo() {
716	await pixelmap.translate(3.0, 1.0);
717}
718```
719
720### rotate<sup>9+</sup>
721
722rotate(angle: number, callback: AsyncCallback\<void>): void
723
724根据输入的角度对图片进行旋转,使用callback形式返回。
725
726**系统能力:** SystemCapability.Multimedia.Image.Core
727
728**参数:**
729
730| 参数名   | 类型                 | 必填 | 说明                          |
731| -------- | -------------------- | ---- | ----------------------------- |
732| angle    | number               | 是   | 图片旋转的角度。              |
733| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。|
734
735**示例:**
736
737```js
738var angle = 90.0;
739pixelmap.rotate(angle, (err) => {
740	if (err) {
741        console.error("Failed to set rotation.");
742        return;
743    } else {
744        console.log("Succeeded in setting rotation.");
745	}
746})
747```
748
749### rotate<sup>9+</sup>
750
751rotate(angle: number): Promise\<void>
752
753根据输入的角度对图片进行旋转,使用Promise形式返回。
754
755**系统能力:** SystemCapability.Multimedia.Image.Core
756
757**参数:**
758
759| 参数名 | 类型   | 必填 | 说明                          |
760| ------ | ------ | ---- | ----------------------------- |
761| angle  | number | 是   | 图片旋转的角度。              |
762
763**返回值:**
764
765| 类型           | 说明                        |
766| -------------- | --------------------------- |
767| Promise\<void> | Promise实例,异步返回结果。 |
768
769**示例:**
770
771```js
772async function Demo() {
773	await pixelmap.rotate(90.0);
774}
775```
776
777### flip<sup>9+</sup>
778
779flip(horizontal: boolean, vertical: boolean, callback: AsyncCallback\<void>): void
780
781根据输入的条件对图片进行翻转,使用callback形式返回。
782
783**系统能力:** SystemCapability.Multimedia.Image.Core
784
785**参数:**
786
787| 参数名     | 类型                 | 必填 | 说明                          |
788| ---------- | -------------------- | ---- | ----------------------------- |
789| horizontal | boolean              | 是   | 水平翻转。                    |
790| vertical   | boolean              | 是   | 垂直翻转。                    |
791| callback   | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。|
792
793**示例:**
794
795```js
796async function Demo() {
797	await pixelmap.flip(false, true);
798}
799```
800
801### flip<sup>9+</sup>
802
803flip(horizontal: boolean, vertical: boolean): Promise\<void>
804
805根据输入的条件对图片进行翻转,使用Promise形式返回。
806
807**系统能力:** SystemCapability.Multimedia.Image.Core
808
809**参数:**
810
811| 参数名     | 类型    | 必填 | 说明      |
812| ---------- | ------- | ---- | --------- |
813| horizontal | boolean | 是   | 水平翻转。|
814| vertical   | boolean | 是   | 垂直翻转。|
815
816**返回值:**
817
818| 类型           | 说明                        |
819| -------------- | --------------------------- |
820| Promise\<void> | Promise实例,异步返回结果。 |
821
822**示例:**
823
824```js
825async function Demo() {
826	await pixelmap.flip(false, true);
827}
828```
829
830### crop<sup>9+</sup>
831
832crop(region: Region, callback: AsyncCallback\<void>): void
833
834根据输入的尺寸对图片进行裁剪,使用callback形式返回。
835
836**系统能力:** SystemCapability.Multimedia.Image.Core
837
838**参数:**
839
840| 参数名   | 类型                 | 必填 | 说明                          |
841| -------- | -------------------- | ---- | ----------------------------- |
842| region   | [Region](#region7)   | 是   | 裁剪的尺寸。                  |
843| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。|
844
845**示例:**
846
847```js
848async function Demo() {
849	await pixelmap.crop({ x: 0, y: 0, size: { height: 100, width: 100 } });
850}
851```
852
853### crop<sup>9+</sup>
854
855crop(region: Region): Promise\<void>
856
857根据输入的尺寸对图片进行裁剪,使用Promise形式返回。
858
859**系统能力:** SystemCapability.Multimedia.Image.Core
860
861**参数:**
862
863| 参数名 | 类型               | 必填 | 说明        |
864| ------ | ------------------ | ---- | ----------- |
865| region | [Region](#region7) | 是   | 裁剪的尺寸。|
866
867**返回值:**
868
869| 类型           | 说明                        |
870| -------------- | --------------------------- |
871| Promise\<void> | Promise实例,异步返回结果。 |
872
873**示例:**
874
875```js
876async function Demo() {
877	await pixelmap.crop({ x: 0, y: 0, size: { height: 100, width: 100 } });
878}
879```
880
881### release<sup>7+</sup>
882
883release():Promise\<void>
884
885释放PixelMap对象,使用Promise形式返回释放结果。
886
887**系统能力:** SystemCapability.Multimedia.Image.Core
888
889**返回值:**
890
891| 类型           | 说明                            |
892| -------------- | ------------------------------- |
893| Promise\<void> | Promise实例,异步返回释放结果。 |
894
895**示例:**
896
897```js
898pixelmap.release().then(() => {
899	console.log('Succeeded in releasing pixelmap object.');
900}).catch(error => {
901	console.log('Failed to release pixelmap object.');
902})
903```
904
905### release<sup>7+</sup>
906
907release(callback: AsyncCallback\<void>): void
908
909释放PixelMap对象,使用callback形式返回释放结果。
910
911**系统能力:** SystemCapability.Multimedia.Image.Core
912
913**参数:**
914
915| 参数名   | 类型                 | 必填 | 说明               |
916| -------- | -------------------- | ---- | ------------------ |
917| callback | AsyncCallback\<void> | 是   | 异步返回释放结果。 |
918
919**示例:**
920
921```js
922pixelmap.release(() => {
923    console.log('Succeeded in releasing pixelmap object.');
924})
925```
926
927## image.createImageSource
928
929createImageSource(uri: string): ImageSource
930
931通过传入的uri创建图片源实例。
932
933**系统能力:** SystemCapability.Multimedia.Image.ImageSource
934
935**参数:**
936
937| 参数名 | 类型   | 必填 | 说明                               |
938| ------ | ------ | ---- | ---------------------------------- |
939| uri    | string | 是   | 图片路径,当前仅支持应用沙箱路径。</br>当前支持格式有:.jpg .png .gif .bmp .webp RAW。 |
940
941**返回值:**
942
943| 类型                        | 说明                                         |
944| --------------------------- | -------------------------------------------- |
945| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 |
946
947**示例:**
948
949```js
950//Stage模型
951const context = getContext(this);
952const path = context.cacheDir() + "/test.jpg";
953const imageSourceApi = image.createImageSource(path);
954```
955
956```js
957//FA模型
958import featureAbility from '@ohos.ability.featureAbility';
959
960const context = featureAbility.getContext();
961const path = context.getCacheDir() + "/test.jpg";
962const imageSourceApi = image.createImageSource(path);
963```
964
965## image.createImageSource<sup>9+</sup>
966
967createImageSource(uri: string, options: SourceOptions): ImageSource
968
969通过传入的uri创建图片源实例。
970
971**系统能力:** SystemCapability.Multimedia.Image.ImageSource
972
973**参数:**
974
975| 参数名  | 类型                            | 必填 | 说明                                |
976| ------- | ------------------------------- | ---- | ----------------------------------- |
977| uri     | string                          | 是   | 图片路径,当前仅支持应用沙箱路径。</br>当前支持格式有:.jpg .png .gif .bmp .webp RAW。 |
978| options | [SourceOptions](#sourceoptions9) | 是   | 图片属性,包括图片序号与默认属性值。|
979
980**返回值:**
981
982| 类型                        | 说明                                         |
983| --------------------------- | -------------------------------------------- |
984| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 |
985
986**示例:**
987
988```js
989var sourceOptions = { sourceDensity: 120 };
990let imageSource = image.createImageSource('test.png', sourceOptions);
991```
992
993## image.createImageSource<sup>7+</sup>
994
995createImageSource(fd: number): ImageSource
996
997通过传入文件描述符来创建图片源实例。
998
999**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1000
1001**参数:**
1002
1003| 参数名 | 类型   | 必填 | 说明          |
1004| ------ | ------ | ---- | ------------- |
1005| fd     | number | 是   | 文件描述符fd。|
1006
1007**返回值:**
1008
1009| 类型                        | 说明                                         |
1010| --------------------------- | -------------------------------------------- |
1011| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 |
1012
1013**示例:**
1014
1015```js
1016const imageSourceApi = image.createImageSource(0);
1017```
1018
1019## image.createImageSource<sup>9+</sup>
1020
1021createImageSource(fd: number, options: SourceOptions): ImageSource
1022
1023通过传入文件描述符来创建图片源实例。
1024
1025**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1026
1027**参数:**
1028
1029| 参数名  | 类型                            | 必填 | 说明                                |
1030| ------- | ------------------------------- | ---- | ----------------------------------- |
1031| fd      | number                          | 是   | 文件描述符fd。                      |
1032| options | [SourceOptions](#sourceoptions9) | 是   | 图片属性,包括图片序号与默认属性值。|
1033
1034**返回值:**
1035
1036| 类型                        | 说明                                         |
1037| --------------------------- | -------------------------------------------- |
1038| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 |
1039
1040**示例:**
1041
1042```js
1043var sourceOptions = { sourceDensity: 120 };
1044const imageSourceApi = image.createImageSource(0, sourceOptions);
1045```
1046
1047## image.createImageSource<sup>9+</sup>
1048
1049createImageSource(buf: ArrayBuffer): ImageSource
1050
1051通过缓冲区创建图片源实例。
1052
1053**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1054
1055**参数:**
1056
1057| 参数名 | 类型        | 必填 | 说明             |
1058| ------ | ----------- | ---- | ---------------- |
1059| buf    | ArrayBuffer | 是   | 图像缓冲区数组。 |
1060
1061**示例:**
1062
1063```js
1064const buf = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
1065const imageSourceApi = image.createImageSource(buf);
1066```
1067
1068## image.createImageSource<sup>9+</sup>
1069
1070createImageSource(buf: ArrayBuffer, options: SourceOptions): ImageSource
1071
1072通过缓冲区创建图片源实例。
1073
1074**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1075
1076**参数:**
1077
1078| 参数名 | 类型                             | 必填 | 说明                                 |
1079| ------ | -------------------------------- | ---- | ------------------------------------ |
1080| buf    | ArrayBuffer                      | 是   | 图像缓冲区数组。                     |
1081| options | [SourceOptions](#sourceoptions9) | 是   | 图片属性,包括图片序号与默认属性值。 |
1082
1083**返回值:**
1084
1085| 类型                        | 说明                                         |
1086| --------------------------- | -------------------------------------------- |
1087| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 |
1088
1089**示例:**
1090
1091```js
1092const data = new ArrayBuffer(112);
1093const imageSourceApi = image.createImageSource(data);
1094```
1095
1096## image.CreateIncrementalSource<sup>9+</sup>
1097
1098CreateIncrementalSource(buf: ArrayBuffer): ImageSource
1099
1100通过缓冲区以增量的方式创建图片源实例。
1101
1102**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1103
1104**参数:**
1105
1106| 参数名  | 类型        | 必填 | 说明      |
1107| ------- | ------------| ---- | ----------|
1108| buf     | ArrayBuffer | 是   | 增量数据。|
1109
1110**返回值:**
1111
1112| 类型                        | 说明                              |
1113| --------------------------- | --------------------------------- |
1114| [ImageSource](#imagesource) | 返回图片源,失败时返回undefined。 |
1115
1116**示例:**
1117
1118```js
1119const buf = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
1120const imageSourceIncrementalSApi = image.CreateIncrementalSource(buf);
1121```
1122
1123## image.CreateIncrementalSource<sup>9+</sup>
1124
1125CreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): ImageSource
1126
1127通过缓冲区以增量的方式创建图片源实例。
1128
1129**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1130
1131**参数:**
1132
1133| 参数名  | 类型                            | 必填 | 说明                                 |
1134| ------- | ------------------------------- | ---- | ------------------------------------ |
1135| buf     | ArrayBuffer                     | 是   | 增量数据。                           |
1136| options | [SourceOptions](#sourceoptions9) | 否   | 图片属性,包括图片序号与默认属性值。 |
1137
1138**返回值:**
1139
1140| 类型                        | 说明                              |
1141| --------------------------- | --------------------------------- |
1142| [ImageSource](#imagesource) | 返回图片源,失败时返回undefined。 |
1143
1144**示例:**
1145
1146```js
1147const buf = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
1148const imageSourceIncrementalSApi = image.CreateIncrementalSource(buf);
1149```
1150
1151## ImageSource
1152
1153图片源类,用于获取图片相关信息。在调用ImageSource的方法前,需要先通过createImageSource构建一个ImageSource实例。
1154
1155### 属性
1156
1157**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1158
1159| 名称             | 类型           | 可读 | 可写 | 说明                                                         |
1160| ---------------- | -------------- | ---- | ---- | ------------------------------------------------------------ |
1161| supportedFormats | Array\<string> | 是   | 否   | 支持的图片格式,包括:png,jpeg,bmp,gif,webp,RAW。 |
1162
1163### getImageInfo
1164
1165getImageInfo(index: number, callback: AsyncCallback\<ImageInfo>): void
1166
1167获取指定序号的图片信息,使用callback形式返回图片信息。
1168
1169**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1170
1171**参数:**
1172
1173| 参数名   | 类型                                   | 必填 | 说明                                     |
1174| -------- | -------------------------------------- | ---- | ---------------------------------------- |
1175| index    | number                                 | 是   | 创建图片源时的序号。                     |
1176| callback | AsyncCallback<[ImageInfo](#imageinfo)> | 是   | 获取图片信息回调,异步返回图片信息对象。 |
1177
1178**示例:**
1179
1180```js
1181imageSourceApi.getImageInfo(0,(error, imageInfo) => {
1182    if(error) {
1183        console.log('getImageInfo failed.');
1184    } else {
1185        console.log('getImageInfo succeeded.');
1186    }
1187})
1188```
1189
1190### getImageInfo
1191
1192getImageInfo(callback: AsyncCallback\<ImageInfo>): void
1193
1194获取图片信息,使用callback形式返回图片信息。
1195
1196**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1197
1198**参数:**
1199
1200| 参数名   | 类型                                   | 必填 | 说明                                     |
1201| -------- | -------------------------------------- | ---- | ---------------------------------------- |
1202| callback | AsyncCallback<[ImageInfo](#imageinfo)> | 是   | 获取图片信息回调,异步返回图片信息对象。 |
1203
1204**示例:**
1205
1206```js
1207imageSourceApi.getImageInfo(imageInfo => {
1208    console.log('Succeeded in obtaining the image information.');
1209})
1210```
1211
1212### getImageInfo
1213
1214getImageInfo(index?: number): Promise\<ImageInfo>
1215
1216获取图片信息,使用Promise形式返回图片信息。
1217
1218**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1219
1220**参数:**
1221
1222| 参数名| 类型   | 必填 | 说明                                  |
1223| ----- | ------ | ---- | ------------------------------------- |
1224| index | number | 否   | 创建图片源时的序号,不选择时默认为0。 |
1225
1226**返回值:**
1227
1228| 类型                             | 说明                   |
1229| -------------------------------- | ---------------------- |
1230| Promise<[ImageInfo](#imageinfo)> | 返回获取到的图片信息。 |
1231
1232**示例:**
1233
1234```js
1235imageSourceApi.getImageInfo(0)
1236    .then(imageInfo => {
1237		console.log('Succeeded in obtaining the image information.');
1238	}).catch(error => {
1239		console.log('Failed to obtain the image information.');
1240	})
1241```
1242
1243### getImageProperty<sup>7+</sup>
1244
1245getImageProperty(key:string, options?: GetImagePropertyOptions): Promise\<string>
1246
1247获取图片中给定索引处图像的指定属性键的值,用Promise形式返回结果。
1248
1249**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1250
1251 **参数:**
1252
1253| 参数名  | 类型                                                 | 必填 | 说明                                 |
1254| ------- | ---------------------------------------------------- | ---- | ------------------------------------ |
1255| key     | string                                               | 是   | 图片属性名。                         |
1256| options | [GetImagePropertyOptions](#getimagepropertyoptions7) | 否   | 图片属性,包括图片序号与默认属性值。 |
1257
1258**返回值:**
1259
1260| 类型             | 说明                                                              |
1261| ---------------- | ----------------------------------------------------------------- |
1262| Promise\<string> | Promise实例,用于异步获取图片属性值,如获取失败则返回属性默认值。 |
1263
1264**示例:**
1265
1266```js
1267imageSourceApi.getImageProperty("BitsPerSample")
1268    .then(data => {
1269		console.log('Succeeded in getting the value of the specified attribute key of the image.');
1270	})
1271```
1272
1273### getImageProperty<sup>7+</sup>
1274
1275getImageProperty(key:string, callback: AsyncCallback\<string>): void
1276
1277获取图片中给定索引处图像的指定属性键的值,用callback形式返回结果。
1278
1279**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1280
1281 **参数:**
1282
1283| 参数名   | 类型                   | 必填 | 说明                                                         |
1284| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
1285| key      | string                 | 是   | 图片属性名。                                                 |
1286| callback | AsyncCallback\<string> | 是   | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 |
1287
1288**示例:**
1289
1290```js
1291imageSourceApi.getImageProperty("BitsPerSample",(error,data) => {
1292    if(error) {
1293        console.log('Failed to get the value of the specified attribute key of the image.');
1294    } else {
1295        console.log('Succeeded in getting the value of the specified attribute key of the image.');
1296    }
1297})
1298```
1299
1300### getImageProperty<sup>7+</sup>
1301
1302getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCallback\<string>): void
1303
1304获取图片指定属性键的值,callback形式返回结果。
1305
1306**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1307
1308**参数:**
1309
1310| 参数名   | 类型                                                 | 必填 | 说明                                                          |
1311| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------- |
1312| key      | string                                               | 是   | 图片属性名。                                                  |
1313| options  | [GetImagePropertyOptions](#getimagepropertyoptions7) | 是   | 图片属性,包括图片序号与默认属性值。                          |
1314| callback | AsyncCallback\<string>                               | 是   | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。|
1315
1316**示例:**
1317
1318```js
1319let property = { index: 0, defaultValue: '9999' }
1320imageSourceApi.getImageProperty("BitsPerSample",property,(error,data) => {
1321    if(error) {
1322        console.log('Failed to get the value of the specified attribute key of the image.');
1323    } else {
1324        console.log('Succeeded in getting the value of the specified attribute key of the image.');
1325    }
1326})
1327```
1328
1329### modifyImageProperty<sup>9+</sup>
1330
1331modifyImageProperty(key: string, value: string): Promise\<void>
1332
1333通过指定的键修改图片属性的值,使用Promise形式返回结果。
1334
1335**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1336
1337**参数:**
1338
1339| 参数名  | 类型   | 必填 | 说明         |
1340| ------- | ------ | ---- | ------------ |
1341| key     | string | 是   | 图片属性名。 |
1342| value   | string | 是   | 属性值。     |
1343
1344**返回值:**
1345
1346| 类型           | 说明                        |
1347| -------------- | --------------------------- |
1348| Promise\<void> | Promise实例,异步返回结果。 |
1349
1350**示例:**
1351
1352```js
1353imageSourceApi.modifyImageProperty("ImageWidth", "120").then(() => {
1354    const w = imageSourceApi.getImageProperty("ImageWidth")
1355    console.info('w', w);
1356})
1357```
1358
1359### modifyImageProperty<sup>9+</sup>
1360
1361modifyImageProperty(key: string, value: string, callback: AsyncCallback\<void>): void
1362
1363通过指定的键修改图片属性的值,callback形式返回结果。
1364
1365**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1366
1367**参数:**
1368
1369| 参数名   | 类型                | 必填 | 说明                           |
1370| -------- | ------------------- | ---- | ------------------------------ |
1371| key      | string              | 是   | 图片属性名。                   |
1372| value    | string              | 是   | 属性值。                       |
1373| callback | AsyncCallback\<void> | 是   | 修改属性值,callback返回结果。 |
1374
1375**示例:**
1376
1377```js
1378imageSourceApi.modifyImageProperty("ImageWidth", "120",() => {})
1379```
1380
1381### updateData<sup>9+</sup>
1382
1383updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number): Promise\<void>
1384
1385更新增量数据,使用Promise形式返回结果。
1386
1387**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1388
1389**参数:**
1390
1391| 参数名     | 类型        | 必填 | 说明         |
1392| ---------- | ----------- | ---- | ------------ |
1393| buf        | ArrayBuffer | 是   | 增量数据。   |
1394| isFinished | boolean     | 是   | 是否更新完。 |
1395| value      | number      | 是   | 偏移量。     |
1396| length     | number      | 是   | 数组长。     |
1397
1398**返回值:**
1399
1400| 类型           | 说明                       |
1401| -------------- | -------------------------- |
1402| Promise\<void> | Promise实例,异步返回结果。|
1403
1404**示例:**
1405
1406```js
1407const array = new ArrayBuffer(100);
1408imageSourceApi.updateData(array, false, 0, 10).then(data => {
1409    console.info('Succeeded in updating data.');
1410})
1411```
1412
1413
1414### updateData<sup>9+</sup>
1415
1416updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number, callback: AsyncCallback\<void>): void
1417
1418更新增量数据,callback形式返回结果。
1419
1420**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1421
1422**参数:**
1423
1424| 参数名     | 类型                | 必填 | 说明                 |
1425| ---------- | ------------------- | ---- | -------------------- |
1426| buf        | ArrayBuffer         | 是   | 增量数据。           |
1427| isFinished | boolean             | 是   | 是否更新完。         |
1428| value      | number              | 是   | 偏移量。             |
1429| length     | number              | 是   | 数组长。             |
1430| callback   | AsyncCallback\<void> | 是   | 回调表示成功或失败。 |
1431
1432**示例:**
1433
1434```js
1435const array = new ArrayBuffer(100);
1436imageSourceApi.updateData(array, false, 0, 10,(error,data )=> {
1437    if(data !== undefined){
1438        console.info('Succeeded in updating data.');
1439    }
1440})
1441```
1442
1443### createPixelMap<sup>7+</sup>
1444
1445createPixelMap(options?: DecodingOptions): Promise\<PixelMap>
1446
1447通过图片解码参数创建PixelMap对象。
1448
1449**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1450
1451**参数:**
1452
1453| 参数名  | 类型                                 | 必填 | 说明       |
1454| ------- | ------------------------------------ | ---- | ---------- |
1455| options | [DecodingOptions](#decodingoptions7) | 否   | 解码参数。 |
1456
1457**返回值:**
1458
1459| 类型                             | 说明                  |
1460| -------------------------------- | --------------------- |
1461| Promise\<[PixelMap](#pixelmap7)> | 异步返回Promise对象。 |
1462
1463**示例:**
1464
1465```js
1466imageSourceApi.createPixelMap().then(pixelmap => {
1467    console.log('Succeeded in creating pixelmap object through image decoding parameters.');
1468}).catch(error => {
1469    console.log('Failed to create pixelmap object through image decoding parameters.');
1470})
1471```
1472
1473### createPixelMap<sup>7+</sup>
1474
1475createPixelMap(callback: AsyncCallback\<PixelMap>): void
1476
1477通过默认参数创建PixelMap对象,使用callback形式返回结果。
1478
1479**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1480
1481**参数:**
1482
1483| 参数名     | 类型                                  | 必填 | 说明                       |
1484| -------- | ------------------------------------- | ---- | -------------------------- |
1485| callback | AsyncCallback<[PixelMap](#pixelmap7)> | 是   | 通过回调返回PixelMap对象。 |
1486
1487**示例:**
1488
1489```js
1490imageSourceApi.createPixelMap((err, pixelmap) => {
1491                    console.info('Succeeded in creating pixelmap object.');
1492                })
1493```
1494
1495### createPixelMap<sup>7+</sup>
1496
1497createPixelMap(options: DecodingOptions, callback: AsyncCallback\<PixelMap>): void
1498
1499通过图片解码参数创建PixelMap对象。
1500
1501**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1502
1503**参数:**
1504
1505| 参数名   | 类型                                  | 必填 | 说明                       |
1506| -------- | ------------------------------------- | ---- | -------------------------- |
1507| options  | [DecodingOptions](#decodingoptions7)  | 是   | 解码参数。                 |
1508| callback | AsyncCallback<[PixelMap](#pixelmap7)> | 是   | 通过回调返回PixelMap对象。 |
1509
1510**示例:**
1511
1512```js
1513let decodingOptions = {
1514    sampleSize: 1,
1515    editable: true,
1516    desiredSize: { width: 1, height: 2 },
1517    rotate: 10,
1518    desiredPixelFormat: 3,
1519    desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
1520    index: 0
1521};
1522imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
1523    console.log('Succeeded in creating pixelmap object.');
1524})
1525```
1526
1527### release
1528
1529release(callback: AsyncCallback\<void>): void
1530
1531释放图片源实例,使用callback形式返回结果。
1532
1533**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1534
1535**参数:**
1536
1537| 参数名   | 类型                 | 必填 | 说明                               |
1538| -------- | -------------------- | ---- | ---------------------------------- |
1539| callback | AsyncCallback\<void> | 是   | 资源释放回调,失败时返回错误信息。 |
1540
1541**示例:**
1542
1543```js
1544imageSourceApi.release(() => {
1545    console.log('release succeeded.');
1546})
1547```
1548
1549### release
1550
1551release(): Promise\<void>
1552
1553释放图片源实例,使用Promise形式返回结果。
1554
1555**系统能力:** SystemCapability.Multimedia.Image.ImageSource
1556
1557**返回值:**
1558
1559| 类型           | 说明                        |
1560| -------------- | --------------------------- |
1561| Promise\<void> | Promise实例,异步返回结果。 |
1562
1563**示例:**
1564
1565```js
1566imageSourceApi.release().then(()=>{
1567    console.log('Succeeded in releasing the image source instance.');
1568}).catch(error => {
1569    console.log('Failed to release the image source instance.');
1570})
1571```
1572
1573## image.createImagePacker
1574
1575createImagePacker(): ImagePacker
1576
1577创建ImagePacker实例。
1578
1579**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
1580
1581**返回值:**
1582
1583| 类型                        | 说明                  |
1584| --------------------------- | --------------------- |
1585| [ImagePacker](#imagepacker) | 返回ImagePacker实例。 |
1586
1587**示例:**
1588
1589```js
1590const imagePackerApi = image.createImagePacker();
1591```
1592
1593## ImagePacker
1594
1595图片打包器类,用于图片压缩和打包。在调用ImagePacker的方法前,需要先通过createImagePacker构建一个ImagePacker实例,当前支持格式有:jpeg webp。
1596
1597### 属性
1598
1599**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
1600
1601| 名称             | 类型           | 可读 | 可写 | 说明                       |
1602| ---------------- | -------------- | ---- | ---- | -------------------------- |
1603| supportedFormats | Array\<string> | 是   | 否   | 图片打包支持的格式,jpeg。 |
1604
1605### packing
1606
1607packing(source: ImageSource, option: PackingOption, callback: AsyncCallback\<ArrayBuffer>): void
1608
1609图片压缩或重新打包,使用callback形式返回结果。
1610
1611**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
1612
1613**参数:**
1614
1615| 参数名   | 类型                               | 必填 | 说明                               |
1616| -------- | ---------------------------------- | ---- | ---------------------------------- |
1617| source   | [ImageSource](#imagesource)        | 是   | 打包的图片源。                     |
1618| option   | [PackingOption](#packingoption)    | 是   | 设置打包参数。                      |
1619| callback | AsyncCallback\<ArrayBuffer>        | 是   | 获取图片打包回调,返回打包后数据。 |
1620
1621**示例:**
1622
1623```js
1624const imageSourceApi = image.createImageSource(0);
1625let packOpts = { format:"image/jpeg", quality:98 };
1626imagePackerApi.packing(imageSourceApi, packOpts, data => {})
1627```
1628
1629### packing
1630
1631packing(source: ImageSource, option: PackingOption): Promise\<ArrayBuffer>
1632
1633图片压缩或重新打包,使用Promise形式返回结果。
1634
1635**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
1636
1637**参数:**
1638
1639| 参数名 | 类型                            | 必填 | 说明           |
1640| ------ | ------------------------------- | ---- | -------------- |
1641| source | [ImageSource](#imagesource)     | 是   | 打包的图片源。 |
1642| option | [PackingOption](#packingoption) | 是   | 设置打包参数。 |
1643
1644**返回值:**
1645
1646| 类型                         | 说明                                          |
1647| ---------------------------- | --------------------------------------------- |
1648| Promise\<ArrayBuffer>        | Promise实例,用于异步获取压缩或打包后的数据。 |
1649
1650**示例:**
1651
1652```js
1653const imageSourceApi = image.createImageSource(0);
1654let packOpts = { format:"image/jpeg", quality:98 }
1655imagePackerApi.packing(imageSourceApi, packOpts)
1656    .then( data => {
1657        console.log('packing succeeded.');
1658	}).catch(error => {
1659	    console.log('packing failed.');
1660	})
1661```
1662
1663### packing<sup>8+</sup>
1664
1665packing(source: PixelMap, option: PackingOption, callback: AsyncCallback\<ArrayBuffer>): void
1666
1667图片压缩或重新打包,使用callback形式返回结果。
1668
1669**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
1670
1671**参数:**
1672
1673| 参数名   | 类型                            | 必填 | 说明                               |
1674| -------- | ------------------------------- | ---- | ---------------------------------- |
1675| source   | [PixelMap](#pixelmap)           | 是   | 打包的PixelMap资源。               |
1676| option   | [PackingOption](#packingoption) | 是   | 设置打包参数。                     |
1677| callback | AsyncCallback\<ArrayBuffer>     | 是   | 获取图片打包回调,返回打包后数据。 |
1678
1679**示例:**
1680
1681```js
1682const color = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
1683let bufferArr = new Uint8Array(color);
1684let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
1685image.createPixelMap(color, opts).then((pixelmap) => {
1686    let packOpts = { format:"image/jpeg", quality:98 }
1687    imagePackerApi.packing(pixelmap, packOpts, data => {
1688        console.log('Succeeded in packing the image.');
1689    })
1690})
1691```
1692
1693### packing<sup>8+</sup>
1694
1695packing(source: PixelMap, option: PackingOption): Promise\<ArrayBuffer>
1696
1697图片压缩或重新打包,使用Promise形式返回结果。
1698
1699**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
1700
1701**参数:**
1702
1703| 参数名 | 类型                            | 必填 | 说明               |
1704| ------ | ------------------------------- | ---- | ------------------ |
1705| source | [PixelMap](#pixelmap)           | 是   | 打包的PixelMap源。 |
1706| option | [PackingOption](#packingoption) | 是   | 设置打包参数。     |
1707
1708**返回值:**
1709
1710| 类型                  | 说明                                         |
1711| --------------------- | -------------------------------------------- |
1712| Promise\<ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。|
1713
1714**示例:**
1715
1716```js
1717const color = new ArrayBuffer(96);  //96为需要创建的像素buffer大小,取值为:height * width *4
1718let bufferArr = new Uint8Array(color);
1719let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
1720image.createPixelMap(color, opts).then((pixelmap) => {
1721    let packOpts = { format:"image/jpeg", quality:98 }
1722    imagePackerApi.packing(pixelmap, packOpts)
1723        .then( data => {
1724            console.log('Succeeded in packing the image.');
1725        }).catch(error => {
1726            console.log('Failed to pack the image..');
1727        })
1728})
1729```
1730
1731### release
1732
1733release(callback: AsyncCallback\<void>): void
1734
1735释放图片打包实例,使用callback形式返回结果。
1736
1737**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
1738
1739**参数:**
1740
1741| 参数名   | 类型                 | 必填 | 说明                           |
1742| -------- | -------------------- | ---- | ------------------------------ |
1743| callback | AsyncCallback\<void> | 是   | 释放回调,失败时返回错误信息。 |
1744
1745**示例:**
1746
1747```js
1748imagePackerApi.release(()=>{
1749    console.log('Succeeded in releasing image packaging.');
1750})
1751```
1752
1753### release
1754
1755release(): Promise\<void>
1756
1757释放图片打包实例,使用Promise形式返回释放结果。
1758
1759**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
1760
1761**返回值:**
1762
1763| 类型           | 说明                                                   |
1764| -------------- | ------------------------------------------------------ |
1765| Promise\<void> | Promise实例,用于异步获取释放结果,失败时返回错误信息。|
1766
1767**示例:**
1768
1769```js
1770imagePackerApi.release().then(()=>{
1771    console.log('Succeeded in releasing image packaging.');
1772}).catch((error)=>{
1773    console.log('Failed to release image packaging.');
1774})
1775```
1776
1777## image.createImageReceiver<sup>9+</sup>
1778
1779createImageReceiver(width: number, height: number, format: number, capacity: number): ImageReceiver
1780
1781通过宽、高、图片格式、容量创建ImageReceiver实例。
1782
1783**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
1784
1785**参数:**
1786
1787| 参数名   | 类型   | 必填 | 说明                   |
1788| -------- | ------ | ---- | ---------------------- |
1789| width    | number | 是   | 图像的默认宽度。       |
1790| height   | number | 是   | 图像的默认高度。       |
1791| format   | number | 是   | 图像格式,取值为[ImageFormat](#imageformat9)常量(目前仅支持 ImageFormat:JPEG 和 4)。  |
1792| capacity | number | 是   | 同时访问的最大图像数。 |
1793
1794**返回值:**
1795
1796| 类型                             | 说明                                    |
1797| -------------------------------- | --------------------------------------- |
1798| [ImageReceiver](#imagereceiver9) | 如果操作成功,则返回ImageReceiver实例。 |
1799
1800**示例:**
1801
1802```js
1803var receiver = image.createImageReceiver(8192, 8, 2000, 8);
1804```
1805
1806## ImageReceiver<sup>9+</sup>
1807
1808图像接收类,用于获取组件surface id,接收最新的图片和读取下一张图片,以及释放ImageReceiver实例。
1809
1810在调用以下方法前需要先创建ImageReceiver实例。
1811
1812### 属性
1813
1814**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
1815
1816| 名称     | 类型                         | 可读 | 可写 | 说明               |
1817| -------- | ---------------------------- | ---- | ---- | ------------------ |
1818| size     | [Size](#size)                | 是   | 否   | 图片大小。         |
1819| capacity | number                       | 是   | 否   | 同时访问的图像数。 |
1820| format   | [ImageFormat](#imageformat9) | 是   | 否   | 图像格式。         |
1821
1822### getReceivingSurfaceId<sup>9+</sup>
1823
1824getReceivingSurfaceId(callback: AsyncCallback\<string>): void
1825
1826用于获取一个surface id供Camera或其他组件使用。使用callback返回结果。
1827
1828**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
1829
1830**参数:**
1831
1832| 参数名   | 类型                   | 必填 | 说明                       |
1833| -------- | ---------------------- | ---- | -------------------------- |
1834| callback | AsyncCallback\<string> | 是   | 回调函数,返回surface id。 |
1835
1836**示例:**
1837
1838```js
1839receiver.getReceivingSurfaceId((err, id) => {
1840    if(err) {
1841        console.log('getReceivingSurfaceId failed.');
1842    } else {
1843        console.log('getReceivingSurfaceId succeeded.');
1844    }
1845});
1846```
1847
1848### getReceivingSurfaceId<sup>9+</sup>
1849
1850getReceivingSurfaceId(): Promise\<string>
1851
1852用于获取一个surface id供Camera或其他组件使用。使用promise返回结果。
1853
1854**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
1855
1856**返回值:**
1857
1858| 类型             | 说明                 |
1859| ---------------- | -------------------- |
1860| Promise\<string> | 异步返回surface id。 |
1861
1862**示例:**
1863
1864```js
1865receiver.getReceivingSurfaceId().then( id => {
1866    console.log('getReceivingSurfaceId succeeded.');
1867}).catch(error => {
1868    console.log('getReceivingSurfaceId failed.');
1869})
1870```
1871
1872### readLatestImage<sup>9+</sup>
1873
1874readLatestImage(callback: AsyncCallback\<Image>): void
1875
1876从ImageReceiver读取最新的图片,并使用callback返回结果。
1877
1878**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
1879
1880**参数:**
1881
1882| 参数名     | 类型                            | 必填 | 说明                     |
1883| -------- | ------------------------------- | ---- | ------------------------ |
1884| callback | AsyncCallback<[Image](#image9)> | 是   | 回调函数,返回最新图像。 |
1885
1886**示例:**
1887
1888```js
1889receiver.readLatestImage((err, img) => {
1890    if(err) {
1891        console.log('readLatestImage failed.');
1892    } else {
1893        console.log('readLatestImage succeeded.');
1894    }
1895});
1896```
1897
1898### readLatestImage<sup>9+</sup>
1899
1900readLatestImage(): Promise\<Image>
1901
1902从ImageReceiver读取最新的图片,并使用promise返回结果。
1903
1904**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
1905
1906**返回值:**
1907
1908| 类型                      | 说明               |
1909| ------------------------- | ------------------ |
1910| Promise<[Image](#image9)> | 异步返回最新图片。 |
1911
1912**示例:**
1913
1914```js
1915receiver.readLatestImage().then(img => {
1916    console.log('readLatestImage succeeded.');
1917}).catch(error => {
1918    console.log('readLatestImage failed.');
1919})
1920```
1921
1922### readNextImage<sup>9+</sup>
1923
1924readNextImage(callback: AsyncCallback\<Image>): void
1925
1926从ImageReceiver读取下一张图片,并使用callback返回结果。
1927
1928**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
1929
1930**参数:**
1931
1932| 参数名   | 类型                            | 必填 | 说明                       |
1933| -------- | ------------------------------- | ---- | -------------------------- |
1934| callback | AsyncCallback<[Image](#image9)> | 是   | 回调函数,返回下一张图片。 |
1935
1936**示例:**
1937
1938```js
1939receiver.readNextImage((err, img) => {
1940    if(err) {
1941        console.log('readNextImage failed.');
1942    } else {
1943        console.log('readNextImage succeeded.');
1944    }
1945});
1946```
1947
1948### readNextImage<sup>9+</sup>
1949
1950readNextImage(): Promise\<Image>
1951
1952从ImageReceiver读取下一张图片,并使用promise返回结果。
1953
1954**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
1955
1956**返回值:**
1957
1958| 类型                      | 说明                 |
1959| ------------------------- | -------------------- |
1960| Promise<[Image](#image9)> | 异步返回下一张图片。 |
1961
1962**示例:**
1963
1964```js
1965receiver.readNextImage().then(img => {
1966    console.log('readNextImage succeeded.');
1967}).catch(error => {
1968    console.log('readNextImage failed.');
1969})
1970```
1971
1972### on<sup>9+</sup>
1973
1974on(type: 'imageArrival', callback: AsyncCallback\<void>): void
1975
1976接收图片时注册回调。
1977
1978**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
1979
1980**参数:**
1981
1982| 参数名   | 类型                 | 必填 | 说明                                                   |
1983| -------- | -------------------- | ---- | ------------------------------------------------------ |
1984| type     | string               | 是   | 注册事件的类型,固定为'imageArrival',接收图片时触发。 |
1985| callback | AsyncCallback\<void> | 是   | 注册的事件回调。                                       |
1986
1987**示例:**
1988
1989```js
1990receiver.on('imageArrival', () => {})
1991```
1992
1993### release<sup>9+</sup>
1994
1995release(callback: AsyncCallback\<void>): void
1996
1997释放ImageReceiver实例并使用回调返回结果。
1998
1999**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
2000
2001**参数:**
2002
2003| 参数名   | 类型                 | 必填 | 说明                     |
2004| -------- | -------------------- | ---- | ------------------------ |
2005| callback | AsyncCallback\<void> | 是   | 回调函数,返回操作结果。 |
2006
2007**示例:**
2008
2009```js
2010receiver.release(() => {})
2011```
2012
2013### release<sup>9+</sup>
2014
2015release(): Promise\<void>
2016
2017释放ImageReceiver实例并使用promise返回结果。
2018
2019**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
2020
2021**返回值:**
2022
2023| 类型           | 说明               |
2024| -------------- | ------------------ |
2025| Promise\<void> | 异步返回操作结果。 |
2026
2027**示例:**
2028
2029```js
2030receiver.release().then(() => {
2031    console.log('release succeeded.');
2032}).catch(error => {
2033    console.log('release failed.');
2034})
2035```
2036
2037## image.createImageCreator<sup>9+</sup>
2038
2039createImageCreator(width: number, height: number, format: number, capacity: number): ImageCreator
2040
2041通过宽、高、图片格式、容量创建ImageCreator实例。
2042
2043**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
2044
2045**参数:**
2046
2047| 参数名   | 类型   | 必填 | 说明                   |
2048| -------- | ------ | ---- | ---------------------- |
2049| width    | number | 是   | 图像的默认宽度。       |
2050| height   | number | 是   | 图像的默认高度。       |
2051| format   | number | 是   | 图像格式,如YCBCR_422_SP,JPEG。             |
2052| capacity | number | 是   | 同时访问的最大图像数。 |
2053
2054**返回值:**
2055
2056| 类型                           | 说明                                    |
2057| ------------------------------ | --------------------------------------- |
2058| [ImageCreator](#imagecreator9) | 如果操作成功,则返回ImageCreator实例。 |
2059
2060**示例:**
2061
2062```js
2063var creator = image.createImageCreator(8192, 8, 4, 8);
2064```
2065
2066## ImageCreator<sup>9+</sup>
2067
2068图像创建模块,用于请求图像原生数据区域,并开放给应用编译原生图像数据的能力。
2069在调用以下方法前需要先创建ImageCreator实例。
2070
2071### 属性
2072
2073**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
2074
2075| 名称     | 类型                         | 可读 | 可写 | 说明               |
2076| -------- | ---------------------------- | ---- | ---- | ------------------ |
2077| capacity | number                       | 是   | 否   | 同时访问的图像数。 |
2078| format   | [ImageFormat](#imageformat9) | 是   | 否   | 图像格式。         |
2079
2080### dequeueImage<sup>9+</sup>
2081
2082dequeueImage(callback: AsyncCallback\<Image>): void
2083
2084从空闲队列中获取buffer图片,用于绘制UI内容,并使用callback返回结果。
2085
2086**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
2087
2088**参数:**
2089
2090| 参数名        | 类型                                    | 必填 | 说明                 |
2091| ------------- | ---------------------------------------| ---- | -------------------- |
2092| callback      | AsyncCallback\<Image>                   | 是   | 回调函数,返回最新图片。 |
2093
2094**示例:**
2095
2096```js
2097creator.dequeueImage((err, img) => {
2098    if (err) {
2099        console.info('dequeueImage failded.');
2100    }
2101    console.info('dequeueImage succeeded.');
2102});
2103```
2104
2105### dequeueImage<sup>9+</sup>
2106
2107dequeueImage(): Promise\<Image>
2108
2109从空闲队列中获取buffer图片,用于绘制UI内容,并使用promise返回结果。
2110
2111**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
2112
2113**返回值:**
2114
2115| 类型             | 说明           |
2116| --------------- | ------------- |
2117| Promise\<Image> | 返回绘制的图像。 |
2118
2119**示例:**
2120
2121```js
2122creator.dequeueImage().then(img => {
2123    console.info('dequeueImage succeeded.');
2124}).catch(error => {
2125    console.log('dequeueImage failed: ' + error);
2126})
2127```
2128
2129### queueImage<sup>9+</sup>
2130
2131queueImage(interface: Image, callback: AsyncCallback\<void>): void
2132
2133将绘制好的图片放入Dirty队列,并使用callback返回结果。
2134
2135**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
2136
2137**参数:**
2138
2139| 参数名        | 类型                     | 必填 | 说明                 |
2140| ------------- | -------------------------| ---- | -------------------- |
2141| interface     | Image                    | 是   | 绘制好的buffer图像。 |
2142| callback      | AsyncCallback\<void>     | 是   | 获取回调,失败时返回错误信息。 |
2143
2144**示例:**
2145
2146```js
2147creator.dequeueImage().then(img => {
2148    //绘制图片
2149    img.getComponent(4).then(component => {
2150        var bufferArr = new Uint8Array(component.byteBuffer);
2151        for (var i = 0; i < bufferArr.length; i += 4) {
2152            bufferArr[i] = 0; //B
2153            bufferArr[i + 1] = 0; //G
2154            bufferArr[i + 2] = 255; //R
2155            bufferArr[i + 3] = 255; //A
2156        }
2157    })
2158    creator.queueImage(img, (err) => {
2159        if (err) {
2160            console.info('queueImage failed: ' + err);
2161        }
2162        console.info('queueImage succeeded');
2163    })
2164})
2165
2166```
2167
2168### queueImage<sup>9+</sup>
2169
2170queueImage(interface: Image): Promise\<void>
2171
2172将绘制好的图片放入Dirty队列,并使用promise返回结果。
2173
2174**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
2175
2176**参数:**
2177
2178| 参数名          | 类型     | 必填 | 说明                |
2179| ------------- | --------| ---- | ------------------- |
2180| interface     | Image   | 是   | 绘制好的buffer图像。 |
2181
2182**返回值:**
2183
2184| 类型            | 说明           |
2185| -------------- | ------------- |
2186| Promise\<void> | 获取回调,失败时返回错误信息。 |
2187
2188**示例:**
2189
2190```js
2191creator.dequeueImage().then(img => {
2192    //绘制图片
2193    img.getComponent(4).then(component => {
2194        var bufferArr = new Uint8Array(component.byteBuffer);
2195        for (var i = 0; i < bufferArr.length; i += 4) {
2196            bufferArr[i] = 0; //B
2197            bufferArr[i + 1] = 0; //G
2198            bufferArr[i + 2] = 255; //R
2199            bufferArr[i + 3] = 255; //A
2200        }
2201    })
2202    creator.queueImage(img).then(() => {
2203        console.info('queueImage succeeded.');
2204    }).catch(error => {
2205        console.info('queueImage failed: ' + error);
2206    })
2207})
2208
2209```
2210
2211### on<sup>9+</sup>
2212
2213on(type: 'imageRelease', callback: AsyncCallback\<void>): void
2214
2215监听imageRelease事件,并使用callback返回结果。
2216
2217**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
2218
2219**参数:**
2220
2221| 参数名        | 类型                     | 必填 | 说明                 |
2222| ------------- | -------------------------| ---- | -------------------- |
2223| type          | string                   | 是   | 监听事件类型,如'imageRelease'。 |
2224| callback      | AsyncCallback\<void>     | 是   | 获取回调,失败时返回错误信息。 |
2225
2226**示例:**
2227
2228```js
2229creator.on('imageRelease', (err) => {
2230    if (err) {
2231        console.info('on faild' + err);
2232    }
2233    console.info('on succeeded');
2234})
2235```
2236
2237### release<sup>9+</sup>
2238
2239release(callback: AsyncCallback\<void>): void
2240
2241释放当前图像,并使用callback返回结果。
2242
2243**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
2244
2245**参数:**
2246
2247| 参数名           | 类型                     | 必填 | 说明                 |
2248| ------------- | -------------------------| ---- | -------------------- |
2249| callback      | AsyncCallback\<void>     | 是   | 获取回调,失败时返回错误信息。 |
2250
2251**示例:**
2252
2253```js
2254creator.release((err) => {
2255    if (err) {
2256        console.info('release failed: ' + err);
2257    }
2258    console.info('release succeeded');
2259});
2260```
2261### release<sup>9+</sup>
2262
2263release(): Promise\<void>
2264
2265释放当前图像,并使用promise返回结果。
2266
2267**系统能力:** SystemCapability.Multimedia.Image.ImageCreator
2268
2269**返回值:**
2270
2271| 类型            | 说明           |
2272| -------------- | ------------- |
2273| Promise\<void> | 获取回调,失败时返回错误信息。 |
2274
2275**示例:**
2276
2277```js
2278creator.release().then(() => {
2279    console.info('release succeeded');
2280}).catch(error => {
2281    console.info('release failed');
2282})
2283```
2284
2285## Image<sup>9+</sup>
2286
2287提供基本的图像操作,包括获取图像信息、读写图像数据。调用[readNextImage](#readnextimage9)和[readLatestImage](#readlatestimage9)接口时会返回image。
2288
2289### 属性
2290
2291**系统能力:** SystemCapability.Multimedia.Image.Core
2292
2293| 名称     | 类型               | 可读 | 可写 | 说明                                               |
2294| -------- | ------------------ | ---- | ---- | -------------------------------------------------- |
2295| clipRect | [Region](#region7) | 是   | 是   | 要裁剪的图像区域。                                 |
2296| size     | [Size](#size)      | 是   | 否   | 图像大小。                                         |
2297| format   | number             | 是   | 否   | 图像格式,参考[PixelMapFormat](#pixelmapformat7)。 |
2298
2299### getComponent<sup>9+</sup>
2300
2301getComponent(componentType: ComponentType, callback: AsyncCallback\<Component>): void
2302
2303根据图像的组件类型从图像中获取组件缓存并使用callback返回结果。
2304
2305**系统能力:** SystemCapability.Multimedia.Image.Core
2306
2307**参数:**
2308
2309| 参数名        | 类型                                    | 必填 | 说明                 |
2310| ------------- | --------------------------------------- | ---- | -------------------- |
2311| componentType | [ComponentType](#componenttype9)        | 是   | 图像的组件类型。     |
2312| callback      | AsyncCallback<[Component](#component9)> | 是   | 用于返回组件缓冲区。 |
2313
2314**示例:**
2315
2316```js
2317img.getComponent(4, (err, component) => {
2318    if(err) {
2319        console.log('getComponent failed.');
2320    } else {
2321        console.log('getComponent succeeded.');
2322    }
2323})
2324```
2325
2326### getComponent<sup>9+</sup>
2327
2328getComponent(componentType: ComponentType): Promise\<Component>
2329
2330根据图像的组件类型从图像中获取组件缓存并使用Promise方式返回结果。
2331
2332**系统能力:** SystemCapability.Multimedia.Image.Core
2333
2334**参数:**
2335
2336| 参数名        | 类型                             | 必填 | 说明             |
2337| ------------- | -------------------------------- | ---- | ---------------- |
2338| componentType | [ComponentType](#componenttype9) | 是   | 图像的组件类型。 |
2339
2340**返回值:**
2341
2342| 类型                              | 说明                              |
2343| --------------------------------- | --------------------------------- |
2344| Promise<[Component](#component9)> | 用于返回组件缓冲区的promise实例。 |
2345
2346**示例:**
2347
2348```js
2349img.getComponent(4).then(component => { })
2350```
2351
2352### release<sup>9+</sup>
2353
2354release(callback: AsyncCallback\<void>): void
2355
2356释放当前图像并使用callback返回结果。
2357
2358在接收另一个图像前必须先释放对应资源。
2359
2360**系统能力:** SystemCapability.Multimedia.Image.Core
2361
2362**参数:**
2363
2364| 参数名   | 类型                 | 必填 | 说明           |
2365| -------- | -------------------- | ---- | -------------- |
2366| callback | AsyncCallback\<void> | 是   | 返回操作结果。 |
2367
2368**示例:**
2369
2370```js
2371img.release(() =>{
2372    console.log('release succeeded.');
2373})
2374```
2375
2376### release<sup>9+</sup>
2377
2378release(): Promise\<void>
2379
2380释放当前图像并使用Promise方式返回结果。
2381
2382在接收另一个图像前必须先释放对应资源。
2383
2384**系统能力:** SystemCapability.Multimedia.Image.Core
2385
2386**返回值:**
2387
2388| 类型           | 说明                  |
2389| -------------- | --------------------- |
2390| Promise\<void> | promise返回操作结果。 |
2391
2392**示例:**
2393
2394```js
2395img.release().then(() =>{
2396    console.log('release succeeded.');
2397}).catch(error => {
2398    console.log('release failed.');
2399})
2400```
2401
2402## PositionArea<sup>7+</sup>
2403
2404表示图片指定区域内的数据。
2405
2406**系统能力:** SystemCapability.Multimedia.Image.Core
2407
2408| 名称   | 类型               | 可读 | 可写 | 说明                                                         |
2409| ------ | ------------------ | ---- | ---- | ------------------------------------------------------------ |
2410| pixels | ArrayBuffer        | 是   | 否   | 像素。                                                       |
2411| offset | number             | 是   | 否   | 偏移量。                                                     |
2412| stride | number             | 是   | 否   | 像素间距,stride >= region.size.width*4。                   |
2413| region | [Region](#region7) | 是   | 否   | 区域,按照区域读写。写入的区域宽度加X坐标不能大于原图的宽度,写入的区域高度加Y坐标不能大于原图的高度。 |
2414
2415## ImageInfo
2416
2417表示图片信息。
2418
2419**系统能力:** SystemCapability.Multimedia.Image.Core
2420
2421| 名称 | 类型          | 可读 | 可写 | 说明       |
2422| ---- | ------------- | ---- | ---- | ---------- |
2423| size | [Size](#size) | 是   | 是   | 图片大小。 |
2424| density<sup>9+</sup> | number | 是   | 是   | 像素密度,单位为ppi。 |
2425
2426## Size
2427
2428表示图片尺寸。
2429
2430**系统能力:** SystemCapability.Multimedia.Image.Core
2431
2432| 名称   | 类型   | 可读 | 可写 | 说明           |
2433| ------ | ------ | ---- | ---- | -------------- |
2434| height | number | 是   | 是   | 输出图片的高。 |
2435| width  | number | 是   | 是   | 输出图片的宽。 |
2436
2437## PixelMapFormat<sup>7+</sup>
2438
2439枚举,图片像素格式。
2440
2441**系统能力:** SystemCapability.Multimedia.Image.Core
2442
2443| 名称                   |   值   | 说明              |
2444| ---------------------- | ------ | ----------------- |
2445| UNKNOWN                | 0      | 未知格式。        |
2446| RGB_565                | 2      | 格式为RGB_565     |
2447| RGBA_8888              | 3      | 格式为RGBA_8888 |
2448| BGRA_8888<sup>9+</sup> | 4      | 格式为BGRA_8888 |
2449| RGB_888<sup>9+</sup>   | 5      | 格式为RGB_888   |
2450| ALPHA_8<sup>9+</sup>   | 6      | 格式为ALPHA_8   |
2451| RGBA_F16<sup>9+</sup>  | 7      | 格式为RGBA_F16  |
2452| NV21<sup>9+</sup>      | 8      | 格式为NV21      |
2453| NV12<sup>9+</sup>      | 9      | 格式为NV12      |
2454
2455## AlphaType<sup>9+</sup>
2456
2457枚举,图像的透明度类型。
2458
2459**系统能力:** SystemCapability.Multimedia.Image.Core
2460
2461| 名称     |   值   | 说明                    |
2462| -------- | ------ | ----------------------- |
2463| UNKNOWN  | 0      | 未知透明度。            |
2464| OPAQUE   | 1      | 没有alpha或图片全透明。 |
2465| PREMUL   | 2      | RGB前乘alpha。         |
2466| UNPREMUL | 3      | RGB不前乘alpha。       |
2467
2468## ScaleMode<sup>9+</sup>
2469
2470枚举,图像的缩放模式。
2471
2472**系统能力:** SystemCapability.Multimedia.Image.Core
2473
2474| 名称            |   值   | 说明                                               |
2475| --------------- | ------ | -------------------------------------------------- |
2476| CENTER_CROP     | 1      | 缩放图像以填充目标图像区域并居中裁剪区域外的效果。 |
2477| FIT_TARGET_SIZE | 0      | 图像适合目标尺寸的效果。                           |
2478
2479## SourceOptions<sup>9+</sup>
2480
2481ImageSource的初始化选项。
2482
2483**系统能力:** SystemCapability.Multimedia.Image.Core
2484
2485| 名称              | 类型                               | 可读 | 可写 | 说明               |
2486| ----------------- | ---------------------------------- | ---- | ---- | ------------------ |
2487| sourceDensity     | number                             | 是   | 是   | ImageSource的密度。|
2488| sourcePixelFormat | [PixelMapFormat](#pixelmapformat7) | 是   | 是   | 图片像素格式。     |
2489| sourceSize        | [Size](#size)                      | 是   | 是   | 图像像素大小。     |
2490
2491
2492## InitializationOptions<sup>8+</sup>
2493
2494PixelMap的初始化选项。
2495
2496**系统能力:** SystemCapability.Multimedia.Image.Core
2497
2498| 名称                     | 类型                               | 可读 | 可写 | 说明           |
2499| ------------------------ | ---------------------------------- | ---- | ---- | -------------- |
2500| alphaType<sup>9+</sup>   | [AlphaType](#alphatype9)           | 是   | 是   | 透明度。       |
2501| editable                 | boolean                            | 是   | 是   | 是否可编辑。   |
2502| pixelFormat              | [PixelMapFormat](#pixelmapformat7) | 是   | 是   | 像素格式。     |
2503| scaleMode<sup>9+</sup>   | [ScaleMode](#scalemode9)           | 是   | 是   | 缩略值。       |
2504| size                     | [Size](#size)                      | 是   | 是   | 创建图片大小。 |
2505
2506## DecodingOptions<sup>7+</sup>
2507
2508图像解码设置选项。
2509
2510**系统能力:** SystemCapability.Multimedia.Image.ImageSource
2511
2512| 名称               | 类型                               | 可读 | 可写 | 说明             |
2513| ------------------ | ---------------------------------- | ---- | ---- | ---------------- |
2514| sampleSize         | number                             | 是   | 是   | 缩略图采样大小。 |
2515| rotate             | number                             | 是   | 是   | 旋转角度。       |
2516| editable           | boolean                            | 是   | 是   | 是否可编辑。     |
2517| desiredSize        | [Size](#size)                      | 是   | 是   | 期望输出大小。   |
2518| desiredRegion      | [Region](#region7)                 | 是   | 是   | 解码区域。       |
2519| desiredPixelFormat | [PixelMapFormat](#pixelmapformat7) | 是   | 是   | 解码的像素格式。 |
2520| index              | number                             | 是   | 是   | 解码图片序号。   |
2521| fitDensity<sup>9+</sup> | number                        | 是   | 是   | 图像像素密度,单位为ppi。   |
2522
2523## Region<sup>7+</sup>
2524
2525表示区域信息。
2526
2527**系统能力:** SystemCapability.Multimedia.Image.Core
2528
2529| 名称 | 类型          | 可读 | 可写 | 说明         |
2530| ---- | ------------- | ---- | ---- | ------------ |
2531| size | [Size](#size) | 是   | 是   | 区域大小。   |
2532| x    | number        | 是   | 是   | 区域横坐标。 |
2533| y    | number        | 是   | 是   | 区域纵坐标。 |
2534
2535## PackingOption
2536
2537表示图片打包选项。
2538
2539**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
2540
2541| 名称    | 类型   | 可读 | 可写 | 说明                                                |
2542| ------- | ------ | ---- | ---- | --------------------------------------------------- |
2543| format  | string | 是   | 是   | 目标格式。</br>当前只支持jpg和webp。 |
2544| quality | number | 是   | 是   | JPEG编码中设定输出图片质量的参数,取值范围为1-100。 |
2545| bufferSize<sup>9+</sup> | number | 是   | 是   | 用于设置图片大小,默认为10M |
2546
2547## GetImagePropertyOptions<sup>7+</sup>
2548
2549表示查询图片属性的索引。
2550
2551**系统能力:** SystemCapability.Multimedia.Image.ImageSource
2552
2553| 名称         | 类型   | 可读 | 可写 | 说明         |
2554| ------------ | ------ | ---- | ---- | ------------ |
2555| index        | number | 是   | 是   | 图片序号。   |
2556| defaultValue | string | 是   | 是   | 默认属性值。 |
2557
2558## PropertyKey<sup>7+</sup>
2559
2560枚举,Exif(Exchangeable image file format)图片信息。
2561
2562**系统能力:** SystemCapability.Multimedia.Image.Core
2563
2564| 名称              |   值                    | 说明                     |
2565| ----------------- | ----------------------- | ------------------------ |
2566| BITS_PER_SAMPLE   | "BitsPerSample"         | 每个像素比特数。         |
2567| ORIENTATION       | "Orientation"           | 图片方向。               |
2568| IMAGE_LENGTH      | "ImageLength"           | 图片长度。               |
2569| IMAGE_WIDTH       | "ImageWidth"            | 图片宽度。               |
2570| GPS_LATITUDE      | "GPSLatitude"           | 图片纬度。               |
2571| GPS_LONGITUDE     | "GPSLongitude"          | 图片经度。               |
2572| GPS_LATITUDE_REF  | "GPSLatitudeRef"        | 纬度引用,例如N或S。    |
2573| GPS_LONGITUDE_REF | "GPSLongitudeRef"       | 经度引用,例如W或E。    |
2574| DATE_TIME_ORIGINAL<sup>9+</sup> | "DateTimeOriginal" | 拍摄时间,例如2022:09:06 15:48:00     |
2575| EXPOSURE_TIME<sup>9+</sup>      | "ExposureTime"     | 曝光时间,例如1/33 sec.|
2576| SCENE_TYPE<sup>9+</sup>         | "SceneType"        | 拍摄场景模式,例如人像、风光、运动、夜景等。     |
2577| ISO_SPEED_RATINGS<sup>9+</sup>  | "ISOSpeedRatings"  | ISO感光度,例如400     |
2578| F_NUMBER<sup>9+</sup>           | "FNumber"          | 光圈值,例如f/1.8     |
2579
2580
2581## ImageFormat<sup>9+</sup>
2582
2583枚举,图片格式。
2584
2585**系统能力:** SystemCapability.Multimedia.Image.Core
2586
2587| 名称         |   值   | 说明                 |
2588| ------------ | ------ | -------------------- |
2589| YCBCR_422_SP | 1000   | YCBCR422半平面格式。 |
2590| JPEG         | 2000   | JPEG编码格式。       |
2591
2592## ComponentType<sup>9+</sup>
2593
2594枚举,图像的组件类型。
2595
2596**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
2597
2598| 名称  |   值   | 说明        |
2599| ----- | ------ | ----------- |
2600| YUV_Y | 1      | 亮度信息。  |
2601| YUV_U | 2      | 色度信息。  |
2602| YUV_V | 3      | 色度信息。  |
2603| JPEG  | 4      | JPEG 类型。 |
2604
2605## Component<sup>9+</sup>
2606
2607描述图像颜色分量。
2608
2609**系统能力:** SystemCapability.Multimedia.Image.Core
2610
2611| 名称          | 类型                             | 可读 | 可写 | 说明         |
2612| ------------- | -------------------------------- | ---- | ---- | ------------ |
2613| componentType | [ComponentType](#componenttype9) | 是   | 否   | 组件类型。   |
2614| rowStride     | number                           | 是   | 否   | 行距。       |
2615| pixelStride   | number                           | 是   | 否   | 像素间距。   |
2616| byteBuffer    | ArrayBuffer                      | 是   | 否   | 组件缓冲区。 |
2617
2618## ResponseCode
2619
2620编译错误返回的响应码。
2621
2622| 名称                                | 值       | 说明                                                |
2623| ----------------------------------- | -------- | --------------------------------------------------- |
2624| ERR_MEDIA_INVALID_VALUE             | -1       | 无效大小。                                          |
2625| SUCCESS                             | 0        | 操作成功。                                          |
2626| ERROR                               | 62980096 | 操作失败。                                          |
2627| ERR_IPC                             | 62980097 | ipc错误。                                           |
2628| ERR_SHAMEM_NOT_EXIST                | 62980098 | 共享内存错误。                                      |
2629| ERR_SHAMEM_DATA_ABNORMAL            | 62980099 | 共享内存错误。                                      |
2630| ERR_IMAGE_DECODE_ABNORMAL           | 62980100 | 图像解码错误。                                      |
2631| ERR_IMAGE_DATA_ABNORMAL             | 62980101 | 图像输入数据错误。                                  |
2632| ERR_IMAGE_MALLOC_ABNORMAL           | 62980102 | 图像malloc错误。                                    |
2633| ERR_IMAGE_DATA_UNSUPPORT            | 62980103 | 不支持图像类型。                                    |
2634| ERR_IMAGE_INIT_ABNORMAL             | 62980104 | 图像初始化错误。                                    |
2635| ERR_IMAGE_GET_DATA_ABNORMAL         | 62980105 | 图像获取数据错误。                                  |
2636| ERR_IMAGE_TOO_LARGE                 | 62980106 | 图像数据太大。                                      |
2637| ERR_IMAGE_TRANSFORM                 | 62980107 | 图像转换错误。                                      |
2638| ERR_IMAGE_COLOR_CONVERT             | 62980108 | 图像颜色转换错误。                                  |
2639| ERR_IMAGE_CROP                      | 62980109 | 裁剪错误。                                          |
2640| ERR_IMAGE_SOURCE_DATA               | 62980110 | 图像源数据错误。                                    |
2641| ERR_IMAGE_SOURCE_DATA_INCOMPLETE    | 62980111 | 图像源数据不完整。                                  |
2642| ERR_IMAGE_MISMATCHED_FORMAT         | 62980112 | 图像格式不匹配。                                    |
2643| ERR_IMAGE_UNKNOWN_FORMAT            | 62980113 | 图像未知格式。                                      |
2644| ERR_IMAGE_SOURCE_UNRESOLVED         | 62980114 | 图像源未解析。                                      |
2645| ERR_IMAGE_INVALID_PARAMETER         | 62980115 | 图像无效参数。                                      |
2646| ERR_IMAGE_DECODE_FAILED             | 62980116 | 解码失败。                                          |
2647| ERR_IMAGE_PLUGIN_REGISTER_FAILED    | 62980117 | 注册插件失败。                                      |
2648| ERR_IMAGE_PLUGIN_CREATE_FAILED      | 62980118 | 创建插件失败。                                      |
2649| ERR_IMAGE_ENCODE_FAILED             | 62980119 | 图像编码失败。                                      |
2650| ERR_IMAGE_ADD_PIXEL_MAP_FAILED      | 62980120 | 图像添加像素映射失败。                              |
2651| ERR_IMAGE_HW_DECODE_UNSUPPORT       | 62980121 | 不支持图像硬件解码。                                |
2652| ERR_IMAGE_DECODE_HEAD_ABNORMAL      | 62980122 | 图像解码头错误。                                    |
2653| ERR_IMAGE_DECODE_EXIF_UNSUPPORT     | 62980123 | 图像解码exif取消支持。                              |
2654| ERR_IMAGE_PROPERTY_NOT_EXIST        | 62980124 | 图像属性不存在;错误代码被媒体占用,图像从150开始。 |
2655| ERR_IMAGE_READ_PIXELMAP_FAILED      | 62980246 | 读取像素地图失败。                                  |
2656| ERR_IMAGE_WRITE_PIXELMAP_FAILED     | 62980247 | 写入像素映射失败。                                  |
2657| ERR_IMAGE_PIXELMAP_NOT_ALLOW_MODIFY | 62980248 | pixelmap不允许修改。                                |
2658| ERR_IMAGE_CONFIG_FAILED             | 62980259 | 配置错误。                                          |
2659