You need to sign in or sign up before continuing.
js-apis-image.md 49.7 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 8

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

Z
zengyawen 已提交
12
## image.createPixelMap<sup>8+</sup>
Z
zengyawen 已提交
13
createPixelMap(colors: ArrayBuffer, options: InitializetionOptions): Promise\<PixelMap>
X
xiaok 已提交
14

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

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

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

**返回值:**

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

**示例:**

```js
image.createPixelMap(Color, opts)
            .then((pixelmap) => {
            })
```

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

Z
zengyawen 已提交
42
createPixelMap(colors: ArrayBuffer, options: InitializetionOptions, callback: AsyncCallback\<PixelMap>): void
X
xiaok 已提交
43

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

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

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

**示例:**

```js
image.createPixelMap(Color, opts, (pixelmap) => {
            })
```

Z
zengyawen 已提交
63
## PixelMap<sup>7+</sup>
Z
zengyawen 已提交
64 65 66 67 68

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

 ### 属性

Z
zhang-xiaobo1997 已提交
69 70 71 72 73
**系统能力: ** SystemCapability.Multimedia.Image

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

Z
zengyawen 已提交
75
### readPixelsToBuffer<sup>7+</sup>
X
xiaok 已提交
76

Z
zengyawen 已提交
77
readPixelsToBuffer(dst: ArrayBuffer): Promise\<void>
X
xiaok 已提交
78 79 80 81 82 83 84 85 86 87 88 89 90

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

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

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

**返回值:**

Z
zengyawen 已提交
91 92 93
| 类型           | 说明                                            |
| :------------- | :---------------------------------------------- |
| Promise\<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
X
xiaok 已提交
94 95 96 97 98

**示例:**

```js
pixelmap.readPixelsToBuffer(readBuffer).then(() => {
99 100 101 102
                        //符合条件则进入 
                }).catch(error => {
                //不符合条件则进入
            })
X
xiaok 已提交
103 104
```

Z
zengyawen 已提交
105
### readPixelsToBuffer<sup>7+</sup>
X
xiaok 已提交
106

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

Z
zengyawen 已提交
109
读取图像像素数据,结果写入ArrayBuffer里,使用callback形式返回。
X
xiaok 已提交
110 111 112 113 114

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

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

**示例:**

```js
pixelmap.readPixelsToBuffer(readBuffer, () => {
            })
```

Z
zengyawen 已提交
127
### readPixels<sup>7+</sup>
X
xiaok 已提交
128

Z
zengyawen 已提交
129
readPixels(area: PositionArea): Promise\<void>
X
xiaok 已提交
130 131 132 133 134 135 136

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

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
137 138 139
| 参数名 | 类型                           | 必填 | 说明                     |
| ------ | ------------------------------ | ---- | ------------------------ |
| area   | [PositionArea](#positionarea7) | 是   | 区域大小,根据区域读取。 |
X
xiaok 已提交
140 141 142

**返回值:**

Z
zengyawen 已提交
143 144 145
| 类型           | 说明                                                |
| :------------- | :-------------------------------------------------- |
| Promise\<void> | Promise实例,用于获取读取结果,失败时返回错误信息。 |
X
xiaok 已提交
146 147 148 149 150

**示例:**

```js
pixelmap.readPixels(area).then((data) => {
151 152 153 154
                  //符合条件则进入      
                }).catch(error => {
                //不符合条件则进入
            })
X
xiaok 已提交
155 156
```

Z
zengyawen 已提交
157
### readPixels<sup>7+</sup>
X
xiaok 已提交
158

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

Z
zengyawen 已提交
161
读取区域内的图片数据,使用callback形式返回读取结果。
X
xiaok 已提交
162 163 164 165 166

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
167 168 169 170
| 参数名   | 类型                           | 必填 | 说明                           |
| -------- | ------------------------------ | ---- | ------------------------------ |
| area     | [PositionArea](#positionarea7) | 是   | 区域大小,根据区域读取。       |
| callback | AsyncCallback\<void>           | 是   | 获取回调,失败时返回错误信息。 |
X
xiaok 已提交
171 172 173 174

**示例:**

```js
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts, (err, pixelmap) => {
     if(pixelmap == undefined){
          console.info('createPixelMap failed');
          expect(false).assertTrue();
          done();
      }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');
           })
      }
})
X
xiaok 已提交
191 192
```

Z
zengyawen 已提交
193
### writePixels<sup>7+</sup>
X
xiaok 已提交
194

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

197
将PixelMap写入指定区域内,使用Promise形式返回写入结果。
X
xiaok 已提交
198 199 200 201 202

**系统能力:** SystemCapability.Multimedia.Image

**参数:** 

Z
zengyawen 已提交
203 204
| 参数名 | 类型                           | 必填 | 说明                 |
| ------ | ------------------------------ | ---- | -------------------- |
Z
zengyawen 已提交
205
| area   | [PositionArea](#positionarea7) | 是   | 区域,根据区域写入。 |
X
xiaok 已提交
206 207 208

**返回值:**

Z
zengyawen 已提交
209 210 211
| 类型           | 说明                                                |
| :------------- | :-------------------------------------------------- |
| Promise\<void> | Promise实例,用于获取写入结果,失败时返回错误信息。 |
X
xiaok 已提交
212 213 214 215

**示例:**

```js
216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248
const color = new ArrayBuffer(96);
let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts)
    .then( pixelmap => {
        if (pixelmap == undefined) {
            console.info('createPixelMap failed');
            expect(false).assertTrue()
            done();
        }
        const area = { pixels: new ArrayBuffer(8),
            offset: 0,
            stride: 8,
            region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
        }
        var bufferArr = new Uint8Array(area.pixels);
        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 }
            }        
        })
    })
    .catch(error => {
        console.log('error: ' + error);
        expect().assertFail();
        done();
    })
X
xiaok 已提交
249 250
```

Z
zengyawen 已提交
251
### writePixels<sup>7+</sup>
X
xiaok 已提交
252

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

255
将PixelMap写入指定区域内,使用callback形式返回写入结果。
X
xiaok 已提交
256 257 258 259 260

**系统能力:** SystemCapability.Multimedia.Image

**参数:** 

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

**示例:**

```js
pixelmap.writePixels(area, () => {
                const readArea = {
                    pixels: new ArrayBuffer(20),
                    offset: 0,
                    stride: 8,
                    region: { size: { height: 1, width: 2 }, x: 0, y: 0 },
                }
            })
```

Z
zengyawen 已提交
279
### writeBufferToPixels<sup>7+</sup>
X
xiaok 已提交
280

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

283
读取缓冲区中的图片数据,结果写入PixelMap中,使用Promise形式返回。
X
xiaok 已提交
284 285 286 287 288

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
289 290 291
| 参数名 | 类型        | 必填 | 说明           |
| ------ | ----------- | ---- | -------------- |
| src    | ArrayBuffer | 是   | 图像像素数据。 |
X
xiaok 已提交
292 293 294

**返回值:**

Z
zengyawen 已提交
295 296 297
| 类型           | 说明                                            |
| -------------- | ----------------------------------------------- |
| Promise\<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
X
xiaok 已提交
298 299 300 301 302 303 304 305 306 307 308

**示例:**

```js
pixelMap.writeBufferToPixels(colorBuffer).then(() => {
    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.");
});
```

Z
zengyawen 已提交
309
### writeBufferToPixels<sup>7+</sup>
X
xiaok 已提交
310

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

313
读取缓冲区中的图片数据,结果写入PixelMap中,使用callback形式返回。
X
xiaok 已提交
314 315 316 317 318

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
319 320 321 322
| 参数名   | 类型                 | 必填 | 说明                           |
| -------- | -------------------- | ---- | ------------------------------ |
| src      | ArrayBuffer          | 是   | 图像像素数据。                 |
| callback | AsyncCallback\<void> | 是   | 获取回调,失败时返回错误信息。 |
X
xiaok 已提交
323 324 325 326 327 328 329 330 331 332 333 334 335

**示例:**

```js
pixelMap.writeBufferToPixels(colorBuffer, function(err) {
    if (err) {
        console.error("Failed to write data from a buffer to a PixelMap.");
        return;
    }
    console.log("Succeeded in writing data from a buffer to a PixelMap.");
});
```

Z
zengyawen 已提交
336
### getImageInfo<sup>7+</sup>
X
xiaok 已提交
337

Z
zengyawen 已提交
338
getImageInfo(): Promise\<ImageInfo>
X
xiaok 已提交
339 340 341 342 343 344 345

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

**系统能力:** SystemCapability.Multimedia.Image

**返回值:**

Z
zengyawen 已提交
346 347 348
| 类型                              | 说明                                                        |
| --------------------------------- | ----------------------------------------------------------- |
| Promise\<[ImageInfo](#imageinfo)> | Promise实例,用于异步获取图像像素信息,失败时返回错误信息。 |
X
xiaok 已提交
349 350 351 352 353 354 355 356 357 358 359

**示例:**

```js
pixelMap.getImageInfo().then(function(info) {
    console.log("Succeeded in obtaining the image pixel map information.");
}).catch((err) => {
    console.error("Failed to obtain the image pixel map information.");
});
```

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

Z
zengyawen 已提交
362
getImageInfo(callback: AsyncCallback\<ImageInfo>): void
X
xiaok 已提交
363 364 365 366 367 368 369

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

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
370 371 372
| 参数名   | 类型                                    | 必填 | 说明                                                         |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback\<[ImageInfo](#imageinfo)> | 是   | 获取图像像素信息回调,异步返回图像像素信息,失败时返回错误信息。 |
X
xiaok 已提交
373 374 375 376

**示例:**

```js
377
pixelmap.getImageInfo((imageInfo) => {})
X
xiaok 已提交
378 379
```

Z
zengyawen 已提交
380
### getBytesNumberPerRow<sup>7+</sup>
X
xiaok 已提交
381

Z
zengyawen 已提交
382
getBytesNumberPerRow(): number
X
xiaok 已提交
383 384 385 386 387 388 389

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

**系统能力:** SystemCapability.Multimedia.Image

**返回值:**

Z
zengyawen 已提交
390 391 392
| 类型   | 说明                 |
| ------ | -------------------- |
| number | 图像像素的行字节数。 |
X
xiaok 已提交
393 394 395 396

**示例:**

```js
397
rowCount = pixelmap.getBytesNumberPerRow()
X
xiaok 已提交
398 399
```

Z
zengyawen 已提交
400
### getPixelBytesNumber<sup>7+</sup>
X
xiaok 已提交
401

Z
zengyawen 已提交
402
getPixelBytesNumber(): number
X
xiaok 已提交
403 404 405 406 407 408 409

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

**系统能力:** SystemCapability.Multimedia.Image

**返回值:**

Z
zengyawen 已提交
410 411 412
| 类型   | 说明                 |
| ------ | -------------------- |
| number | 图像像素的总字节数。 |
X
xiaok 已提交
413 414 415 416

**示例:**

```js
417
pixelBytesNumber = pixelmap.getPixelBytesNumber()
X
xiaok 已提交
418 419
```

Z
zengyawen 已提交
420
### release<sup>7+</sup>
X
xiaok 已提交
421

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

424
释放PixelMap对象,使用Promise形式返回释放结果。
X
xiaok 已提交
425 426 427

**系统能力:** SystemCapability.Multimedia.Image

Z
zengyawen 已提交
428
**返回值:**
X
xiaok 已提交
429

Z
zengyawen 已提交
430 431 432
| 类型           | 说明               |
| -------------- | ------------------ |
| Promise\<void> | 异步返回释放结果。 |
X
xiaok 已提交
433 434 435 436

**示例:**

```js
437 438
 pixelmap.release().then(() => { })
            .catch(error => {})
X
xiaok 已提交
439 440
```

Z
zengyawen 已提交
441
### release<sup>7+</sup>
X
xiaok 已提交
442

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

445
释放PixelMap对象,使用callback形式返回释放结果。
X
xiaok 已提交
446 447 448 449 450

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
451 452 453
| 名称     | 类型                 | 必填 | 说明               |
| -------- | -------------------- | ---- | ------------------ |
| callback | AsyncCallback\<void> | 是   | 异步返回释放结果。 |
X
xiaok 已提交
454 455 456 457

**示例:**

```js
458
pixelmap.release(()=>{ })   
X
xiaok 已提交
459 460
```

Z
zengyawen 已提交
461
## image.createImageSource
X
xiaok 已提交
462

Z
zengyawen 已提交
463
createImageSource(uri: string): ImageSource
X
xiaok 已提交
464

Z
zengyawen 已提交
465
通过传入的uri创建图片源实例。
X
xiaok 已提交
466 467 468 469 470

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
471 472 473
| 参数名 | 类型   | 必填 | 说明                               |
| ------ | ------ | ---- | ---------------------------------- |
| uri    | string | 是   | 图片路径,当前仅支持本地绝对路径。 |
X
xiaok 已提交
474 475 476

**返回值:**

477 478 479
| 类型                        | 说明                                         |
| --------------------------- | -------------------------------------------- |
| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 |
X
xiaok 已提交
480 481 482 483

**示例:**

```js
Z
zengyawen 已提交
484
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg')
X
xiaok 已提交
485 486
```

Z
zengyawen 已提交
487
## image.createImageSource<sup>7+</sup>
X
xiaok 已提交
488

Z
zengyawen 已提交
489
createImageSource(fd: number): ImageSource
X
xiaok 已提交
490

Z
zengyawen 已提交
491
通过传入文件描述符来创建图片源实例。
X
xiaok 已提交
492 493 494 495 496

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
497 498 499
| 参数名 | 类型   | 必填 | 说明           |
| ------ | ------ | ---- | -------------- |
| fd     | number | 是   | 文件描述符fd。 |
X
xiaok 已提交
500 501 502

**返回值:**

503 504 505
| 类型                        | 说明                                         |
| --------------------------- | -------------------------------------------- |
| [ImageSource](#imagesource) | 返回ImageSource类实例,失败时返回undefined。 |
X
xiaok 已提交
506 507 508 509

**示例:**

```js
Z
zengyawen 已提交
510
const imageSourceApi = image.createImageSource(0)
X
xiaok 已提交
511 512
```

Z
zengyawen 已提交
513
## ImageSource
X
xiaok 已提交
514

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

### 属性

Z
zhang-xiaobo1997 已提交
519 520
**系统能力: ** SystemCapability.Multimedia.Image

Z
zengyawen 已提交
521 522
| 名称             | 类型           | 可读 | 可写 | 说明                                                         |
| ---------------- | -------------- | ---- | ---- | ------------------------------------------------------------ |
Z
zhang-xiaobo1997 已提交
523
| supportedFormats | Array\<string> | 是   | 否   | 支持的图片格式,包括:png,jpeg,wbmp,bmp,gif,webp,heif等。 |
Z
zengyawen 已提交
524 525 526 527

### getImageInfo

getImageInfo(index: number, callback: AsyncCallback\<ImageInfo>): void
X
xiaok 已提交
528 529 530 531 532 533 534

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

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
535 536 537 538
| 参数名   | 类型                                   | 必填 | 说明                                     |
| -------- | -------------------------------------- | ---- | ---------------------------------------- |
| index    | number                                 | 是   | 创建图片源时的序号。                     |
| callback | AsyncCallback<[ImageInfo](#imageinfo)> | 是   | 获取图片信息回调,异步返回图片信息对象。 |
X
xiaok 已提交
539 540 541 542

**示例:**

```js
543
imageSourceApi.getImageInfo(0,(error, imageInfo) => {})
X
xiaok 已提交
544 545
```

Z
zengyawen 已提交
546
### getImageInfo
X
xiaok 已提交
547

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

Z
zengyawen 已提交
550
获取图片信息,使用callback形式返回图片信息。
X
xiaok 已提交
551 552 553 554 555 556 557

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

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

**示例:**

```js
563
imageSourceApi.getImageInfo(imageInfo => {})
X
xiaok 已提交
564 565
```

Z
zengyawen 已提交
566
### getImageInfo
X
xiaok 已提交
567

Z
zengyawen 已提交
568
getImageInfo(index?: number): Promise\<ImageInfo>
X
xiaok 已提交
569 570 571 572 573 574 575

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

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
576 577 578
| 名称  | 类型   | 必填 | 说明                                  |
| ----- | ------ | ---- | ------------------------------------- |
| index | number | 否   | 创建图片源时的序号,不选择时默认为0。 |
X
xiaok 已提交
579 580 581

**返回值:**

Z
zengyawen 已提交
582 583 584
| 类型                             | 说明                   |
| -------------------------------- | ---------------------- |
| Promise<[ImageInfo](#imageinfo)> | 返回获取到的图片信息。 |
X
xiaok 已提交
585 586 587 588 589

**示例:**

```js
imageSourceApi.getImageInfo(0)
590 591
            .then(imageInfo => {})
			.catch(error => {})
X
xiaok 已提交
592 593
```

Z
zengyawen 已提交
594
### getImageProperty<sup>7+</sup>
X
xiaok 已提交
595

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

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

**系统能力:** SystemCapability.Multimedia.Image

 **参数:**

Z
zengyawen 已提交
604 605 606 607
| 名称    | 类型                                                 | 必填 | 说明                                 |
| ------- | ---------------------------------------------------- | ---- | ------------------------------------ |
| key     | string                                               | 是   | 图片属性名。                         |
| options | [GetImagePropertyOptions](#getimagepropertyoptions7) | 否   | 图片属性,包括图片序号与默认属性值。 |
X
xiaok 已提交
608 609 610

**返回值:**

Z
zengyawen 已提交
611 612 613
| 类型             | 说明                                                         |
| ---------------- | ------------------------------------------------------------ |
| Promise\<string> | Promise实例,用于异步获取图片属性值,如获取失败则返回属性默认值。 |
X
xiaok 已提交
614 615 616 617

**示例:**

```js
618 619 620
imageSourceApi.getImageProperty("BitsPerSample")
            .then(data => {})
            .catch(error => {})
X
xiaok 已提交
621 622
```

Z
zengyawen 已提交
623
### getImageProperty<sup>7+</sup>
X
xiaok 已提交
624

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

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

**系统能力:** SystemCapability.Multimedia.Image

 **参数:**

Z
zengyawen 已提交
633 634 635 636
| 参数名   | 类型                   | 必填 | 说明                                                         |
| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
| key      | string                 | 是   | 图片属性名。                                                 |
| callback | AsyncCallback\<string> | 是   | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 |
X
xiaok 已提交
637 638 639 640

**示例:**

```js
641
imageSourceApi.getImageProperty("BitsPerSample",(error,data) => {})
X
xiaok 已提交
642 643
```

Z
zengyawen 已提交
644
### getImageProperty<sup>7+</sup>
X
xiaok 已提交
645

Z
zengyawen 已提交
646
getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCallback\<string>): void
X
xiaok 已提交
647 648 649 650 651 652 653

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

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
654 655 656 657 658
| 参数名   | 类型                                                 | 必填 | 说明                                                         |
| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
| key      | string                                               | 是   | 图片属性名。                                                 |
| options  | [GetImagePropertyOptions](#getimagepropertyoptions7) | 是   | 图片属性,包括图片序号与默认属性值。                         |
| callback | AsyncCallback\<string>                               | 是   | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 |
X
xiaok 已提交
659 660 661 662

**示例:**

```js
663
imageSourceApi.getImageProperty("BitsPerSample",property,(error,data) => {})
X
xiaok 已提交
664 665
```

Z
zengyawen 已提交
666
### createPixelMap<sup>7+</sup>
X
xiaok 已提交
667

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

670
通过图片解码参数创建PixelMap对象。
X
xiaok 已提交
671 672 673 674 675

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
676 677 678 679 680 681 682 683 684
| 名称    | 类型                                 | 必填 | 说明       |
| ------- | ------------------------------------ | ---- | ---------- |
| options | [DecodingOptions](#decodingoptions7) | 否   | 解码参数。 |

**返回值:**

| 类型                             | 说明                  |
| -------------------------------- | --------------------- |
| Promise\<[PixelMap](#pixelmap7)> | 异步返回Promise对象。 |
X
xiaok 已提交
685 686 687 688

**示例:**

```js
689 690
imageSourceApi.createPixelMap().then(pixelmap => {})
    						.catch(error => {})
X
xiaok 已提交
691 692
```

Z
zengyawen 已提交
693
### createPixelMap<sup>7+</sup>
X
xiaok 已提交
694

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

697
通过默认参数创建PixelMap对象,使用callback形式返回结果。
X
xiaok 已提交
698 699 700 701 702

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
703 704 705
| 名称     | 类型                                  | 必填 | 说明                       |
| -------- | ------------------------------------- | ---- | -------------------------- |
| callback | AsyncCallback<[PixelMap](#pixelmap7)> | 是   | 通过回调返回PixelMap对象。 |
X
xiaok 已提交
706 707 708 709

**示例:**

```js
710
imageSourceApi.createPixelMap(pixelmap => {})
X
xiaok 已提交
711 712
```

Z
zengyawen 已提交
713
### createPixelMap<sup>7+</sup>
X
xiaok 已提交
714

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

Z
zengyawen 已提交
717
通过图片解码参数创建PixelMap对象。
X
xiaok 已提交
718 719 720 721 722

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
723 724
| 名称     | 类型                                  | 必填 | 说明                       |
| -------- | ------------------------------------- | ---- | -------------------------- |
725
| options  | [DecodingOptions](#decodingoptions7)  | 是   | 解码参数。                 |
Z
zengyawen 已提交
726
| callback | AsyncCallback<[PixelMap](#pixelmap7)> | 是   | 通过回调返回PixelMap对象。 |
X
xiaok 已提交
727 728 729 730

**示例:**

```js
731
imageSourceApi.createPixelMap(decodingOptions, pixelmap => {})    
X
xiaok 已提交
732 733
```

Z
zengyawen 已提交
734
### release
X
xiaok 已提交
735

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

Z
zengyawen 已提交
738
释放图片源实例,使用callback形式返回结果。
X
xiaok 已提交
739 740 741 742 743

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
744 745 746
| 名称     | 类型                 | 必填 | 说明                               |
| -------- | -------------------- | ---- | ---------------------------------- |
| callback | AsyncCallback\<void> | 是   | 资源释放回调,失败时返回错误信息。 |
X
xiaok 已提交
747 748 749 750

**示例:**

```js
751
imageSourceApi.release(() => {})
X
xiaok 已提交
752 753
```

Z
zengyawen 已提交
754
### release
X
xiaok 已提交
755

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

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

**系统能力:** SystemCapability.Multimedia.Image

Z
zengyawen 已提交
762 763 764 765 766 767
**返回值:**

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

X
xiaok 已提交
768 769 770
**示例:**

```js
771
imageSourceApi.release().then(()=>{ }).catch(error => {})
X
xiaok 已提交
772 773
```

Z
zengyawen 已提交
774
## image.createImagePacker
X
xiaok 已提交
775 776 777

createImagePacker(): ImagePacker

Z
zengyawen 已提交
778
创建ImagePacker实例。
X
xiaok 已提交
779 780 781 782 783

**系统能力:** SystemCapability.Multimedia.Image

**返回值:**

Z
zengyawen 已提交
784 785 786
| 类型                        | 说明                  |
| --------------------------- | --------------------- |
| [ImagePacker](#imagepacker) | 返回ImagePacker实例。 |
X
xiaok 已提交
787 788 789 790 791 792 793

**示例:**

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

Z
zengyawen 已提交
794 795 796
## ImagePacker

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

Z
zengyawen 已提交
798 799
### 属性

Z
zhang-xiaobo1997 已提交
800 801 802 803 804
**系统能力: ** SystemCapability.Multimedia.Image

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

### packing

Z
zengyawen 已提交
808
packing(source: ImageSource, option: PackingOption, callback: AsyncCallback<Array\<ArrayBuffer>>): void
X
xiaok 已提交
809 810 811 812 813 814 815

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

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
816 817 818 819 820
| 参数名   | 类型                               | 必填 | 说明                               |
| -------- | ---------------------------------- | ---- | ---------------------------------- |
| source   | [ImageSource](#imagesource)        | 是   | 打包的图片源。                     |
| option   | [PackingOption](#packingoption)    | 是   | 设置打包参数。                     |
| callback | AsyncCallback<Array\<ArrayBuffer>> | 是   | 获取图片打包回调,返回打包后数据。 |
X
xiaok 已提交
821 822 823 824 825

**示例:**

```js
let packOpts = { format:["image/jpeg"], quality:98 }
826
imagePackerApi.packing(imageSourceApi, packOpts, data => {})
X
xiaok 已提交
827 828
```

Z
zengyawen 已提交
829
### packing
X
xiaok 已提交
830

Z
zengyawen 已提交
831
packing(source: ImageSource, option: PackingOption): Promise<Array\<ArrayBuffer>>
X
xiaok 已提交
832

Z
zengyawen 已提交
833
图片压缩或重新打包,使用Promise形式返回结果。
X
xiaok 已提交
834 835 836 837 838 839 840

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

| 参数名 | 类型                            | 必填 | 说明           |
| ------ | ------------------------------- | ---- | -------------- |
Z
zengyawen 已提交
841 842
| source | [ImageSource](#imagesource)     | 是   | 打包的图片源。 |
| option | [PackingOption](#packingoption) | 是   | 设置打包参数。 |
X
xiaok 已提交
843 844 845

**返回值:**

Z
zengyawen 已提交
846 847 848
| 类型                         | 说明                                          |
| :--------------------------- | :-------------------------------------------- |
| Promise<Array\<ArrayBuffer>> | Promise实例,用于异步获取压缩或打包后的数据。 |
X
xiaok 已提交
849 850 851 852 853

**示例:**

```js
let packOpts = { format:["image/jpeg"], quality:98 }
854 855 856 857 858 859 860
imagePackerApi.packing(imageSourceApi, packOpts)
    .then( data => { })
	.catch(error => {})
```

### packing

Z
zengyawen 已提交
861
packing(source: PixelMap, option: PackingOption, callback: AsyncCallback\<ArrayBuffer>): void
862 863 864 865 866 867 868 869 870 871 872

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

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

| 参数名   | 类型                            | 必填 | 说明                               |
| -------- | ------------------------------- | ---- | ---------------------------------- |
| source   | [PixelMap](#pixelmap)           | 是   | 打包的PixelMap资源。               |
| option   | [PackingOption](#packingoption) | 是   | 设置打包参数。                     |
Z
zengyawen 已提交
873
| callback | AsyncCallback\<ArrayBuffer>     | 是   | 获取图片打包回调,返回打包后数据。 |
874 875 876 877 878 879 880 881 882 883

**示例:**

```js
let packOpts = { format:["image/jpeg"], quality:98 }
imagePackerApi.packing(pixelMapApi, packOpts, data => {})
```

### packing

Z
zengyawen 已提交
884
packing(source: PixelMap, option: PackingOption): Promise<Array\<ArrayBuffer>>
885 886 887 888 889 890 891

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

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zhang-xiaobo1997 已提交
892 893
| 参数名 | 类型                            | 必填 | 说明               |
| ------ | ------------------------------- | ---- | ------------------ |
894
| source | [PixelMap](#pixelmap)           | 是   | 打包的PixelMap源。 |
Z
zhang-xiaobo1997 已提交
895
| option | [PackingOption](#packingoption) | 是   | 设置打包参数。     |
896 897 898

**返回值:**

Z
zengyawen 已提交
899 900 901
| 类型                         | 说明                                          |
| :--------------------------- | :-------------------------------------------- |
| Promise<Array\<ArrayBuffer>> | Promise实例,用于异步获取压缩或打包后的数据。 |
902 903 904 905 906 907 908 909

**示例:**

```js
let packOpts = { format:["image/jpeg"], quality:98 }
imagePackerApi.packing(pixelMapApi, packOpts)
    .then( data => { })
	.catch(error => {})
X
xiaok 已提交
910 911
```

Z
zengyawen 已提交
912
### release
X
xiaok 已提交
913

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

Z
zengyawen 已提交
916
释放图片打包实例,使用callback形式返回结果。
X
xiaok 已提交
917 918 919 920 921

**系统能力:** SystemCapability.Multimedia.Image

**参数:**

Z
zengyawen 已提交
922 923 924
| 参数名   | 类型                 | 必填 | 说明                           |
| -------- | -------------------- | ---- | ------------------------------ |
| callback | AsyncCallback\<void> | 是   | 释放回调,失败时返回错误信息。 |
X
xiaok 已提交
925 926 927 928

**示例:**

```js
929
imagePackerApi.release(()=>{})
X
xiaok 已提交
930 931
```

Z
zengyawen 已提交
932
### release
X
xiaok 已提交
933

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

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

**系统能力:** SystemCapability.Multimedia.Image

Z
zengyawen 已提交
940 941
**返回值:**

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

X
xiaok 已提交
946 947 948
**示例:**

```js
949 950
 imagePackerApi.release().then(()=>{
            }).catch((error)=>{}) 
X
xiaok 已提交
951 952
```

Z
zhang-xiaobo1997 已提交
953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980
## image.createImageReceiver<sup>9+</sup>

 createImageReceiver(width: number, height: number, format: number, capacity: number): ImageReceiver

通过宽、高、图片格式、容量创建imagereceiver实例。

**系统能力: ** SystemCapability.Multimedia.Image.ImageReceiver

**参数:**

| 名称     | 类型   | 必填 | 说明                                  |
| -------- | ------ | ---- | ------------------------------------- |
| width    | number | 是   | imagereceiver将生成的图像的默认宽度。 |
| height   | number | 是   | imagereceiver将生成的图像的默认高度。 |
| format   | number | 是   | imagereceiver将生成的图像格式。       |
| capacity | number | 是   | 同时访问的最大图像数。                |

**返回值:**

| 类型          | 说明                                      |
| ------------- | ----------------------------------------- |
| ImageReceiver | 如果操作成功,则返回 ImageReceiver 实例。 |

**示例:**

```js
var receiver = image.createImageReceiver(8192, 8, 4, 8)
```
Z
zhang-xiaobo1997 已提交
981

Z
zhang-xiaobo1997 已提交
982 983 984
## ImageReceiver<sup>9+</sup>

图像接收类,用于获取组件surface id,接收最新的图片和读取下一张图片,以及释放 ImageReceiver 实例。在调用各方法前需要先创建 ImageReceiver 实例。
Z
zhang-xiaobo1997 已提交
985 986 987

### 属性

Z
zhang-xiaobo1997 已提交
988 989 990 991 992 993 994
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.ImageReceiver

| 名称     | 类型                         | 可读 | 可写 | 说明               |
| -------- | ---------------------------- | ---- | ---- | ------------------ |
| size     | [Size](#size)                | 是   | 否   | 图片大小。         |
| capacity | number                       | 是   | 否   | 同时访问的图像数。 |
| format   | [ImageFormat](#imageformat9) | 是   | 否   | 图像格式。         |
Z
zhang-xiaobo1997 已提交
995

Z
zhang-xiaobo1997 已提交
996
### getReceivingSurfaceId<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
997

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

Z
zhang-xiaobo1997 已提交
1000
用于获取一个surface id并使用callback返回结果。
Z
zhang-xiaobo1997 已提交
1001

Z
zhang-xiaobo1997 已提交
1002
**系统能力: ** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1003 1004 1005

**参数:**

Z
zhang-xiaobo1997 已提交
1006 1007 1008
| 名称     | 类型                   | 必填 | 说明                         |
| -------- | ---------------------- | ---- | ---------------------------- |
| callback | AsyncCallback\<string> | 是   | 使用callback返回surface id。 |
Z
zhang-xiaobo1997 已提交
1009 1010 1011 1012 1013 1014 1015

**示例:**

```js
 receiver.getReceivingSurfaceId((err, id) => {});
```

Z
zhang-xiaobo1997 已提交
1016
### getReceivingSurfaceId<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1017

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

Z
zhang-xiaobo1997 已提交
1020
用于获取一个surface id并使用promise返回结果。
Z
zhang-xiaobo1997 已提交
1021

Z
zhang-xiaobo1997 已提交
1022
**系统能力: ** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1023 1024 1025

**返回值:**

Z
zhang-xiaobo1997 已提交
1026 1027 1028
| 类型             | 说明                 |
| ---------------- | -------------------- |
| Promise\<string> | 异步返回surface id。 |
Z
zhang-xiaobo1997 已提交
1029 1030 1031 1032 1033 1034 1035 1036 1037

**示例:**

```js
receiver.getReceivingSurfaceId().then( id => { 
            }).catch(error => {
            })
```

Z
zhang-xiaobo1997 已提交
1038
### readLatestImage<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1039

Z
zhang-xiaobo1997 已提交
1040
readLatestImage(callback: AsyncCallback\<Image>): void
Z
zhang-xiaobo1997 已提交
1041 1042 1043

从 ImageReceiver读取最新的图片,并使用callback返回结果。

Z
zhang-xiaobo1997 已提交
1044
**系统能力: ** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1045 1046 1047 1048 1049

**参数:**

| 名称     | 类型                            | 必填 | 说明                   |
| -------- | ------------------------------- | ---- | ---------------------- |
Z
zhang-xiaobo1997 已提交
1050
| callback | AsyncCallback<[Image](#image8)> | 是   | callback返回最新图像。 |
Z
zhang-xiaobo1997 已提交
1051 1052 1053 1054 1055 1056 1057

**示例:**

```js
 receiver.readLatestImage((err, img) => { });
```

Z
zhang-xiaobo1997 已提交
1058
### readLatestImage<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1059

Z
zhang-xiaobo1997 已提交
1060
readLatestImage(): Promise\<Image>
Z
zhang-xiaobo1997 已提交
1061 1062 1063

从 ImageReceiver读取最新的图片,并使用promise返回结果。

Z
zhang-xiaobo1997 已提交
1064
**系统能力: ** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1065 1066 1067 1068 1069

**返回值:**

| 类型                      | 说明               |
| ------------------------- | ------------------ |
Z
zhang-xiaobo1997 已提交
1070
| Promise<[Image](#image8)> | 异步返回最新图片。 |
Z
zhang-xiaobo1997 已提交
1071 1072 1073 1074 1075 1076 1077 1078

**示例:**

```js
receiver.readLatestImage().then(img => {})
	.catch(error => {})
```

Z
zhang-xiaobo1997 已提交
1079
### readNextImage<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1080

Z
zhang-xiaobo1997 已提交
1081
readNextImage(callback: AsyncCallback\<Image>): void
Z
zhang-xiaobo1997 已提交
1082 1083 1084

从 ImageReceiver读取下一张图片,并使用callback返回结果。

Z
zhang-xiaobo1997 已提交
1085
**系统能力: ** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1086 1087 1088 1089 1090

**参数:**

| 名称     | 类型                            | 必填 | 说明                     |
| -------- | ------------------------------- | ---- | ------------------------ |
Z
zhang-xiaobo1997 已提交
1091
| callback | AsyncCallback<[Image](#image8)> | 是   | callback返回下一张图片。 |
Z
zhang-xiaobo1997 已提交
1092 1093 1094 1095 1096 1097 1098

**示例:**

```js
receiver.readNextImage((err, img) => {});
```

Z
zhang-xiaobo1997 已提交
1099
### readNextImage<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1100

Z
zhang-xiaobo1997 已提交
1101
readNextImage(): Promise\<Image>
Z
zhang-xiaobo1997 已提交
1102 1103 1104

从 ImageReceiver读取下一张图片,并使用promise返回结果。

Z
zhang-xiaobo1997 已提交
1105
**系统能力: ** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1106 1107 1108 1109 1110

**返回值:**

| 类型                      | 说明                 |
| ------------------------- | -------------------- |
Z
zhang-xiaobo1997 已提交
1111
| Promise<[Image](#image8)> | 异步返回下一张图片。 |
Z
zhang-xiaobo1997 已提交
1112 1113 1114 1115 1116 1117 1118 1119 1120

**示例:**

```js
 receiver.readNextImage().then(img => {
            }).catch(error => {
            })
```

Z
zhang-xiaobo1997 已提交
1121
### on<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1122

Z
zhang-xiaobo1997 已提交
1123
on(type: 'imageArrival', callback: AsyncCallback\<void>): void
Z
zhang-xiaobo1997 已提交
1124 1125 1126

接收图片时注册回调。

Z
zhang-xiaobo1997 已提交
1127
**系统能力: ** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1128 1129 1130

**参数:**

Z
zhang-xiaobo1997 已提交
1131 1132 1133 1134
| 名称     | 类型                 | 必填 | 说明                                                   |
| -------- | -------------------- | ---- | ------------------------------------------------------ |
| type     | imageArrival         | 是   | 注册事件的类型,固定为'imageArrival',接收图片时触发。 |
| callback | AsyncCallback\<void> | 是   | 注册的事件回调。                                       |
Z
zhang-xiaobo1997 已提交
1135 1136 1137 1138 1139 1140 1141

**示例:**

```js
 receiver.on('imageArrival', () => {})
```

Z
zhang-xiaobo1997 已提交
1142
### release<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1143

Z
zhang-xiaobo1997 已提交
1144
 release(callback: AsyncCallback\<void>): void
Z
zhang-xiaobo1997 已提交
1145 1146 1147

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

Z
zhang-xiaobo1997 已提交
1148
**系统能力: ** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1149 1150 1151

**参数:**

Z
zhang-xiaobo1997 已提交
1152 1153 1154
| 名称     | 类型                 | 必填 | 说明           |
| -------- | -------------------- | ---- | -------------- |
| callback | AsyncCallback\<void> | 是   | 返回操作结果。 |
Z
zhang-xiaobo1997 已提交
1155 1156 1157 1158 1159 1160 1161

**示例:**

```js
 receiver.release(() => {})
```

Z
zhang-xiaobo1997 已提交
1162
### release<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1163

Z
zhang-xiaobo1997 已提交
1164
release(): Promise\<void>
Z
zhang-xiaobo1997 已提交
1165 1166 1167

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

Z
zhang-xiaobo1997 已提交
1168
**系统能力: ** SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1169 1170 1171

**返回值:**

Z
zhang-xiaobo1997 已提交
1172 1173 1174
| 类型           | 说明                    |
| -------------- | ----------------------- |
| Promise\<void> | 用promise返回操作结果。 |
Z
zhang-xiaobo1997 已提交
1175 1176 1177 1178 1179 1180 1181 1182

**示例:**

```js
 receiver.release().then(() => {})
 	.catch(error => {})
```

Z
zhang-xiaobo1997 已提交
1183
## Image<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1184

Z
zhang-xiaobo1997 已提交
1185
提供基本的图像操作,包括获取图像信息、读写图像数据。调用readNextImage和readLatestImage接口时会返回image。
Z
zhang-xiaobo1997 已提交
1186 1187 1188

### 属性

Z
zhang-xiaobo1997 已提交
1189 1190 1191 1192 1193 1194 1195
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core

| 名称     | 类型               | 可读 | 可写 | 说明                         |
| -------- | ------------------ | ---- | ---- | ---------------------------- |
| clipRect | [Region](#region8) | 是   | 是   | 设置或获取要裁剪的图像区域。 |
| size     | [Size](#size)      | 是   | 否   | 图像大小。                   |
| format   | number             | 是   | 否   | 图像格式。                   |
Z
zhang-xiaobo1997 已提交
1196

Z
zhang-xiaobo1997 已提交
1197
### getComponent<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1198

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

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

Z
zhang-xiaobo1997 已提交
1203
**系统能力: ** SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
1204 1205 1206 1207 1208

**参数:**

| 名称          | 类型                                    | 必填 | 说明                 |
| ------------- | --------------------------------------- | ---- | -------------------- |
Z
zhang-xiaobo1997 已提交
1209 1210
| componentType | [ComponentType](#componenttype8)        | 是   | 图像的组件类型。     |
| callback      | AsyncCallback<[Component](#component8)> | 是   | 用于返回组件缓冲区。 |
Z
zhang-xiaobo1997 已提交
1211 1212 1213 1214 1215 1216 1217

**示例:**

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

Z
zhang-xiaobo1997 已提交
1218
### getComponent<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1219

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

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

Z
zhang-xiaobo1997 已提交
1224
**系统能力: ** SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
1225 1226 1227 1228 1229

**参数:**

| 名称          | 类型                             | 必填 | 说明             |
| ------------- | -------------------------------- | ---- | ---------------- |
Z
zhang-xiaobo1997 已提交
1230
| componentType | [ComponentType](#componenttype8) | 是   | 图像的组件类型。 |
Z
zhang-xiaobo1997 已提交
1231 1232 1233 1234 1235

**返回值:**

| 类型                              | 说明                              |
| --------------------------------- | --------------------------------- |
Z
zhang-xiaobo1997 已提交
1236
| Promise<[Component](#component8)> | 用于返回组件缓冲区的promise实例。 |
Z
zhang-xiaobo1997 已提交
1237 1238 1239 1240 1241 1242 1243

**示例:**

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

Z
zhang-xiaobo1997 已提交
1244
### release<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1245

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

Z
zhang-xiaobo1997 已提交
1248
释放当前图像并使用callback返回结果。在接收另一个图像前必须先释放对应资源。
Z
zhang-xiaobo1997 已提交
1249

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

**参数:**

Z
zhang-xiaobo1997 已提交
1254 1255 1256
| 名称     | 类型                 | 必填 | 说明           |
| -------- | -------------------- | ---- | -------------- |
| callback | AsyncCallback\<void> | 是   | 返回操作结果。 |
Z
zhang-xiaobo1997 已提交
1257 1258 1259 1260 1261 1262 1263

**示例:**

```js
img.release(() =>{ }) 
```

Z
zhang-xiaobo1997 已提交
1264
### release<sup>9+</sup>
Z
zhang-xiaobo1997 已提交
1265

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

Z
zhang-xiaobo1997 已提交
1268
释放当前图像并使用promise返回结果。在接收另一个图像前必须先释放对应资源。
Z
zhang-xiaobo1997 已提交
1269

Z
zhang-xiaobo1997 已提交
1270
**系统能力: ** SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
1271 1272 1273

**返回值:**

Z
zhang-xiaobo1997 已提交
1274 1275 1276
| 类型           | 说明                  |
| -------------- | --------------------- |
| Promise\<void> | promise返回操作结果。 |
Z
zhang-xiaobo1997 已提交
1277 1278 1279 1280 1281 1282 1283 1284 1285

**示例:**

```js
img.release().then(() =>{
            }).catch(error => {
            })  
```

Z
zengyawen 已提交
1286 1287 1288 1289
## PositionArea<sup>7+</sup>

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

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

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

Z
zengyawen 已提交
1299
## ImageInfo
X
xiaok 已提交
1300

Z
zengyawen 已提交
1301
表示图片信息。
X
xiaok 已提交
1302

Z
zhang-xiaobo1997 已提交
1303
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
X
xiaok 已提交
1304

Z
zengyawen 已提交
1305 1306 1307
| 名称 | 类型          | 可读 | 可写 | 说明       |
| ---- | ------------- | ---- | ---- | ---------- |
| size | [Size](#size) | 是   | 是   | 图片大小。 |
X
xiaok 已提交
1308

Z
zengyawen 已提交
1309
## Size
X
xiaok 已提交
1310

Z
zengyawen 已提交
1311 1312
表示图片尺寸。

Z
zhang-xiaobo1997 已提交
1313
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1314 1315 1316 1317 1318 1319 1320

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

## PixelMapFormat<sup>7+</sup>
X
xiaok 已提交
1321 1322 1323

枚举,像素格式。

Z
zhang-xiaobo1997 已提交
1324
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1325 1326 1327 1328 1329 1330 1331

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

1332
## AlphaType<sup>9+</sup>
X
xiaok 已提交
1333 1334 1335

枚举,透明度。

Z
zhang-xiaobo1997 已提交
1336
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1337 1338 1339 1340 1341 1342 1343

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

1345
## ScaleMode<sup>9+</sup>
X
xiaok 已提交
1346 1347 1348

枚举,缩略值。

Z
zhang-xiaobo1997 已提交
1349
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
X
xiaok 已提交
1350

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

Z
zengyawen 已提交
1356
## InitializationOptions<sup>8+</sup>
X
xiaok 已提交
1357

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

Z
zhang-xiaobo1997 已提交
1360 1361 1362 1363 1364 1365 1366
| 名称                   | 类型                               | 可读 | 可写 | 说明           |
| ---------------------- | ---------------------------------- | ---- | ---- | -------------- |
| alphaType<sup>9+</sup> | [AlphaType](#alphatype9)           | 是   | 是   | 透明度。       |
| editable               | boolean                            | 是   | 是   | 是否可编辑。   |
| pixelFormat            | [PixelMapFormat](#pixelmapformat7) | 是   | 是   | 像素格式。     |
| scaleMode<sup>9+</sup> | [ScaleMode](#scalemode9)           | 是   | 是   | 缩略值。       |
| size                   | [Size](#size)                      | 是   | 是   | 创建图片大小。 |
Z
zengyawen 已提交
1367 1368

## DecodingOptions<sup>7+</sup>
X
xiaok 已提交
1369 1370 1371

解码设置选项。

Z
zhang-xiaobo1997 已提交
1372
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1373 1374 1375 1376

| 名称               | 类型                               | 可读 | 可写 | 说明             |
| ------------------ | ---------------------------------- | ---- | ---- | ---------------- |
| sampleSize         | number                             | 是   | 是   | 缩略图采样大小。 |
Z
zengyawen 已提交
1377
| rotate             | number                             | 是   | 是   | 旋转角度。       |
Z
zengyawen 已提交
1378 1379
| editable           | boolean                            | 是   | 是   | 是否可编辑。     |
| desiredSize        | [Size](#size)                      | 是   | 是   | 期望输出大小。   |
Z
zhang-xiaobo1997 已提交
1380
| desiredRegion      | [Region](#region8)                 | 是   | 是   | 解码区域。       |
Z
zengyawen 已提交
1381 1382 1383
| desiredPixelFormat | [PixelMapFormat](#pixelmapformat7) | 是   | 是   | 解码的像素格式。 |
| index              | numer                              | 是   | 是   | 解码图片序号     |

Z
zhang-xiaobo1997 已提交
1384
## Region<sup>8+</sup>
Z
zengyawen 已提交
1385 1386 1387

表示区域信息。

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

1390 1391 1392 1393 1394
| 名称 | 类型          | 可读 | 可写 | 说明         |
| ---- | ------------- | ---- | ---- | ------------ |
| size | [Size](#size) | 是   | 是   | 区域大小。   |
| x    | number        | 是   | 是   | 区域横坐标。 |
| y    | number        | 是   | 是   | 区域纵坐标。 |
Z
zengyawen 已提交
1395 1396 1397 1398 1399

## PackingOption

表示图片打包选项。

Z
zhang-xiaobo1997 已提交
1400
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1401 1402 1403 1404 1405 1406 1407 1408 1409 1410

| 名称    | 类型   | 可读 | 可写 | 说明           |
| ------- | ------ | ---- | ---- | -------------- |
| format  | string | 是   | 是   | 目标格式。     |
| quality | number | 是   | 是   | 目标图片质量。 |

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

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

Z
zhang-xiaobo1997 已提交
1411
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image
Z
zengyawen 已提交
1412 1413 1414 1415 1416 1417 1418 1419 1420 1421

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

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

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

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

Z
zengyawen 已提交
1424 1425
| 名称              | 默认值            | 说明                 |
| ----------------- | ----------------- | -------------------- |
1426
| BITS_PER_SAMPLE   | "BitsPerSample"   | 每个像素比特数。     |
Z
zengyawen 已提交
1427 1428 1429 1430 1431 1432
| ORIENTATION       | "Orientation"     | 图片方向。           |
| IMAGE_LENGTH      | "ImageLength"     | 图片长度。           |
| IMAGE_WIDTH       | "ImageWidth"      | 图片宽度。           |
| GPS_LATITUDE      | "GPSLatitude"     | 图片纬度。           |
| GPS_LONGITUDE     | "GPSLongitude"    | 图片经度。           |
| GPS_LATITUDE_REF  | "GPSLatitudeRef"  | 纬度引用,例如N或S。 |
1433 1434
| GPS_LONGITUDE_REF | "GPSLongitudeRef" | 经度引用,例如W或E。 |

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

枚举,图片格式。

Z
zhang-xiaobo1997 已提交
1439
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core
Z
zhang-xiaobo1997 已提交
1440 1441 1442 1443 1444 1445 1446 1447 1448 1449

| 名称         | 默认值 | 描述                  |
| ------------ | ------ | --------------------- |
| YCBCR_422_SP | 1000   | YCBCR422 半平面格式。 |
| JPEG         | 2000   | JPEG编码格式。        |

## ComponentType<sup>8+</sup>

枚举,图像的组件类型。

Z
zhang-xiaobo1997 已提交
1450
**系统能力: ** 以下各项对应的系统能力均为SystemCapability.Multimedia.Image.ImageReceiver
Z
zhang-xiaobo1997 已提交
1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462

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

## Component<sup>8+</sup>

描述图像颜色分量。

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

| 名称          | 类型                             | 可读 | 可写 | 说明         |
| ------------- | -------------------------------- | ---- | ---- | ------------ |
Z
zhang-xiaobo1997 已提交
1467
| componentType | [ComponentType](#componenttype8) | 是   | 否   | 组件类型。   |
Z
zhang-xiaobo1997 已提交
1468 1469 1470 1471
| rowStride     | number                           | 是   | 否   | 行距。       |
| pixelStride   | number                           | 是   | 否   | 像素间距。   |
| byteBuffer    | ArrayBuffer                      | 是   | 否   | 组件缓冲区。 |