js-apis-image.md 59.9 KB
Newer Older
Z
zengyawen 已提交
1
# 图片处理
X
xiaok 已提交
2

Z
zengyawen 已提交
3
> **说明:**
H
update  
HelloCrease 已提交
4
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zengyawen 已提交
5

Z
zengyawen 已提交
6
## 导入模块
X
xiaok 已提交
7

Z
zengyawen 已提交
8
```js
Z
zengyawen 已提交
9
import image from '@ohos.multimedia.image';
X
xiaok 已提交
10 11
```

X
xu-rui-w 已提交
12
## image.createPixelMap<sup>8+</sup>
X
xu-rui-w 已提交
13

14
createPixelMap(colors: ArrayBuffer, options: InitializationOptions): Promise\<PixelMap>
X
xiaok 已提交
15

Z
zengyawen 已提交
16
通过属性创建PixelMap,通过Promise返回结果。
X
xiaok 已提交
17

X
xu-rui-w 已提交
18
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
19 20 21

**参数:**

H
update  
HelloCrease 已提交
22 23
| 名称    | 类型                                             | 必填 | 说明                                                         |
| ------- | ------------------------------------------------ | ---- | ------------------------------------------------------------ |
X
xu-rui-w 已提交
24
| colors  | ArrayBuffer                                      | 是   | BGRA_8888格式的颜色数组。                                    |
25
| options | [InitializationOptions](#initializationoptions8) | 是   | 创建像素的属性,包括透明度,尺寸,缩略值,像素格式和是否可编辑。 |
X
xiaok 已提交
26 27 28

**返回值:**

Z
zengyawen 已提交
29 30
| 类型                             | 说明           |
| -------------------------------- | -------------- |
Z
zengyawen 已提交
31
| Promise\<[PixelMap](#pixelmap7)> | 返回Pixelmap。 |
X
xiaok 已提交
32 33 34 35

**示例:**

```js
X
xu-rui-w 已提交
36
const color = new ArrayBuffer(96);
X
xu-rui-w 已提交
37
let bufferArr = new Unit8Array(color);
X
xu-rui-w 已提交
38 39 40 41
let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts)
    .then((pixelmap) => {
        })
X
xiaok 已提交
42 43
```

Z
zengyawen 已提交
44
## image.createPixelMap<sup>8+</sup>
X
xiaok 已提交
45

46
createPixelMap(colors: ArrayBuffer, options: InitializationOptions, callback: AsyncCallback\<PixelMap>): void
X
xiaok 已提交
47

Z
zengyawen 已提交
48
通过属性创建PixelMap,通过回调函数返回结果。
X
xiaok 已提交
49

X
xu-rui-w 已提交
50
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
51 52 53

**参数:**

Z
zengyawen 已提交
54 55
| 名称     | 类型                                             | 必填 | 说明                       |
| -------- | ------------------------------------------------ | ---- | -------------------------- |
X
xu-rui-w 已提交
56
| colors   | ArrayBuffer                                      | 是   | BGRA_8888格式的颜色数组。  |
57
| options  | [InitializationOptions](#initializationoptions8) | 是   | 属性。                     |
Z
zengyawen 已提交
58
| callback | AsyncCallback\<[PixelMap](#pixelmap7)>           | 是   | 通过回调返回PixelMap对象。 |
X
xiaok 已提交
59 60 61 62

**示例:**

```js
X
xu-rui-w 已提交
63
const color = new ArrayBuffer(96);
X
xu-rui-w 已提交
64
let bufferArr = new Unit8Array(color);
X
xu-rui-w 已提交
65 66 67
let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts, (pixelmap) => {
        })
X
xiaok 已提交
68 69
```

Z
zengyawen 已提交
70
## PixelMap<sup>7+</sup>
Z
zengyawen 已提交
71 72 73 74 75

图像像素类,用于读取或写入图像数据以及获取图像信息。在调用PixelMap的方法前,需要先通过createPixelMap创建一个PixelMap实例。

 ### 属性

X
xu-rui-w 已提交
76
**系统能力:** SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
77 78 79 80

| 名称                    | 类型    | 可读 | 可写 | 说明                       |
| ----------------------- | ------- | ---- | ---- | -------------------------- |
| isEditable<sup>7+</sup> | boolean | 是   | 否   | 设定是否图像像素可被编辑。 |
Z
zengyawen 已提交
81

Z
zengyawen 已提交
82
### readPixelsToBuffer<sup>7+</sup>
X
xiaok 已提交
83

Z
zengyawen 已提交
84
readPixelsToBuffer(dst: ArrayBuffer): Promise\<void>
X
xiaok 已提交
85 86 87

读取图像像素数据,结果写入ArrayBuffer里,使用Promise形式返回。

X
xu-rui-w 已提交
88
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
89 90 91 92 93 94 95 96 97

**参数:**

| 参数名 | 类型        | 必填 | 说明                                                         |
| ------ | ----------- | ---- | ------------------------------------------------------------ |
| dst    | ArrayBuffer | 是   | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 |

**返回值:**

Z
zengyawen 已提交
98 99 100
| 类型           | 说明                                            |
| :------------- | :---------------------------------------------- |
| Promise\<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
X
xiaok 已提交
101 102 103 104

**示例:**

```js
X
xu-rui-w 已提交
105 106 107
const readBuffer = new ArrayBuffer(400);
pixelmap.readPixelsToBuffer(readBuffer).then(() => {
    console.log('Succeeded in reading image pixel data.');  //符合条件则进入 
X
xu-rui-w 已提交
108
}).catch(error => {
X
xu-rui-w 已提交
109
    console.log('Failed to read image pixel data.');  //不符合条件则进入
X
xu-rui-w 已提交
110
})
X
xiaok 已提交
111 112
```

Z
zengyawen 已提交
113
### readPixelsToBuffer<sup>7+</sup>
X
xiaok 已提交
114

Z
zengyawen 已提交
115
readPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback\<void>): void
X
xiaok 已提交
116

Z
zengyawen 已提交
117
读取图像像素数据,结果写入ArrayBuffer里,使用callback形式返回。
X
xiaok 已提交
118

X
xu-rui-w 已提交
119
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
120 121 122

**参数:**

Z
zengyawen 已提交
123 124 125 126
| 参数名   | 类型                 | 必填 | 说明                                                         |
| -------- | -------------------- | ---- | ------------------------------------------------------------ |
| dst      | ArrayBuffer          | 是   | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 |
| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。                               |
X
xiaok 已提交
127 128 129 130

**示例:**

```js
X
xu-rui-w 已提交
131 132
const readBuffer = new ArrayBuffer(400);
pixelmap.readPixelsToBuffer(readBuffer, (err, res) => {
X
xu-rui-w 已提交
133
    if(err) {
X
xu-rui-w 已提交
134
        console.log('Failed to read image pixel data.');  //不符合条件则进入
X
xu-rui-w 已提交
135
    } else {
X
xu-rui-w 已提交
136
        console.log('Succeeded in reading image pixel data.');  //符合条件则进入
X
xu-rui-w 已提交
137 138
    }
})
X
xiaok 已提交
139 140
```

Z
zengyawen 已提交
141
### readPixels<sup>7+</sup>
X
xiaok 已提交
142

Z
zengyawen 已提交
143
readPixels(area: PositionArea): Promise\<void>
X
xiaok 已提交
144 145 146

读取区域内的图片数据,使用Promise形式返回读取结果。

X
xu-rui-w 已提交
147
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
148 149 150

**参数:**

Z
zengyawen 已提交
151 152 153
| 参数名 | 类型                           | 必填 | 说明                     |
| ------ | ------------------------------ | ---- | ------------------------ |
| area   | [PositionArea](#positionarea7) | 是   | 区域大小,根据区域读取。 |
X
xiaok 已提交
154 155 156

**返回值:**

Z
zengyawen 已提交
157 158 159
| 类型           | 说明                                                |
| :------------- | :-------------------------------------------------- |
| Promise\<void> | Promise实例,用于获取读取结果,失败时返回错误信息。 |
X
xiaok 已提交
160 161 162 163

**示例:**

```js
X
xu-rui-w 已提交
164 165 166
const area = new ArrayBuffer(400);
pixelmap.readPixels(area).then(() => {
    console.log('Succeeded in reading the image data in the area.'); //符合条件则进入
X
xu-rui-w 已提交
167
}).catch(error => {
X
xu-rui-w 已提交
168
    console.log('Failed to read the image data in the area.'); //不符合条件则进入
X
xu-rui-w 已提交
169
})
X
xiaok 已提交
170 171
```

Z
zengyawen 已提交
172
### readPixels<sup>7+</sup>
X
xiaok 已提交
173

Z
zengyawen 已提交
174
readPixels(area: PositionArea, callback: AsyncCallback\<void>): void
X
xiaok 已提交
175

Z
zengyawen 已提交
176
读取区域内的图片数据,使用callback形式返回读取结果。
X
xiaok 已提交
177

X
xu-rui-w 已提交
178
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
179 180 181

**参数:**

Z
zengyawen 已提交
182 183 184 185
| 参数名   | 类型                           | 必填 | 说明                           |
| -------- | ------------------------------ | ---- | ------------------------------ |
| area     | [PositionArea](#positionarea7) | 是   | 区域大小,根据区域读取。       |
| callback | AsyncCallback\<void>           | 是   | 获取回调,失败时返回错误信息。 |
X
xiaok 已提交
186 187 188 189

**示例:**

```js
X
xu-rui-w 已提交
190 191
const color = new ArrayBuffer(96);
let bufferArr = new Unit8Array(color);
192 193
let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts, (err, pixelmap) => {
X
xu-rui-w 已提交
194 195 196 197 198 199 200 201 202 203 204
    if(pixelmap == undefined){
        console.info('createPixelMap failed.');
    } else {
        const area = { pixels: new ArrayBuffer(8),
            offset: 0,
            stride: 8,
            region: { size: { height: 1, width: 2 }, x: 0, y: 0 }};
        pixelmap.readPixels(area, () => {
            console.info('readPixels success');
        })
    }
205
})
X
xiaok 已提交
206 207
```

Z
zengyawen 已提交
208
### writePixels<sup>7+</sup>
X
xiaok 已提交
209

Z
zengyawen 已提交
210
writePixels(area: PositionArea): Promise\<void>
X
xiaok 已提交
211

212
将PixelMap写入指定区域内,使用Promise形式返回写入结果。
X
xiaok 已提交
213

X
xu-rui-w 已提交
214
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
215 216 217

**参数:** 

Z
zengyawen 已提交
218 219
| 参数名 | 类型                           | 必填 | 说明                 |
| ------ | ------------------------------ | ---- | -------------------- |
Z
zengyawen 已提交
220
| area   | [PositionArea](#positionarea7) | 是   | 区域,根据区域写入。 |
X
xiaok 已提交
221 222 223

**返回值:**

Z
zengyawen 已提交
224 225 226
| 类型           | 说明                                                |
| :------------- | :-------------------------------------------------- |
| Promise\<void> | Promise实例,用于获取写入结果,失败时返回错误信息。 |
X
xiaok 已提交
227 228 229 230

**示例:**

```js
231
const color = new ArrayBuffer(96);
X
xu-rui-w 已提交
232
let bufferArr = new Unit8Array(color);
233 234 235 236
let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts)
    .then( pixelmap => {
        if (pixelmap == undefined) {
X
xu-rui-w 已提交
237
            console.info('createPixelMap failed.');
238 239 240 241 242 243
        }
        const area = { pixels: new ArrayBuffer(8),
            offset: 0,
            stride: 8,
            region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
        }
X
xu-rui-w 已提交
244
        let bufferArr = new Uint8Array(area.pixels);
245 246 247 248 249 250 251 252 253 254 255 256
        for (var i = 0; i < bufferArr.length; i++) {
            bufferArr[i] = i + 1;
        }

        pixelmap.writePixels(area).then(() => {
            const readArea = { pixels: new ArrayBuffer(8),
                offset: 0,
                stride: 8,
                // region.size.width + x < opts.width, region.size.height + y < opts.height
                region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
            }        
        })
X
xu-rui-w 已提交
257
    }).catch(error => {
258 259
        console.log('error: ' + error);
    })
X
xiaok 已提交
260 261
```

Z
zengyawen 已提交
262
### writePixels<sup>7+</sup>
X
xiaok 已提交
263

Z
zengyawen 已提交
264
writePixels(area: PositionArea, callback: AsyncCallback\<void>): void
X
xiaok 已提交
265

266
将PixelMap写入指定区域内,使用callback形式返回写入结果。
X
xiaok 已提交
267

X
xu-rui-w 已提交
268
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
269 270 271

**参数:** 

Z
zengyawen 已提交
272 273
| 参数名    | 类型                           | 必填 | 说明                           |
| --------- | ------------------------------ | ---- | ------------------------------ |
Z
zengyawen 已提交
274
| area      | [PositionArea](#positionarea7) | 是   | 区域,根据区域写入。           |
X
xu-rui-w 已提交
275
| callback: | AsyncCallback\<void>           | 是   | 获取回调,失败时返回错误信息。 |
X
xiaok 已提交
276 277 278 279

**示例:**

```js
X
xu-rui-w 已提交
280 281
const area = new ArrayBuffer(400);
pixelmap.writePixels(area, (error) => {
X
xu-rui-w 已提交
282
    if (error!=undefined) {
X
xu-rui-w 已提交
283
		console.info('Failed to write pixelmap into the specified area.');
X
xu-rui-w 已提交
284 285 286 287 288 289 290 291
	} else {
	    const readArea = {
            pixels: new ArrayBuffer(20),
            offset: 0,
            stride: 8,
            region: { size: { height: 1, width: 2 }, x: 0, y: 0 },
        }
	}
X
xu-rui-w 已提交
292
})
X
xiaok 已提交
293 294
```

Z
zengyawen 已提交
295
### writeBufferToPixels<sup>7+</sup>
X
xiaok 已提交
296

Z
zengyawen 已提交
297
writeBufferToPixels(src: ArrayBuffer): Promise\<void>
X
xiaok 已提交
298

299
读取缓冲区中的图片数据,结果写入PixelMap中,使用Promise形式返回。
X
xiaok 已提交
300

X
xu-rui-w 已提交
301
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
302 303 304

**参数:**

Z
zengyawen 已提交
305 306 307
| 参数名 | 类型        | 必填 | 说明           |
| ------ | ----------- | ---- | -------------- |
| src    | ArrayBuffer | 是   | 图像像素数据。 |
X
xiaok 已提交
308 309 310

**返回值:**

Z
zengyawen 已提交
311 312 313
| 类型           | 说明                                            |
| -------------- | ----------------------------------------------- |
| Promise\<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
X
xiaok 已提交
314 315 316 317

**示例:**

```js
X
xu-rui-w 已提交
318
const color = new ArrayBuffer(96);
X
xu-rui-w 已提交
319
const pixelMap = new ArrayBuffer(400);
X
xu-rui-w 已提交
320
let bufferArr = new Unit8Array(color);
X
xu-rui-w 已提交
321
pixelMap.writeBufferToPixels(color).then(() => {
X
xiaok 已提交
322 323 324
    console.log("Succeeded in writing data from a buffer to a PixelMap.");
}).catch((err) => {
    console.error("Failed to write data from a buffer to a PixelMap.");
X
xu-rui-w 已提交
325
})
X
xiaok 已提交
326 327
```

Z
zengyawen 已提交
328
### writeBufferToPixels<sup>7+</sup>
X
xiaok 已提交
329

Z
zengyawen 已提交
330
writeBufferToPixels(src: ArrayBuffer, callback: AsyncCallback\<void>): void
X
xiaok 已提交
331

332
读取缓冲区中的图片数据,结果写入PixelMap中,使用callback形式返回。
X
xiaok 已提交
333

X
xu-rui-w 已提交
334
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
335 336 337

**参数:**

Z
zengyawen 已提交
338 339 340 341
| 参数名   | 类型                 | 必填 | 说明                           |
| -------- | -------------------- | ---- | ------------------------------ |
| src      | ArrayBuffer          | 是   | 图像像素数据。                 |
| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。 |
X
xiaok 已提交
342 343 344 345

**示例:**

```js
X
xu-rui-w 已提交
346 347
const color = new ArrayBuffer(96);\
const pixelMap = new ArrayBuffer(400);
X
xu-rui-w 已提交
348
let bufferArr = new Unit8Array(color);
X
xu-rui-w 已提交
349
pixelMap.writeBufferToPixels(color, function(err) {
X
xiaok 已提交
350 351 352
    if (err) {
        console.error("Failed to write data from a buffer to a PixelMap.");
        return;
X
xu-rui-w 已提交
353 354 355
    } else {
		console.log("Succeeded in writing data from a buffer to a PixelMap.");
	}
X
xiaok 已提交
356 357 358
});
```

Z
zengyawen 已提交
359
### getImageInfo<sup>7+</sup>
X
xiaok 已提交
360

Z
zengyawen 已提交
361
getImageInfo(): Promise\<ImageInfo>
X
xiaok 已提交
362 363 364

获取图像像素信息,使用Promise形式返回获取的图像像素信息。

X
xu-rui-w 已提交
365
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
366 367 368

**返回值:**

Z
zengyawen 已提交
369 370 371
| 类型                              | 说明                                                        |
| --------------------------------- | ----------------------------------------------------------- |
| Promise\<[ImageInfo](#imageinfo)> | Promise实例,用于异步获取图像像素信息,失败时返回错误信息。 |
X
xiaok 已提交
372 373 374 375

**示例:**

```js
X
xu-rui-w 已提交
376 377
const pixelMap = new ArrayBuffer(400);
pixelMap.getImageInfo().then(function(info) {
X
xiaok 已提交
378 379 380 381 382 383
    console.log("Succeeded in obtaining the image pixel map information.");
}).catch((err) => {
    console.error("Failed to obtain the image pixel map information.");
});
```

Z
zengyawen 已提交
384
### getImageInfo<sup>7+</sup>
X
xiaok 已提交
385

Z
zengyawen 已提交
386
getImageInfo(callback: AsyncCallback\<ImageInfo>): void
X
xiaok 已提交
387 388 389

获取图像像素信息,使用callback形式返回获取的图像像素信息。

X
xu-rui-w 已提交
390
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
391 392 393

**参数:**

Z
zengyawen 已提交
394 395 396
| 参数名   | 类型                                    | 必填 | 说明                                                         |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback\<[ImageInfo](#imageinfo)> | 是   | 获取图像像素信息回调,异步返回图像像素信息,失败时返回错误信息。 |
X
xiaok 已提交
397 398 399 400

**示例:**

```js
X
xu-rui-w 已提交
401
pixelmap.getImageInfo((imageInfo) => { 
X
xu-rui-w 已提交
402
    console.log("Succeeded in obtaining the image pixel map information..");
X
xu-rui-w 已提交
403
})
X
xiaok 已提交
404 405
```

Z
zengyawen 已提交
406
### getBytesNumberPerRow<sup>7+</sup>
X
xiaok 已提交
407

Z
zengyawen 已提交
408
getBytesNumberPerRow(): number
X
xiaok 已提交
409 410 411

获取图像像素每行字节数。

X
xu-rui-w 已提交
412
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
413 414 415

**返回值:**

Z
zengyawen 已提交
416 417 418
| 类型   | 说明                 |
| ------ | -------------------- |
| number | 图像像素的行字节数。 |
X
xiaok 已提交
419 420 421 422

**示例:**

```js
X
xu-rui-w 已提交
423 424 425
const color = new ArrayBuffer(96);
let bufferArr = new Unit8Array(color);
let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
X
xu-rui-w 已提交
426
image.createPixelMap(color, opts, (err,pixelmap) => {
X
xu-rui-w 已提交
427 428
    let rowCount = pixelmap.getBytesNumberPerRow();
})
X
xiaok 已提交
429 430
```

X
xu-rui-w 已提交
431
### getPixelBytesNumber<sup>9+</sup>
X
xiaok 已提交
432

Z
zengyawen 已提交
433
getPixelBytesNumber(): number
X
xiaok 已提交
434 435 436

获取图像像素的总字节数。

X
xu-rui-w 已提交
437
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
438 439 440

**返回值:**

Z
zengyawen 已提交
441 442 443
| 类型   | 说明                 |
| ------ | -------------------- |
| number | 图像像素的总字节数。 |
X
xiaok 已提交
444 445 446 447

**示例:**

```js
X
xu-rui-w 已提交
448
let pixelBytesNumber = pixelmap.getPixelBytesNumber();
X
xiaok 已提交
449 450
```

Z
zengyawen 已提交
451
### release<sup>7+</sup>
X
xiaok 已提交
452

Z
zengyawen 已提交
453
release():Promise\<void>
X
xiaok 已提交
454

455
释放PixelMap对象,使用Promise形式返回释放结果。
X
xiaok 已提交
456

X
xu-rui-w 已提交
457
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
458

Z
zengyawen 已提交
459
**返回值:**
X
xiaok 已提交
460

Z
zengyawen 已提交
461 462 463
| 类型           | 说明               |
| -------------- | ------------------ |
| Promise\<void> | 异步返回释放结果。 |
X
xiaok 已提交
464 465 466 467

**示例:**

```js
X
xu-rui-w 已提交
468 469 470
const color = new ArrayBuffer(96);
let bufferArr = new Unit8Array(color);
let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
X
xu-rui-w 已提交
471 472
image.createPixelMap(color, opts, (pixelmap) => {
    pixelmap.release().then(() => {
X
xu-rui-w 已提交
473
	    console.log('Succeeded in releasing pixelmap object.');
X
xu-rui-w 已提交
474
    }).catch(error => {
X
xu-rui-w 已提交
475
	    console.log('Failed to release pixelmap object.');
X
xu-rui-w 已提交
476 477
    })
})
X
xiaok 已提交
478 479
```

Z
zengyawen 已提交
480
### release<sup>7+</sup>
X
xiaok 已提交
481

Z
zengyawen 已提交
482
release(callback: AsyncCallback\<void>): void
X
xiaok 已提交
483

484
释放PixelMap对象,使用callback形式返回释放结果。
X
xiaok 已提交
485

X
xu-rui-w 已提交
486
**系统能力:** SystemCapability.Multimedia.Image.Core
X
xiaok 已提交
487 488 489

**参数:**

Z
zengyawen 已提交
490 491 492
| 名称     | 类型                 | 必填 | 说明               |
| -------- | -------------------- | ---- | ------------------ |
| callback | AsyncCallback\<void> | 是   | 异步返回释放结果。 |
X
xiaok 已提交
493 494 495 496

**示例:**

```js
X
xu-rui-w 已提交
497 498 499
const color = new ArrayBuffer(96);
let bufferArr = new Unit8Array(color);
let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
X
xu-rui-w 已提交
500 501
image.createPixelMap(color, opts, (pixelmap) => {
    pixelmap.release().then(() => {
X
xu-rui-w 已提交
502
	    console.log('Succeeded in releasing pixelmap object.');
X
xu-rui-w 已提交
503
    }).catch(error => {
X
xu-rui-w 已提交
504
	    console.log('Failed to release pixelmap object.');
X
xu-rui-w 已提交
505 506
    })
})
X
xiaok 已提交
507 508
```

X
xu-rui-w 已提交
509
## image.createImageSource<sup>9+</sup>
X
xiaok 已提交
510

Z
zengyawen 已提交
511
createImageSource(uri: string): ImageSource
X
xiaok 已提交
512

Z
zengyawen 已提交
513
通过传入的uri创建图片源实例。
X
xiaok 已提交
514

X
xu-rui-w 已提交
515
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
516 517 518

**参数:**

Z
zengyawen 已提交
519 520
| 参数名 | 类型   | 必填 | 说明                               |
| ------ | ------ | ---- | ---------------------------------- |
Z
zhang-xiaobo1997 已提交
521
| uri    | string | 是   | 图片路径,当前仅支持应用沙箱路径。 |
X
xiaok 已提交
522 523 524

**返回值:**

525 526 527
| 类型                        | 说明                                         |
| --------------------------- | -------------------------------------------- |
| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 |
X
xiaok 已提交
528 529 530 531

**示例:**

```js
Z
zhang-xiaobo1997 已提交
532 533
let path = this.context.getApplicationContext().fileDirs + "test.jpg";
const imageSourceApi = image.createImageSource(path);
X
xiaok 已提交
534 535
```

X
xu-rui-w 已提交
536
## image.CreateImageSource<sup>9+</sup>
X
xiaok 已提交
537

X
xu-rui-w 已提交
538
createImageSource(buf: ArrayBuffer): ImageSource
X
xiaok 已提交
539

X
xu-rui-w 已提交
540
基于增量缓冲区创建增量图片源。
X
xiaok 已提交
541

X
xu-rui-w 已提交
542
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
543 544 545

**参数:**

X
xu-rui-w 已提交
546 547 548
| 参数名 | 类型        | 必填 | 说明   |
| ------ | ----------- | ---- | ------ |
| buf    | ArrayBuffer | 是   | 数组。 |
X
xiaok 已提交
549 550 551 552

**示例:**

```js
X
xu-rui-w 已提交
553 554
const buf = new ArrayBuffer(96);
image.createImageSource(buf, () => { })
X
xiaok 已提交
555 556
```

X
xu-rui-w 已提交
557
## image.CreateIncrementalSource<sup>6+</sup>
X
xu-rui-w 已提交
558

X
xu-rui-w 已提交
559
function CreateIncrementalSource(buf: ArrayBuffer, options: SourceOptions): ImageSource
X
xu-rui-w 已提交
560 561 562

创建增量图片源。

X
xu-rui-w 已提交
563
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xu-rui-w 已提交
564 565 566 567 568

**参数:**

| 参数名  | 类型                            | 必填 | 说明                                 |
| ------- | ------------------------------- | ---- | ------------------------------------ |
X
xu-rui-w 已提交
569
| buf     | ArrayBuffer                     | 是   | 数组。                               |
X
xu-rui-w 已提交
570 571 572 573 574 575 576 577 578 579 580 581 582 583 584
| options | [SourceOptions](#SourceOptions) | 是   | 图片属性,包括图片序号与默认属性值。 |

**返回值:**

| 类型                        | 说明                              |
| --------------------------- | --------------------------------- |
| [ImageSource](#imagesource) | 返回图片源,失败时返回undefined。 |

**示例:**

```js
const buf = new ArrayBuffer(96);
const imageSourceApi = image.createIncrementalSource(buf);
```

Z
zengyawen 已提交
585
## ImageSource
X
xiaok 已提交
586

Z
zengyawen 已提交
587 588 589 590
图片源类,用于获取图片相关信息。在调用ImageSource的方法前,需要先通过createImageSource构建一个ImageSource实例。

### 属性

X
xu-rui-w 已提交
591
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
Z
zhang-xiaobo1997 已提交
592

Z
zengyawen 已提交
593 594
| 名称             | 类型           | 可读 | 可写 | 说明                                                         |
| ---------------- | -------------- | ---- | ---- | ------------------------------------------------------------ |
Z
zhang-xiaobo1997 已提交
595
| supportedFormats | Array\<string> | 是   | 否   | 支持的图片格式,包括:png,jpeg,wbmp,bmp,gif,webp,heif等。 |
Z
zengyawen 已提交
596 597 598 599

### getImageInfo

getImageInfo(index: number, callback: AsyncCallback\<ImageInfo>): void
X
xiaok 已提交
600 601 602

获取指定序号的图片信息,使用callback形式返回图片信息。

X
xu-rui-w 已提交
603
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
604 605 606

**参数:**

Z
zengyawen 已提交
607 608 609 610
| 参数名   | 类型                                   | 必填 | 说明                                     |
| -------- | -------------------------------------- | ---- | ---------------------------------------- |
| index    | number                                 | 是   | 创建图片源时的序号。                     |
| callback | AsyncCallback<[ImageInfo](#imageinfo)> | 是   | 获取图片信息回调,异步返回图片信息对象。 |
X
xiaok 已提交
611 612 613 614

**示例:**

```js
X
xu-rui-w 已提交
615 616 617 618 619 620 621
imageSourceApi.getImageInfo(0,(error, imageInfo) => { 
    if(error) {
        console.log('getImageInfo failed.');
    } else {
        console.log('getImageInfo succeeded.');
    }
})
X
xiaok 已提交
622 623
```

Z
zengyawen 已提交
624
### getImageInfo
X
xiaok 已提交
625

Z
zengyawen 已提交
626
getImageInfo(callback: AsyncCallback\<ImageInfo>): void
X
xiaok 已提交
627

Z
zengyawen 已提交
628
获取图片信息,使用callback形式返回图片信息。
X
xiaok 已提交
629

X
xu-rui-w 已提交
630
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
631 632 633 634 635

**参数:**

| 名称     | 类型                                   | 必填 | 说明                                     |
| -------- | -------------------------------------- | ---- | ---------------------------------------- |
Z
zengyawen 已提交
636
| callback | AsyncCallback<[ImageInfo](#imageinfo)> | 是   | 获取图片信息回调,异步返回图片信息对象。 |
X
xiaok 已提交
637 638 639 640

**示例:**

```js
X
xu-rui-w 已提交
641
imageSourceApi.getImageInfo(imageInfo => { 
X
xu-rui-w 已提交
642
    console.log('Succeeded in obtaining the image information.');
X
xu-rui-w 已提交
643
})
X
xiaok 已提交
644 645
```

Z
zengyawen 已提交
646
### getImageInfo
X
xiaok 已提交
647

Z
zengyawen 已提交
648
getImageInfo(index?: number): Promise\<ImageInfo>
X
xiaok 已提交
649 650 651

获取图片信息,使用Promise形式返回图片信息。

X
xu-rui-w 已提交
652
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
653 654 655

**参数:**

Z
zengyawen 已提交
656 657 658
| 名称  | 类型   | 必填 | 说明                                  |
| ----- | ------ | ---- | ------------------------------------- |
| index | number | 否   | 创建图片源时的序号,不选择时默认为0。 |
X
xiaok 已提交
659 660 661

**返回值:**

Z
zengyawen 已提交
662 663 664
| 类型                             | 说明                   |
| -------------------------------- | ---------------------- |
| Promise<[ImageInfo](#imageinfo)> | 返回获取到的图片信息。 |
X
xiaok 已提交
665 666 667 668 669

**示例:**

```js
imageSourceApi.getImageInfo(0)
X
xu-rui-w 已提交
670
    .then(imageInfo => {
X
xu-rui-w 已提交
671
		console.log('Succeeded in obtaining the image information.');
X
xu-rui-w 已提交
672
	}).catch(error => {
X
xu-rui-w 已提交
673
		console.log('Failed to obtain the image information.');
X
xu-rui-w 已提交
674
	})
X
xiaok 已提交
675 676
```

Z
zengyawen 已提交
677
### getImageProperty<sup>7+</sup>
X
xiaok 已提交
678

Z
zengyawen 已提交
679
getImageProperty(key:string, options?: GetImagePropertyOptions): Promise\<string>
X
xiaok 已提交
680

Z
zengyawen 已提交
681
获取图片中给定索引处图像的指定属性键的值,用Promise形式返回结果。
X
xiaok 已提交
682

X
xu-rui-w 已提交
683
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
684 685 686

 **参数:**

Z
zengyawen 已提交
687 688 689 690
| 名称    | 类型                                                 | 必填 | 说明                                 |
| ------- | ---------------------------------------------------- | ---- | ------------------------------------ |
| key     | string                                               | 是   | 图片属性名。                         |
| options | [GetImagePropertyOptions](#getimagepropertyoptions7) | 否   | 图片属性,包括图片序号与默认属性值。 |
X
xiaok 已提交
691 692 693

**返回值:**

Z
zengyawen 已提交
694 695 696
| 类型             | 说明                                                         |
| ---------------- | ------------------------------------------------------------ |
| Promise\<string> | Promise实例,用于异步获取图片属性值,如获取失败则返回属性默认值。 |
X
xiaok 已提交
697 698 699 700

**示例:**

```js
701
imageSourceApi.getImageProperty("BitsPerSample")
X
xu-rui-w 已提交
702
    .then(data => {
X
xu-rui-w 已提交
703
		console.log('Succeeded in getting the value of the specified attribute key of the image.');
X
xu-rui-w 已提交
704
	})
X
xiaok 已提交
705 706
```

Z
zengyawen 已提交
707
### getImageProperty<sup>7+</sup>
X
xiaok 已提交
708

Z
zengyawen 已提交
709
getImageProperty(key:string, callback: AsyncCallback\<string>): void
X
xiaok 已提交
710

Z
zengyawen 已提交
711
获取图片中给定索引处图像的指定属性键的值,用callback形式返回结果。
X
xiaok 已提交
712

X
xu-rui-w 已提交
713
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
714 715 716

 **参数:**

Z
zengyawen 已提交
717 718 719 720
| 参数名   | 类型                   | 必填 | 说明                                                         |
| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
| key      | string                 | 是   | 图片属性名。                                                 |
| callback | AsyncCallback\<string> | 是   | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 |
X
xiaok 已提交
721 722 723 724

**示例:**

```js
X
xu-rui-w 已提交
725 726
imageSourceApi.getImageProperty("BitsPerSample",(error,data) => { 
    if(error) {
X
xu-rui-w 已提交
727
        console.log('Failed to get the value of the specified attribute key of the image.');
X
xu-rui-w 已提交
728
    } else {
X
xu-rui-w 已提交
729
        console.log('Succeeded in getting the value of the specified attribute key of the image.');
X
xu-rui-w 已提交
730 731
    }
})
X
xiaok 已提交
732 733
```

X
xu-rui-w 已提交
734
### getImageProperty<sup>9+</sup>
X
xiaok 已提交
735

Z
zengyawen 已提交
736
getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCallback\<string>): void
X
xiaok 已提交
737 738 739

获取图片指定属性键的值,callback形式返回结果。

X
xu-rui-w 已提交
740
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
741 742 743

**参数:**

Z
zengyawen 已提交
744 745 746 747 748
| 参数名   | 类型                                                 | 必填 | 说明                                                         |
| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
| key      | string                                               | 是   | 图片属性名。                                                 |
| options  | [GetImagePropertyOptions](#getimagepropertyoptions7) | 是   | 图片属性,包括图片序号与默认属性值。                         |
| callback | AsyncCallback\<string>                               | 是   | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 |
X
xiaok 已提交
749 750 751 752

**示例:**

```js
X
xu-rui-w 已提交
753 754
const property = new ArrayBuffer(400);
imageSourceApi.getImageProperty("BitsPerSample",property,(error,data) => { 
X
xu-rui-w 已提交
755
    if(error) {
X
xu-rui-w 已提交
756
        console.log('Failed to get the value of the specified attribute key of the image.');
X
xu-rui-w 已提交
757
    } else {
X
xu-rui-w 已提交
758
        console.log('Succeeded in getting the value of the specified attribute key of the image.');
X
xu-rui-w 已提交
759 760
    }
})
X
xiaok 已提交
761 762
```

X
xu-rui-w 已提交
763
### modifyImageProperty<sup>9+</sup>
X
xu-rui-w 已提交
764 765 766 767 768

modifyImageProperty(key: string, value: string): Promise<void>

修改属性的值。

X
xu-rui-w 已提交
769
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xu-rui-w 已提交
770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793

**参数:**

| 参数名  | 类型   | 必填 | 说明         |
| ------- | ------ | ---- | ------------ |
| key     | string | 是   | 图片属性名。 |
| value   | string | 是   | 属性值。     |

**返回值:**

| 类型                   | 说明                     |
| ---------------------- | ------------------------ |
| Promise<[void](#void)> | 返回修改后的图片属性值。 |

**示例:**

```js
imageSourceApi.modifyImageProperty("ImageWidth", "abc")
            .then(() => {
                const w = imageSourceApi.getImageProperty("ImageWidth")
                console.info('w', w);
            })
```

X
xu-rui-w 已提交
794
### modifyImageProperty<sup>9+</sup>
X
xu-rui-w 已提交
795 796 797 798 799

modifyImageProperty(key: string, value: string, callback: AsyncCallback<void>): void

修改属性的值,callback形式返回结果。

X
xu-rui-w 已提交
800
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xu-rui-w 已提交
801 802 803 804 805 806 807 808 809 810 811 812 813 814 815

**参数:**

| 参数名   | 类型                | 必填 | 说明                           |
| -------- | ------------------- | ---- | ------------------------------ |
| key      | string              | 是   | 图片属性名。                   |
| value    | string              | 是   | 属性值。                       |
| callback | AsyncCallback<void> | 是   | 修改属性值,callback返回结果。 |

**示例:**

```js
imageSourceApi.modifyImageProperty("ImageWidth", "abc",() => {})
```

X
xu-rui-w 已提交
816
### updateData<sup>9+</sup>
X
xu-rui-w 已提交
817 818 819 820 821

updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number): Promise<void>

更新增量数据。

X
xu-rui-w 已提交
822
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xu-rui-w 已提交
823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848

**参数:**

| 名称       | 类型        | 必填 | 说明         |
| ---------- | ----------- | ---- | ------------ |
| buf        | ArrayBuffer | 是   | 增量数据。   |
| isFinished | boolean     | 是   | 是否更新完。 |
| value      | number      | 否   | 偏移量。     |
| length     | number      | 否   | 数组长。     |

**返回值:**

| 类型                   | 说明                   |
| ---------------------- | ---------------------- |
| Promise<[void](#void)> | 返回更新后的增量数据。 |

**示例:**

```js
const array = new ArrayBuffer(100);
imageSourceIncrementalSApi.updateData(array, false, 0, 10).then(data => {
            console.info('Succeeded in updating data.');
        })
```


X
xu-rui-w 已提交
849
### updateData<sup>6+</sup>
X
xu-rui-w 已提交
850 851 852 853 854

updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number, callback: AsyncCallback<void>): void

更新增量数据。

X
xu-rui-w 已提交
855
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xu-rui-w 已提交
856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872

**参数:**

| 名称       | 类型                | 必填 | 说明                 |
| ---------- | ------------------- | ---- | -------------------- |
| buf        | ArrayBuffer         | 是   | 增量数据。           |
| isFinished | boolean             | 是   | 是否更新完。         |
| value      | number              | 否   | 偏移量。             |
| length     | number              | 否   | 数组长。             |
| callback   | AsyncCallback<void> | 是   | 回调表示成功或失败。 |

**示例:**

```js
const array = new ArrayBuffer(100);
imageSourceIncrementalSApi.updateData(array, false, 0, 10,(error,data )=> {
            if(data !== undefined){
X
xu-rui-w 已提交
873
                console.info('Succeeded in updating data.');     
X
xu-rui-w 已提交
874
            }
X
xu-rui-w 已提交
875
		})
X
xu-rui-w 已提交
876 877
```

Z
zengyawen 已提交
878
### createPixelMap<sup>7+</sup>
X
xiaok 已提交
879

Z
zengyawen 已提交
880
createPixelMap(options?: DecodingOptions): Promise\<PixelMap>
X
xiaok 已提交
881

882
通过图片解码参数创建PixelMap对象。
X
xiaok 已提交
883

X
xu-rui-w 已提交
884
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
885 886 887

**参数:**

Z
zengyawen 已提交
888 889 890 891 892 893 894 895 896
| 名称    | 类型                                 | 必填 | 说明       |
| ------- | ------------------------------------ | ---- | ---------- |
| options | [DecodingOptions](#decodingoptions7) | 否   | 解码参数。 |

**返回值:**

| 类型                             | 说明                  |
| -------------------------------- | --------------------- |
| Promise\<[PixelMap](#pixelmap7)> | 异步返回Promise对象。 |
X
xiaok 已提交
897 898 899 900

**示例:**

```js
X
xu-rui-w 已提交
901
imageSourceApi.createPixelMap().then(pixelmap => {
X
xu-rui-w 已提交
902
    console.log('Succeeded in creating pixelmap object through image decoding parameters.');
X
xu-rui-w 已提交
903
}).catch(error => {
X
xu-rui-w 已提交
904
    console.log('Failed to create pixelmap object through image decoding parameters.');
X
xu-rui-w 已提交
905
})
X
xiaok 已提交
906 907
```

Z
zengyawen 已提交
908
### createPixelMap<sup>7+</sup>
X
xiaok 已提交
909

Z
zengyawen 已提交
910
createPixelMap(callback: AsyncCallback\<PixelMap>): void
X
xiaok 已提交
911

912
通过默认参数创建PixelMap对象,使用callback形式返回结果。
X
xiaok 已提交
913

X
xu-rui-w 已提交
914
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
915 916 917

**参数:**

Z
zengyawen 已提交
918 919 920
| 名称     | 类型                                  | 必填 | 说明                       |
| -------- | ------------------------------------- | ---- | -------------------------- |
| callback | AsyncCallback<[PixelMap](#pixelmap7)> | 是   | 通过回调返回PixelMap对象。 |
X
xiaok 已提交
921 922 923 924

**示例:**

```js
X
xu-rui-w 已提交
925
imageSourceApi.createPixelMap(pixelmap => { 
X
xu-rui-w 已提交
926
    console.log('Succeeded in creating pixelmap object.');
X
xu-rui-w 已提交
927
}).catch(error => {
X
xu-rui-w 已提交
928
    console.log('Failed to create pixelmap object.');
X
xu-rui-w 已提交
929
})
X
xiaok 已提交
930 931
```

Z
zengyawen 已提交
932
### createPixelMap<sup>7+</sup>
X
xiaok 已提交
933

Z
zengyawen 已提交
934
createPixelMap(options: DecodingOptions, callback: AsyncCallback\<PixelMap>): void
X
xiaok 已提交
935

Z
zengyawen 已提交
936
通过图片解码参数创建PixelMap对象。
X
xiaok 已提交
937

X
xu-rui-w 已提交
938
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
939 940 941

**参数:**

Z
zengyawen 已提交
942 943
| 名称     | 类型                                  | 必填 | 说明                       |
| -------- | ------------------------------------- | ---- | -------------------------- |
944
| options  | [DecodingOptions](#decodingoptions7)  | 是   | 解码参数。                 |
Z
zengyawen 已提交
945
| callback | AsyncCallback<[PixelMap](#pixelmap7)> | 是   | 通过回调返回PixelMap对象。 |
X
xiaok 已提交
946 947 948 949

**示例:**

```js
X
xu-rui-w 已提交
950
const decodingOptions = new ArrayBuffer(400);
X
xu-rui-w 已提交
951
imageSourceApi.createPixelMap(decodingOptions, pixelmap => { 
X
xu-rui-w 已提交
952 953
    console.log('Succeeded in creating pixelmap object.');
})
X
xiaok 已提交
954 955
```

Z
zengyawen 已提交
956
### release
X
xiaok 已提交
957

Z
zengyawen 已提交
958
release(callback: AsyncCallback\<void>): void
X
xiaok 已提交
959

Z
zengyawen 已提交
960
释放图片源实例,使用callback形式返回结果。
X
xiaok 已提交
961

X
xu-rui-w 已提交
962
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
963 964 965

**参数:**

Z
zengyawen 已提交
966 967 968
| 名称     | 类型                 | 必填 | 说明                               |
| -------- | -------------------- | ---- | ---------------------------------- |
| callback | AsyncCallback\<void> | 是   | 资源释放回调,失败时返回错误信息。 |
X
xiaok 已提交
969 970 971 972

**示例:**

```js
X
xu-rui-w 已提交
973 974 975
imageSourceApi.release(() => { 
    console.log('release succeeded.');
})
X
xiaok 已提交
976 977
```

Z
zengyawen 已提交
978
### release
X
xiaok 已提交
979

Z
zengyawen 已提交
980
release(): Promise\<void>
X
xiaok 已提交
981

Z
zengyawen 已提交
982
释放图片源实例,使用Promise形式返回结果。
X
xiaok 已提交
983

X
xu-rui-w 已提交
984
**系统能力:** SystemCapability.Multimedia.Image.ImageSource
X
xiaok 已提交
985

Z
zengyawen 已提交
986 987 988 989 990 991
**返回值:**

| 类型           | 说明                        |
| -------------- | --------------------------- |
| Promise\<void> | Promise实例,异步返回结果。 |

X
xiaok 已提交
992 993 994
**示例:**

```js
X
xu-rui-w 已提交
995
imageSourceApi.release().then(()=>{
X
xu-rui-w 已提交
996
    console.log('Succeeded in releasing the image source instance.');
X
xu-rui-w 已提交
997
}).catch(error => {
X
xu-rui-w 已提交
998
    console.log('Failed to release the image source instance.');
X
xu-rui-w 已提交
999
})
X
xiaok 已提交
1000 1001
```

Z
zengyawen 已提交
1002
## image.createImagePacker
X
xiaok 已提交
1003 1004 1005

createImagePacker(): ImagePacker

Z
zengyawen 已提交
1006
创建ImagePacker实例。
X
xiaok 已提交
1007

X
xu-rui-w 已提交
1008
**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
X
xiaok 已提交
1009 1010 1011

**返回值:**

Z
zengyawen 已提交
1012 1013 1014
| 类型                        | 说明                  |
| --------------------------- | --------------------- |
| [ImagePacker](#imagepacker) | 返回ImagePacker实例。 |
X
xiaok 已提交
1015 1016 1017 1018 1019 1020 1021

**示例:**

```js
const imagePackerApi = image.createImagePacker();
```

Z
zengyawen 已提交
1022 1023 1024
## ImagePacker

图片打包器类,用于图片压缩和打包。在调用ImagePacker的方法前,需要先通过createImagePacker构建一个ImagePacker实例。
X
xiaok 已提交
1025

Z
zengyawen 已提交
1026 1027
### 属性

X
xu-rui-w 已提交
1028
**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
Z
zhang-xiaobo1997 已提交
1029 1030 1031 1032

| 名称             | 类型           | 可读 | 可写 | 说明                       |
| ---------------- | -------------- | ---- | ---- | -------------------------- |
| supportedFormats | Array\<string> | 是   | 否   | 图片打包支持的格式,jpeg。 |
Z
zengyawen 已提交
1033 1034 1035

### packing

1036
packing(source: ImageSource, option: PackingOption, callback: AsyncCallback\<ArrayBuffer>): void
X
xiaok 已提交
1037 1038 1039

图片压缩或重新打包,使用callback形式返回结果。

X
xu-rui-w 已提交
1040
**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
X
xiaok 已提交
1041 1042 1043

**参数:**

Z
zengyawen 已提交
1044 1045 1046 1047
| 参数名   | 类型                               | 必填 | 说明                               |
| -------- | ---------------------------------- | ---- | ---------------------------------- |
| source   | [ImageSource](#imagesource)        | 是   | 打包的图片源。                     |
| option   | [PackingOption](#packingoption)    | 是   | 设置打包参数。                     |
1048
| callback | AsyncCallback\<ArrayBuffer>        | 是   | 获取图片打包回调,返回打包后数据。 |
X
xiaok 已提交
1049 1050 1051 1052

**示例:**

```js
X
xu-rui-w 已提交
1053
let packOpts = { format:"image/jpeg", quality:98 };
X
xu-rui-w 已提交
1054 1055
const imageSourceApi = new ArrayBuffer(400);
imagePackerApi.packing(imageSourceApi, packOpts, data => {})
X
xiaok 已提交
1056 1057
```

Z
zengyawen 已提交
1058
### packing
X
xiaok 已提交
1059

1060
packing(source: ImageSource, option: PackingOption): Promise\<ArrayBuffer>
X
xiaok 已提交
1061

Z
zengyawen 已提交
1062
图片压缩或重新打包,使用Promise形式返回结果。
X
xiaok 已提交
1063

X
xu-rui-w 已提交
1064
**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
X
xiaok 已提交
1065 1066 1067 1068 1069

**参数:**

| 参数名 | 类型                            | 必填 | 说明           |
| ------ | ------------------------------- | ---- | -------------- |
Z
zengyawen 已提交
1070 1071
| source | [ImageSource](#imagesource)     | 是   | 打包的图片源。 |
| option | [PackingOption](#packingoption) | 是   | 设置打包参数。 |
X
xiaok 已提交
1072 1073 1074

**返回值:**

Z
zengyawen 已提交
1075 1076
| 类型                         | 说明                                          |
| :--------------------------- | :-------------------------------------------- |
1077
| Promise\<ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。 |
X
xiaok 已提交
1078 1079 1080 1081

**示例:**

```js
X
xu-rui-w 已提交
1082
let packOpts = { format:"image/jpeg", quality:98 }
X
xu-rui-w 已提交
1083 1084
const imageSourceApi = new ArrayBuffer(400);
imagePackerApi.packing(imageSourceApi, packOpts)
X
xu-rui-w 已提交
1085 1086 1087 1088 1089
    .then( data => {
        console.log('packing succeeded.');
	}).catch(error => {
	    console.log('packing failed.');
	})
1090 1091
```

1092
### packing<sup>8+</sup>
1093

Z
zengyawen 已提交
1094
packing(source: PixelMap, option: PackingOption, callback: AsyncCallback\<ArrayBuffer>): void
1095 1096 1097

图片压缩或重新打包,使用callback形式返回结果。

X
xu-rui-w 已提交
1098
**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
1099 1100 1101 1102 1103 1104 1105

**参数:**

| 参数名   | 类型                            | 必填 | 说明                               |
| -------- | ------------------------------- | ---- | ---------------------------------- |
| source   | [PixelMap](#pixelmap)           | 是   | 打包的PixelMap资源。               |
| option   | [PackingOption](#packingoption) | 是   | 设置打包参数。                     |
Z
zengyawen 已提交
1106
| callback | AsyncCallback\<ArrayBuffer>     | 是   | 获取图片打包回调,返回打包后数据。 |
1107 1108 1109 1110

**示例:**

```js
X
xu-rui-w 已提交
1111
let packOpts = { format:"image/jpeg", quality:98 }
X
xu-rui-w 已提交
1112 1113 1114
const pixelMapApi = new ArrayBuffer(400);
imagePackerApi.packing(pixelMapApi, packOpts, data => { 
    console.log('Succeeded in packing the image.');
X
xu-rui-w 已提交
1115
}).catch(error => {
X
xu-rui-w 已提交
1116
	console.log('Failed to pack the image.');
X
xu-rui-w 已提交
1117
})
1118 1119
```

1120
### packing<sup>8+</sup>
1121

1122
packing(source: PixelMap, option: PackingOption): Promise\<ArrayBuffer>
1123 1124 1125

图片压缩或重新打包,使用Promise形式返回结果。

X
xu-rui-w 已提交
1126
**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
1127 1128 1129

**参数:**

Z
zhang-xiaobo1997 已提交
1130 1131
| 参数名 | 类型                            | 必填 | 说明               |
| ------ | ------------------------------- | ---- | ------------------ |
1132
| source | [PixelMap](#pixelmap)           | 是   | 打包的PixelMap源。 |
Z
zhang-xiaobo1997 已提交
1133
| option | [PackingOption](#packingoption) | 是   | 设置打包参数。     |
1134 1135 1136

**返回值:**

Z
zengyawen 已提交
1137 1138
| 类型                         | 说明                                          |
| :--------------------------- | :-------------------------------------------- |
1139
| Promise\<ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。 |
1140 1141 1142 1143

**示例:**

```js
X
xu-rui-w 已提交
1144
let packOpts = { format:"image/jpeg", quality:98 }
X
xu-rui-w 已提交
1145 1146
const pixelMapApi = new ArrayBuffer(400);
imagePackerApi.packing(pixelMapApi, packOpts)
X
xu-rui-w 已提交
1147
    .then( data => {
X
xu-rui-w 已提交
1148
	    console.log('Succeeded in packing the image.');
X
xu-rui-w 已提交
1149
	}).catch(error => {
X
xu-rui-w 已提交
1150
	    console.log('Failed to pack the image..');
X
xu-rui-w 已提交
1151
	})
X
xiaok 已提交
1152 1153
```

Z
zengyawen 已提交
1154
### release
X
xiaok 已提交
1155

Z
zengyawen 已提交
1156
release(callback: AsyncCallback\<void>): void
X
xiaok 已提交
1157

Z
zengyawen 已提交
1158
释放图片打包实例,使用callback形式返回结果。
X
xiaok 已提交
1159

X
xu-rui-w 已提交
1160
**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
X
xiaok 已提交
1161 1162 1163

**参数:**

Z
zengyawen 已提交
1164 1165 1166
| 参数名   | 类型                 | 必填 | 说明                           |
| -------- | -------------------- | ---- | ------------------------------ |
| callback | AsyncCallback\<void> | 是   | 释放回调,失败时返回错误信息。 |
X
xiaok 已提交
1167 1168 1169 1170

**示例:**

```js
X
xu-rui-w 已提交
1171
imagePackerApi.release(()=>{ 
X
xu-rui-w 已提交
1172
    console.log('Succeeded in releasing image packaging.');
X
xu-rui-w 已提交
1173
})
X
xiaok 已提交
1174 1175
```

Z
zengyawen 已提交
1176
### release
X
xiaok 已提交
1177

Z
zengyawen 已提交
1178
release(): Promise\<void>
X
xiaok 已提交
1179

Z
zengyawen 已提交
1180
释放图片打包实例,使用Promise形式返回释放结果。
X
xiaok 已提交
1181

X
xu-rui-w 已提交
1182
**系统能力:** SystemCapability.Multimedia.Image.ImagePacker
X
xiaok 已提交
1183

Z
zengyawen 已提交
1184 1185
**返回值:**

Z
zengyawen 已提交
1186 1187 1188
| 类型           | 说明                                                    |
| :------------- | :------------------------------------------------------ |
| Promise\<void> | Promise实例,用于异步获取释放结果,失败时返回错误信息。 |
Z
zengyawen 已提交
1189

X
xiaok 已提交
1190 1191 1192
**示例:**

```js
X
xu-rui-w 已提交
1193
imagePackerApi.release().then(()=>{
X
xu-rui-w 已提交
1194
    console.log('Succeeded in releasing image packaging.');
X
xu-rui-w 已提交
1195
}).catch((error)=>{ 
X
xu-rui-w 已提交
1196
    console.log('Failed to release image packaging.'); 
X
xu-rui-w 已提交
1197
}) 
X
xiaok 已提交
1198 1199
```

Z
zhang-xiaobo1997 已提交
1200 1201
## image.createImageReceiver<sup>9+</sup>

Z
zengyawen 已提交
1202
createImageReceiver(width: number, height: number, format: number, capacity: number): ImageReceiver
Z
zhang-xiaobo1997 已提交
1203

Z
zengyawen 已提交
1204
通过宽、高、图片格式、容量创建ImageReceiver实例。
Z
zhang-xiaobo1997 已提交
1205

Z
zengyawen 已提交
1206
**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1207 1208 1209

**参数:**

Z
zengyawen 已提交
1210 1211 1212 1213 1214 1215
| 名称     | 类型   | 必填 | 说明                   |
| -------- | ------ | ---- | ---------------------- |
| width    | number | 是   | 图像的默认宽度。       |
| height   | number | 是   | 图像的默认高度。       |
| format   | number | 是   | 图像格式。             |
| capacity | number | 是   | 同时访问的最大图像数。 |
Z
zhang-xiaobo1997 已提交
1216 1217 1218

**返回值:**

Z
zengyawen 已提交
1219 1220 1221
| 类型                             | 说明                                    |
| -------------------------------- | --------------------------------------- |
| [ImageReceiver](#imagereceiver9) | 如果操作成功,则返回ImageReceiver实例。 |
Z
zhang-xiaobo1997 已提交
1222 1223 1224 1225

**示例:**

```js
X
xu-rui-w 已提交
1226
var receiver = image.createImageReceiver(8192, 8, 4, 8);
Z
zhang-xiaobo1997 已提交
1227
```
Z
zhang-xiaobo1997 已提交
1228

Z
zhang-xiaobo1997 已提交
1229 1230
## ImageReceiver<sup>9+</sup>

Z
zengyawen 已提交
1231 1232 1233
图像接收类,用于获取组件surface id,接收最新的图片和读取下一张图片,以及释放ImageReceiver实例。

在调用以下方法前需要先创建ImageReceiver实例。
Z
zhang-xiaobo1997 已提交
1234 1235 1236

### 属性

1237
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1238

Z
zengyawen 已提交
1239 1240 1241 1242 1243
| 名称                  | 类型                         | 可读 | 可写 | 说明               |
| --------------------- | ---------------------------- | ---- | ---- | ------------------ |
| size<sup>9+</sup>     | [Size](#size)                | 是   | 否   | 图片大小。         |
| capacity<sup>9+</sup> | number                       | 是   | 否   | 同时访问的图像数。 |
| format<sup>9+</sup>   | [ImageFormat](#imageformat9) | 是   | 否   | 图像格式。         |
Z
zhang-xiaobo1997 已提交
1244

Z
zhang-xiaobo1997 已提交
1245
### getReceivingSurfaceId<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1246

Z
zhang-xiaobo1997 已提交
1247
getReceivingSurfaceId(callback: AsyncCallback\<string>): void
Z
zhang-xiaobo1997 已提交
1248

Z
zengyawen 已提交
1249
用于获取一个surface id供Camera或其他组件使用。使用callback返回结果。
Z
zhang-xiaobo1997 已提交
1250

Z
zengyawen 已提交
1251
**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1252 1253 1254

**参数:**

Z
zengyawen 已提交
1255 1256 1257
| 名称     | 类型                   | 必填 | 说明                       |
| -------- | ---------------------- | ---- | -------------------------- |
| callback | AsyncCallback\<string> | 是   | 回调函数,返回surface id。 |
Z
zhang-xiaobo1997 已提交
1258 1259 1260 1261

**示例:**

```js
X
xu-rui-w 已提交
1262
receiver.getReceivingSurfaceId((err, id) => { 
X
xu-rui-w 已提交
1263 1264 1265 1266 1267 1268
    if(err) {
        console.log('getReceivingSurfaceId failed.');
    } else {
        console.log('getReceivingSurfaceId succeeded.');
    }
});
Z
zhang-xiaobo1997 已提交
1269 1270
```

Z
zhang-xiaobo1997 已提交
1271
### getReceivingSurfaceId<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1272

Z
zhang-xiaobo1997 已提交
1273
getReceivingSurfaceId(): Promise\<string>
Z
zhang-xiaobo1997 已提交
1274

Z
zengyawen 已提交
1275
用于获取一个surface id供Camera或其他组件使用。使用promise返回结果。
Z
zhang-xiaobo1997 已提交
1276

Z
zengyawen 已提交
1277
**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1278 1279 1280

**返回值:**

Z
zhang-xiaobo1997 已提交
1281 1282 1283
| 类型             | 说明                 |
| ---------------- | -------------------- |
| Promise\<string> | 异步返回surface id。 |
Z
zhang-xiaobo1997 已提交
1284 1285 1286 1287 1288

**示例:**

```js
receiver.getReceivingSurfaceId().then( id => { 
X
xu-rui-w 已提交
1289 1290 1291 1292
    console.log('getReceivingSurfaceId succeeded.');
}).catch(error => {
    console.log('getReceivingSurfaceId failed.');
})
Z
zhang-xiaobo1997 已提交
1293 1294
```

Z
zhang-xiaobo1997 已提交
1295
### readLatestImage<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1296

Z
zhang-xiaobo1997 已提交
1297
readLatestImage(callback: AsyncCallback\<Image>): void
Z
zhang-xiaobo1997 已提交
1298

Z
zengyawen 已提交
1299
从ImageReceiver读取最新的图片,并使用callback返回结果。
Z
zhang-xiaobo1997 已提交
1300

Z
zengyawen 已提交
1301
**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1302 1303 1304

**参数:**

Z
zengyawen 已提交
1305 1306 1307
| 名称     | 类型                            | 必填 | 说明                     |
| -------- | ------------------------------- | ---- | ------------------------ |
| callback | AsyncCallback<[Image](#image9)> | 是   | 回调函数,返回最新图像。 |
Z
zhang-xiaobo1997 已提交
1308 1309 1310 1311

**示例:**

```js
X
xu-rui-w 已提交
1312 1313 1314 1315 1316 1317 1318
receiver.readLatestImage((err, img) => { 
    if(err) {
        console.log('readLatestImage failed.');
    } else {
        console.log('readLatestImage succeeded.');
    }
});
Z
zhang-xiaobo1997 已提交
1319 1320
```

Z
zhang-xiaobo1997 已提交
1321
### readLatestImage<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1322

Z
zhang-xiaobo1997 已提交
1323
readLatestImage(): Promise\<Image>
Z
zhang-xiaobo1997 已提交
1324

Z
zengyawen 已提交
1325
从ImageReceiver读取最新的图片,并使用promise返回结果。
Z
zhang-xiaobo1997 已提交
1326

Z
zengyawen 已提交
1327
**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1328 1329 1330 1331 1332

**返回值:**

| 类型                      | 说明               |
| ------------------------- | ------------------ |
Z
zhang-xiaobo1997 已提交
1333
| Promise<[Image](#image8)> | 异步返回最新图片。 |
Z
zhang-xiaobo1997 已提交
1334 1335 1336 1337

**示例:**

```js
X
xu-rui-w 已提交
1338 1339 1340 1341 1342
receiver.readLatestImage().then(img => {
    console.log('readLatestImage succeeded.');
}).catch(error => {
    console.log('readLatestImage failed.');
})
Z
zhang-xiaobo1997 已提交
1343 1344
```

Z
zhang-xiaobo1997 已提交
1345
### readNextImage<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1346

Z
zhang-xiaobo1997 已提交
1347
readNextImage(callback: AsyncCallback\<Image>): void
Z
zhang-xiaobo1997 已提交
1348

Z
zengyawen 已提交
1349
从ImageReceiver读取下一张图片,并使用callback返回结果。
Z
zhang-xiaobo1997 已提交
1350

Z
zengyawen 已提交
1351
**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1352 1353 1354

**参数:**

Z
zengyawen 已提交
1355 1356 1357
| 名称     | 类型                            | 必填 | 说明                       |
| -------- | ------------------------------- | ---- | -------------------------- |
| callback | AsyncCallback<[Image](#image9)> | 是   | 回调函数,返回下一张图片。 |
Z
zhang-xiaobo1997 已提交
1358 1359 1360 1361

**示例:**

```js
X
xu-rui-w 已提交
1362 1363 1364 1365 1366 1367 1368
receiver.readNextImage((err, img) => { 
    if(err) {
        console.log('readNextImage failed.');
    } else {
        console.log('readNextImage succeeded.');
    }
});
Z
zhang-xiaobo1997 已提交
1369 1370
```

Z
zhang-xiaobo1997 已提交
1371
### readNextImage<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1372

Z
zhang-xiaobo1997 已提交
1373
readNextImage(): Promise\<Image>
Z
zhang-xiaobo1997 已提交
1374

Z
zengyawen 已提交
1375
从ImageReceiver读取下一张图片,并使用promise返回结果。
Z
zhang-xiaobo1997 已提交
1376

Z
zengyawen 已提交
1377
**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1378 1379 1380 1381 1382

**返回值:**

| 类型                      | 说明                 |
| ------------------------- | -------------------- |
Z
zengyawen 已提交
1383
| Promise<[Image](#image9)> | 异步返回下一张图片。 |
Z
zhang-xiaobo1997 已提交
1384 1385 1386 1387

**示例:**

```js
X
xu-rui-w 已提交
1388 1389 1390 1391 1392
receiver.readNextImage().then(img => {
    console.log('readNextImage succeeded.');
}).catch(error => {
    console.log('readNextImage failed.');
})
Z
zhang-xiaobo1997 已提交
1393 1394
```

Z
zengyawen 已提交
1395
### on('imageArrival')<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1396

Z
zhang-xiaobo1997 已提交
1397
on(type: 'imageArrival', callback: AsyncCallback\<void>): void
Z
zhang-xiaobo1997 已提交
1398 1399 1400

接收图片时注册回调。

Z
zengyawen 已提交
1401
**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1402 1403 1404

**参数:**

Z
zhang-xiaobo1997 已提交
1405 1406
| 名称     | 类型                 | 必填 | 说明                                                   |
| -------- | -------------------- | ---- | ------------------------------------------------------ |
Z
zengyawen 已提交
1407
| type     | string               | 是   | 注册事件的类型,固定为'imageArrival',接收图片时触发。 |
Z
zhang-xiaobo1997 已提交
1408
| callback | AsyncCallback\<void> | 是   | 注册的事件回调。                                       |
Z
zhang-xiaobo1997 已提交
1409 1410 1411 1412

**示例:**

```js
X
xu-rui-w 已提交
1413
receiver.on('imageArrival', () => {})
Z
zhang-xiaobo1997 已提交
1414 1415
```

Z
zhang-xiaobo1997 已提交
1416
### release<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1417

Z
zengyawen 已提交
1418
release(callback: AsyncCallback\<void>): void
Z
zhang-xiaobo1997 已提交
1419 1420 1421

释放ImageReceiver实例并使用回调返回结果。

Z
zengyawen 已提交
1422
**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1423 1424 1425

**参数:**

Z
zengyawen 已提交
1426 1427 1428
| 名称     | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
| callback | AsyncCallback\<void> | 是   | 回调函数,返回操作结果。 |
Z
zhang-xiaobo1997 已提交
1429 1430 1431 1432

**示例:**

```js
X
xu-rui-w 已提交
1433
receiver.release(() => {})
Z
zhang-xiaobo1997 已提交
1434 1435
```

Z
zhang-xiaobo1997 已提交
1436
### release<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1437

Z
zhang-xiaobo1997 已提交
1438
release(): Promise\<void>
Z
zhang-xiaobo1997 已提交
1439 1440 1441

释放ImageReceiver实例并使用promise返回结果。

Z
zengyawen 已提交
1442
**系统能力:** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1443 1444 1445

**返回值:**

Z
zengyawen 已提交
1446 1447 1448
| 类型           | 说明               |
| -------------- | ------------------ |
| Promise\<void> | 异步返回操作结果。 |
Z
zhang-xiaobo1997 已提交
1449 1450 1451 1452

**示例:**

```js
X
xu-rui-w 已提交
1453 1454 1455 1456 1457
receiver.release().then(() => {
    console.log('release succeeded.');
}).catch(error => {
    console.log('release failed.');
})
Z
zhang-xiaobo1997 已提交
1458 1459
```

Z
zhang-xiaobo1997 已提交
1460
## Image<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1461

Z
zengyawen 已提交
1462
提供基本的图像操作,包括获取图像信息、读写图像数据。调用[readNextImage](#readnextimage9)[readLatestImage](#readlatestimage9)接口时会返回image。
Z
zhang-xiaobo1997 已提交
1463 1464 1465

### 属性

Z
zengyawen 已提交
1466
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
1467

Z
zengyawen 已提交
1468 1469
| 名称                  | 类型               | 可读 | 可写 | 说明                                               |
| --------------------- | ------------------ | ---- | ---- | -------------------------------------------------- |
1470
| clipRect<sup>9+</sup> | [Region](#region7) | 是   | 是   | 要裁剪的图像区域。                                 |
Z
zengyawen 已提交
1471 1472
| size<sup>9+</sup>     | [Size](#size)      | 是   | 否   | 图像大小。                                         |
| format<sup>9+</sup>   | number             | 是   | 否   | 图像格式,参考[PixelMapFormat](#pixelmapformat7)。 |
Z
zhang-xiaobo1997 已提交
1473

Z
zhang-xiaobo1997 已提交
1474
### getComponent<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1475

Z
zhang-xiaobo1997 已提交
1476
getComponent(componentType: ComponentType, callback: AsyncCallback\<Component>): void
Z
zhang-xiaobo1997 已提交
1477

Z
zhang-xiaobo1997 已提交
1478
根据图像的组件类型从图像中获取组件缓存并使用callback返回结果。
Z
zhang-xiaobo1997 已提交
1479

Z
zengyawen 已提交
1480
**系统能力:** SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
1481 1482 1483 1484 1485

**参数:**

| 名称          | 类型                                    | 必填 | 说明                 |
| ------------- | --------------------------------------- | ---- | -------------------- |
Z
zengyawen 已提交
1486 1487
| componentType | [ComponentType](#componenttype9)        | 是   | 图像的组件类型。     |
| callback      | AsyncCallback<[Component](#component9)> | 是   | 用于返回组件缓冲区。 |
Z
zhang-xiaobo1997 已提交
1488 1489 1490 1491

**示例:**

```js
X
xu-rui-w 已提交
1492 1493 1494 1495 1496 1497 1498
img.getComponent(4, (err, component) => {
    if(err) {
        console.log('getComponent failed.');
    } else {
        console.log('getComponent succeeded.');
    }
})
Z
zhang-xiaobo1997 已提交
1499 1500
```

Z
zhang-xiaobo1997 已提交
1501
### getComponent<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1502

Z
zhang-xiaobo1997 已提交
1503
getComponent(componentType: ComponentType): Promise\<Component>
Z
zhang-xiaobo1997 已提交
1504

Z
zengyawen 已提交
1505
根据图像的组件类型从图像中获取组件缓存并使用Promise方式返回结果。
Z
zhang-xiaobo1997 已提交
1506

Z
zengyawen 已提交
1507
**系统能力:** SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
1508 1509 1510 1511 1512

**参数:**

| 名称          | 类型                             | 必填 | 说明             |
| ------------- | -------------------------------- | ---- | ---------------- |
Z
zengyawen 已提交
1513
| componentType | [ComponentType](#componenttype9) | 是   | 图像的组件类型。 |
Z
zhang-xiaobo1997 已提交
1514 1515 1516 1517 1518

**返回值:**

| 类型                              | 说明                              |
| --------------------------------- | --------------------------------- |
Z
zengyawen 已提交
1519
| Promise<[Component](#component9)> | 用于返回组件缓冲区的promise实例。 |
Z
zhang-xiaobo1997 已提交
1520 1521 1522 1523 1524 1525 1526

**示例:**

```js
img.getComponent(4).then(component => { })
```

Z
zhang-xiaobo1997 已提交
1527
### release<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1528

Z
zhang-xiaobo1997 已提交
1529
release(callback: AsyncCallback\<void>): void
Z
zhang-xiaobo1997 已提交
1530

Z
zengyawen 已提交
1531 1532 1533
释放当前图像并使用callback返回结果。

在接收另一个图像前必须先释放对应资源。
Z
zhang-xiaobo1997 已提交
1534

Z
zengyawen 已提交
1535
**系统能力:** SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
1536 1537 1538

**参数:**

Z
zhang-xiaobo1997 已提交
1539 1540 1541
| 名称     | 类型                 | 必填 | 说明           |
| -------- | -------------------- | ---- | -------------- |
| callback | AsyncCallback\<void> | 是   | 返回操作结果。 |
Z
zhang-xiaobo1997 已提交
1542 1543 1544 1545

**示例:**

```js
X
xu-rui-w 已提交
1546 1547 1548 1549 1550
img.release(() =>{ 
    console.log('release succeeded.');
}).catch(error => {
    console.log('release failed.');
}) 
Z
zhang-xiaobo1997 已提交
1551 1552
```

Z
zhang-xiaobo1997 已提交
1553
### release<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1554

Z
zhang-xiaobo1997 已提交
1555
release(): Promise\<void>
Z
zhang-xiaobo1997 已提交
1556

Z
zengyawen 已提交
1557 1558 1559
释放当前图像并使用Promise方式返回结果。

在接收另一个图像前必须先释放对应资源。
Z
zhang-xiaobo1997 已提交
1560

Z
zengyawen 已提交
1561
**系统能力:** SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
1562 1563 1564

**返回值:**

Z
zhang-xiaobo1997 已提交
1565 1566 1567
| 类型           | 说明                  |
| -------------- | --------------------- |
| Promise\<void> | promise返回操作结果。 |
Z
zhang-xiaobo1997 已提交
1568 1569 1570 1571 1572

**示例:**

```js
img.release().then(() =>{
X
xu-rui-w 已提交
1573 1574 1575 1576
    console.log('release succeeded.');
}).catch(error => {
    console.log('release failed.');
})
Z
zhang-xiaobo1997 已提交
1577 1578
```

Z
zengyawen 已提交
1579 1580 1581 1582
## PositionArea<sup>7+</sup>

表示图片指定区域内的数据。

Z
zengyawen 已提交
1583
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1584

1585 1586 1587 1588
| 名称   | 类型               | 可读 | 可写 | 说明                                                         |
| ------ | ------------------ | ---- | ---- | ------------------------------------------------------------ |
| pixels | ArrayBuffer        | 是   | 否   | 像素。                                                       |
| offset | number             | 是   | 否   | 偏移量。                                                     |
Z
zhang-xiaobo1997 已提交
1589
| stride | number             | 是   | 否   | 像素间距,stride >= region.size.width*4。                    |
1590
| region | [Region](#region7) | 是   | 否   | 区域,按照区域读写。写入的区域宽度加X坐标不能大于原图的宽度,写入的区域高度加Y坐标不能大于原图的高度 |
X
xiaok 已提交
1591

Z
zengyawen 已提交
1592
## ImageInfo
X
xiaok 已提交
1593

Z
zengyawen 已提交
1594
表示图片信息。
X
xiaok 已提交
1595

Z
zengyawen 已提交
1596
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
X
xiaok 已提交
1597

Z
zengyawen 已提交
1598 1599 1600
| 名称 | 类型          | 可读 | 可写 | 说明       |
| ---- | ------------- | ---- | ---- | ---------- |
| size | [Size](#size) | 是   | 是   | 图片大小。 |
X
xiaok 已提交
1601

Z
zengyawen 已提交
1602
## Size
X
xiaok 已提交
1603

Z
zengyawen 已提交
1604 1605
表示图片尺寸。

Z
zengyawen 已提交
1606
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1607 1608 1609 1610 1611 1612 1613

| 名称   | 类型   | 可读 | 可写 | 说明           |
| ------ | ------ | ---- | ---- | -------------- |
| height | number | 是   | 是   | 输出图片的高。 |
| width  | number | 是   | 是   | 输出图片的宽。 |

## PixelMapFormat<sup>7+</sup>
X
xiaok 已提交
1614

Z
zengyawen 已提交
1615
枚举,图片像素格式。
X
xiaok 已提交
1616

Z
zengyawen 已提交
1617
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1618 1619 1620 1621 1622 1623 1624

| 名称      | 默认值 | 描述              |
| --------- | ------ | ----------------- |
| UNKNOWN   | 0      | 未知格式。        |
| RGBA_8888 | 3      | 格式为RGBA_8888。 |
| RGB_565   | 2      | 格式为RGB_565。   |

1625
## AlphaType<sup>9+</sup>
X
xiaok 已提交
1626

Z
zengyawen 已提交
1627
枚举,图像的透明度类型。
X
xiaok 已提交
1628

Z
zengyawen 已提交
1629
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1630 1631 1632 1633 1634 1635 1636

| 名称     | 默认值 | 描述                    |
| -------- | ------ | ----------------------- |
| UNKNOWN  | 0      | 未知透明度。            |
| OPAQUE   | 1      | 没有alpha或图片全透明。 |
| PREMUL   | 2      | RGB前乘alpha。          |
| UNPREMUL | 3      | RGB不前乘alpha。        |
X
xiaok 已提交
1637

1638
## ScaleMode<sup>9+</sup>
X
xiaok 已提交
1639

Z
zengyawen 已提交
1640
枚举,图像的缩放模式。
X
xiaok 已提交
1641

Z
zengyawen 已提交
1642
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
X
xiaok 已提交
1643

Z
zengyawen 已提交
1644 1645 1646 1647
| 名称            | 默认值 | 描述                                               |
| --------------- | ------ | -------------------------------------------------- |
| CENTER_CROP     | 1      | 缩放图像以填充目标图像区域并居中裁剪区域外的效果。 |
| FIT_TARGET_SIZE | 2      | 图像适合目标尺寸的效果。                           |
X
xiaok 已提交
1648

Z
zengyawen 已提交
1649
## InitializationOptions<sup>8+</sup>
X
xiaok 已提交
1650

Z
zengyawen 已提交
1651 1652 1653
PixelMap的初始化选项。

**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1654

Z
zhang-xiaobo1997 已提交
1655 1656 1657 1658 1659 1660 1661
| 名称                   | 类型                               | 可读 | 可写 | 说明           |
| ---------------------- | ---------------------------------- | ---- | ---- | -------------- |
| alphaType<sup>9+</sup> | [AlphaType](#alphatype9)           | 是   | 是   | 透明度。       |
| editable               | boolean                            | 是   | 是   | 是否可编辑。   |
| pixelFormat            | [PixelMapFormat](#pixelmapformat7) | 是   | 是   | 像素格式。     |
| scaleMode<sup>9+</sup> | [ScaleMode](#scalemode9)           | 是   | 是   | 缩略值。       |
| size                   | [Size](#size)                      | 是   | 是   | 创建图片大小。 |
Z
zengyawen 已提交
1662 1663

## DecodingOptions<sup>7+</sup>
X
xiaok 已提交
1664

Z
zengyawen 已提交
1665
图像解码设置选项。
X
xiaok 已提交
1666

Z
zengyawen 已提交
1667
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1668 1669 1670 1671

| 名称               | 类型                               | 可读 | 可写 | 说明             |
| ------------------ | ---------------------------------- | ---- | ---- | ---------------- |
| sampleSize         | number                             | 是   | 是   | 缩略图采样大小。 |
Z
zengyawen 已提交
1672
| rotate             | number                             | 是   | 是   | 旋转角度。       |
Z
zengyawen 已提交
1673 1674
| editable           | boolean                            | 是   | 是   | 是否可编辑。     |
| desiredSize        | [Size](#size)                      | 是   | 是   | 期望输出大小。   |
1675
| desiredRegion      | [Region](#region7)                 | 是   | 是   | 解码区域。       |
Z
zengyawen 已提交
1676
| desiredPixelFormat | [PixelMapFormat](#pixelmapformat7) | 是   | 是   | 解码的像素格式。 |
X
xu-rui-w 已提交
1677
| index              | number                             | 是   | 是   | 解码图片序号。   |
Z
zengyawen 已提交
1678

1679
## Region<sup>7+</sup>
Z
zengyawen 已提交
1680 1681 1682

表示区域信息。

Z
zengyawen 已提交
1683
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1684

1685 1686 1687 1688 1689
| 名称 | 类型          | 可读 | 可写 | 说明         |
| ---- | ------------- | ---- | ---- | ------------ |
| size | [Size](#size) | 是   | 是   | 区域大小。   |
| x    | number        | 是   | 是   | 区域横坐标。 |
| y    | number        | 是   | 是   | 区域纵坐标。 |
Z
zengyawen 已提交
1690 1691 1692 1693 1694

## PackingOption

表示图片打包选项。

Z
zengyawen 已提交
1695
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1696 1697 1698 1699

| 名称    | 类型   | 可读 | 可写 | 说明           |
| ------- | ------ | ---- | ---- | -------------- |
| format  | string | 是   | 是   | 目标格式。     |
X
xu-rui-w 已提交
1700
| quality | number | 是   | 是   | JPEG编码中设定输出图片质量的参数,取值范围为1-100。 |
Z
zengyawen 已提交
1701 1702 1703 1704 1705

## GetImagePropertyOptions<sup>7+</sup>

表示查询图片属性的索引。

Z
zengyawen 已提交
1706
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1707 1708 1709 1710 1711 1712 1713 1714 1715 1716

| 名称         | 类型   | 可读 | 可写 | 说明         |
| ------------ | ------ | ---- | ---- | ------------ |
| index        | number | 是   | 是   | 图片序号。   |
| defaultValue | string | 是   | 是   | 默认属性值。 |

## PropertyKey<sup>7+</sup>

枚举,Exif(Exchangeable image file format)图片信息。

Z
zengyawen 已提交
1717
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
1718

Z
zengyawen 已提交
1719 1720
| 名称              | 默认值            | 说明                 |
| ----------------- | ----------------- | -------------------- |
1721
| BITS_PER_SAMPLE   | "BitsPerSample"   | 每个像素比特数。     |
Z
zengyawen 已提交
1722 1723 1724 1725 1726 1727
| ORIENTATION       | "Orientation"     | 图片方向。           |
| IMAGE_LENGTH      | "ImageLength"     | 图片长度。           |
| IMAGE_WIDTH       | "ImageWidth"      | 图片宽度。           |
| GPS_LATITUDE      | "GPSLatitude"     | 图片纬度。           |
| GPS_LONGITUDE     | "GPSLongitude"    | 图片经度。           |
| GPS_LATITUDE_REF  | "GPSLatitudeRef"  | 纬度引用,例如N或S。 |
1728 1729
| GPS_LONGITUDE_REF | "GPSLongitudeRef" | 经度引用,例如W或E。 |

Z
zhang-xiaobo1997 已提交
1730
## ImageFormat<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1731 1732 1733

枚举,图片格式。

Z
zengyawen 已提交
1734
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
1735

Z
zengyawen 已提交
1736 1737 1738 1739
| 名称         | 默认值 | 描述                 |
| ------------ | ------ | -------------------- |
| YCBCR_422_SP | 1000   | YCBCR422半平面格式。 |
| JPEG         | 2000   | JPEG编码格式。       |
Z
zhang-xiaobo1997 已提交
1740

Z
zengyawen 已提交
1741
## ComponentType<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1742 1743 1744

枚举,图像的组件类型。

Z
zengyawen 已提交
1745
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1746 1747 1748 1749 1750 1751 1752 1753

| 名称  | 默认值 | 描述        |
| ----- | ------ | ----------- |
| YUV_Y | 1      | 亮度信息。  |
| YUV_U | 2      | 色度信息。  |
| YUV_V | 3      | 色度信息。  |
| JPEG  | 4      | Jpeg 类型。 |

Z
zengyawen 已提交
1754
## Component<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1755 1756 1757

描述图像颜色分量。

Z
zengyawen 已提交
1758
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
1759 1760 1761

| 名称          | 类型                             | 可读 | 可写 | 说明         |
| ------------- | -------------------------------- | ---- | ---- | ------------ |
Z
zengyawen 已提交
1762
| componentType | [ComponentType](#componenttype9) | 是   | 否   | 组件类型。   |
Z
zhang-xiaobo1997 已提交
1763 1764 1765 1766
| rowStride     | number                           | 是   | 否   | 行距。       |
| pixelStride   | number                           | 是   | 否   | 像素间距。   |
| byteBuffer    | ArrayBuffer                      | 是   | 否   | 组件缓冲区。 |