1# Image 2 3 4提供获取pixelmap的数据和信息的接口方法。 5 6 7@Syscap SystemCapability.Multimedia.Image 8 9 10**起始版本:** 11 12 138 14 15 16## 汇总 17 18 19### 文件 20 21| 文件名称 | 描述 | 22| -------- | -------- | 23| [image_pixel_map_napi.h](image__pixel__map__napi_8h.md) | 声明可以锁定并访问pixelmap数据的方法,声明解锁的方法。 <br>引用文件:<multimedia/image_framework/image_pixel_map_napi.h>| 24 25 26### 结构体 27 28| 结构体名称 | 描述 | 29| -------- | -------- | 30| [OhosPixelMapInfo](_ohos_pixel_map_info.md) | 用于定义 pixel map 的相关信息。 | 31| [OhosPixelMapCreateOps](_ohos_pixel_map_create_ops.md) | 用于定义创建 pixel map 设置选项的相关信息。| 32 33 34### 类型定义 35 36| 名称 | 描述 | 37| -------- | -------- | 38| [NativePixelMap](#nativepixelmap) | 用于定义NativePixelMap数据类型名称。| 39 40 41### 枚举 42 43| 名称 | 描述 | 44| -------- | -------- | 45| { OHOS_IMAGE_RESULT_SUCCESS = 0, OHOS_IMAGE_RESULT_BAD_PARAMETER = -1 } | 函数方法返回值的错误码的枚举。| 46| { OHOS_PIXEL_MAP_FORMAT_NONE = 0, OHOS_PIXEL_MAP_FORMAT_RGBA_8888 = 3, OHOS_PIXEL_MAP_FORMAT_RGB_565 = 2 } | pixel 格式的枚举。| 47| { OHOS_PIXEL_MAP_ALPHA_TYPE_UNKNOWN = 0, OHOS_PIXEL_MAP_ALPHA_TYPE_OPAQUE = 1, OHOS_PIXEL_MAP_ALPHA_TYPE_PREMUL = 2, OHOS_PIXEL_MAP_ALPHA_TYPE_UNPREMUL = 3 } | PixelMap alpha 类型的枚举。| 48| { OHOS_PIXEL_MAP_SCALE_MODE_FIT_TARGET_SIZE = 0, OHOS_PIXEL_MAP_SCALE_MODE_CENTER_CROP = 1 } | PixelMap 缩放类型的枚举。| 49| { OHOS_PIXEL_MAP_READ_ONLY = 0, OHOS_PIXEL_MAP_EDITABLE = 1 } | PixelMap 编辑类型的枚举。| 50 51 52### 函数 53 54| 名称 | 描述 | 55| -------- | -------- | 56| [OH_GetImageInfo](#oh_getimageinfo) (napi_env env, napi_value value, [OhosPixelMapInfo](_ohos_pixel_map_info.md) \*info) | 获取 **PixelMap** 的信息,并记录信息到[OhosPixelMapInfo](_ohos_pixel_map_info.md)结构中。| 57| [OH_AccessPixels](#oh_accesspixels) (napi_env env, napi_value value, void \*\*addrPtr) | 获取**PixelMap**对象数据的内存地址,并锁定该内存。| 58| [OH_UnAccessPixels](#oh_unaccesspixels) (napi_env env, napi_value value) | 释放**PixelMap**对象数据的内存锁, 用于匹配方法[OH_AccessPixels](#oh_accesspixels)。| 59| [OH_PixelMap_CreatePixelMap](#oh_pixelmap_createpixelmap) (napi_env env, [OhosPixelMapCreateOps](_ohos_pixel_map_create_ops.md) info, void \*buf, size_t len, napi_value \*res) | 创建**PixelMap**对象。| 60| [OH_PixelMap_CreateAlphaPixelMap](#oh_pixelmap_createalphapixelmap) (napi_env env, napi_value source, napi_value \*alpha) | 根据Alpha通道的信息,来生成一个仅包含Alpha通道信息的**PixelMap**对象。| 61| [OH_PixelMap_InitNativePixelMap](#oh_pixelmap_initnativepixelmap) (napi_env env, napi_value source) | 初始化**PixelMap**对象数据。| 62| [OH_PixelMap_GetBytesNumberPerRow](#oh_pixelmap_getbytesnumberperrow) (const [NativePixelMap](#nativepixelmap) \*native, int32_t \*num) | 获取**PixelMap**对象每行字节数。| 63| [OH_PixelMap_GetIsEditable](#oh_pixelmap_getiseditable) (const [NativePixelMap](#nativepixelmap) \*native, int32_t \*[editable](image__pixel__map__napi_8h.md#editable)) | 获取**PixelMap**对象是否可编辑的状态。| 64| [OH_PixelMap_IsSupportAlpha](#oh_pixelmap_issupportalpha) (const [NativePixelMap](#nativepixelmap) \*native, int32_t \*alpha) | 获取**PixelMap**对象是否支持Alpha通道。| 65| [OH_PixelMap_SetAlphaAble](#oh_pixelmap_setalphaable) (const [NativePixelMap](#nativepixelmap) \*native, int32_t alpha) | 设置**PixelMap**对象的Alpha通道。| 66| [OH_PixelMap_GetDensity](#oh_pixelmap_getdensity) (const [NativePixelMap](#nativepixelmap) \*native, int32_t \*density) | 获取**PixelMap**对象像素密度。| 67| [OH_PixelMap_SetDensity](#oh_pixelmap_setdensity) (const [NativePixelMap](#nativepixelmap) \*native, int32_t density) | 设置**PixelMap**对象像素密度。| 68| [OH_PixelMap_SetOpacity](#oh_pixelmap_setopacity) (const [NativePixelMap](#nativepixelmap) \*native, float opacity) | 设置**PixelMap**对象的透明度。| 69| [OH_PixelMap_Scale](#oh_pixelmap_scale) (const [NativePixelMap](#nativepixelmap) \*native, float x, float y) | 设置**PixelMap**对象的缩放。| 70| [OH_PixelMap_Translate](#oh_pixelmap_translate) (const [NativePixelMap](#nativepixelmap) \*native, float x, float y) | 设置**PixelMap**对象的偏移。| 71| [OH_PixelMap_Rotate](#oh_pixelmap_rotate) (const [NativePixelMap](#nativepixelmap) \*native, float angle) | 设置**PixelMap**对象的旋转。| 72| [OH_PixelMap_Flip](#oh_pixelmap_flip) (const [NativePixelMap](#nativepixelmap) \*native, int32_t x, int32_t y) | 设置**PixelMap**对象的翻转。| 73| [OH_PixelMap_Crop](#oh_pixelmap_crop) (const [NativePixelMap](#nativepixelmap) \*native, int32_t x, int32_t y, int32_t [width](image__pixel__map__napi_8h.md#width), int32_t [height](image__pixel__map__napi_8h.md#height)) | 设置**PixelMap**对象的裁剪。| 74 75 76## 类型定义说明 77 78 79### NativePixelMap 80 81 82``` 83typedef struct NativePixelMap 84``` 85**描述:** 86用于定义NativePixelMap数据类型名称。 87 88**起始版本:** 899 90 91 92## 枚举类型说明 93 94 95### anonymous enum 96 97 98``` 99anonymous enum 100``` 101**描述:** 102函数方法返回值的错误码的枚举。 103 104| 枚举值 | 描述 | 105| -------- | -------- | 106| OHOS_IMAGE_RESULT_SUCCESS| 成功的结果 | 107| OHOS_IMAGE_RESULT_BAD_PARAMETER| 无效值 | 108 109**起始版本:** 1108 111 112### anonymous enum 113 114 115``` 116anonymous enum 117``` 118**描述:** 119pixel 格式的枚举。 120 121| 枚举值 | 描述 | 122| -------- | -------- | 123| OHOS_PIXEL_MAP_FORMAT_NONE| 未知的格式 | 124| OHOS_PIXEL_MAP_FORMAT_RGBA_8888| 32-bit RGBA。 由 R, G, B组成,包括 A 都需要占用 8 bits。存储顺序是从高位到低位。 | 125| OHOS_PIXEL_MAP_FORMAT_RGB_565| 16-bit RGB。 仅由 R, G, B 组成. 存储顺序是从高位到低位: 红色占用5 bits,绿色占用6 bits,蓝色占用5 bits。 | 126 127**起始版本:** 1288 129 130### anonymous enum 131 132 133``` 134anonymous enum 135``` 136**描述:** 137PixelMap alpha 类型的枚举。 138 139| 枚举值 | 描述 | 140| -------- | -------- | 141| OHOS_PIXEL_MAP_ALPHA_TYPE_UNKNOWN| 未知的格式 | 142| OHOS_PIXEL_MAP_ALPHA_TYPE_OPAQUE| 不透明的格式 | 143| OHOS_PIXEL_MAP_ALPHA_TYPE_PREMUL| 预乘的格式 | 144| OHOS_PIXEL_MAP_ALPHA_TYPE_UNPREMUL| 预除的格式 | 145 146**起始版本:** 1479 148 149### anonymous enum 150 151 152``` 153anonymous enum 154``` 155**描述:** 156PixelMap 缩放类型的枚举。 157 158| 枚举值 | 描述 | 159| -------- | -------- | 160| OHOS_PIXEL_MAP_SCALE_MODE_FIT_TARGET_SIZE| 适应目标图片大小的格式 | 161| OHOS_PIXEL_MAP_SCALE_MODE_CENTER_CROP| 以中心进行缩放的格式 | 162 163**起始版本:** 1649 165 166 167### anonymous enum 168 169 170``` 171anonymous enum 172``` 173**描述:** 174PixelMap 编辑类型的枚举。 175 176| 枚举值 | 描述 | 177| -------- | -------- | 178| OHOS_PIXEL_MAP_READ_ONLY| 只读的格式 | 179| OHOS_PIXEL_MAP_EDITABLE| 可编辑的格式 | 180 181**起始版本:** 1829 183 184 185## 函数说明 186 187 188### OH_AccessPixels() 189 190 191``` 192int32_t OH_AccessPixels (napi_env env, napi_value value, void ** addrPtr ) 193``` 194**描述:** 195获取**PixelMap**对象数据的内存地址,并锁定该内存。 196 197函数执行成功后,**\*addrPtr**就是获取的待访问的内存地址. 访问操作完成后,必须要使用[OH_UnAccessPixels](#oh_unaccesspixels)来释放锁, 否则的话资源无法被释放. 待解锁后,内存地址就不可以再被访问和操作。 198 199**参数:** 200 201| 名称 | 描述 | 202| -------- | -------- | 203| env | napi的环境指针。| 204| value | 应用层的 **PixelMap** 对象。| 205| addrPtr | 用于指向的内存地址的双指针对象。| 206 207**参见:** 208 209UnAccessPixels 210 211**返回:** 212 213操作成功则返回 OHOS_IMAGE_RESULT_SUCCESS; 如果操作失败,则返回错误码。 214 215**起始版本:** 2168 217 218 219### OH_GetImageInfo() 220 221 222``` 223struct OhosPixelMapCreateOps OH_GetImageInfo (napi_env env, napi_value value, OhosPixelMapInfo * info ) 224``` 225**描述:** 226获取 **PixelMap** 的信息,并记录信息到[OhosPixelMapInfo](_ohos_pixel_map_info.md)结构中。 227 228**参数:** 229 230| 名称 | 描述 | 231| -------- | -------- | 232| env | napi的环境指针。| 233| value | 应用层的 **PixelMap** 对象。| 234| info | 用于保存信息的指针对象. 更多细节, 参看 [OhosPixelMapInfo](_ohos_pixel_map_info.md)。| 235 236**返回:** 237 238如果获取并保存信息成功,则返回**0**; 如果操作失败,则返回错误码。 239 240**参见:** 241 242[OhosPixelMapInfo](_ohos_pixel_map_info.md) 243 244**起始版本:** 2458 246 247 248### OH_PixelMap_CreateAlphaPixelMap() 249 250 251``` 252int32_t OH_PixelMap_CreateAlphaPixelMap (napi_env env, napi_value source, napi_value * alpha ) 253``` 254**描述:** 255根据Alpha通道的信息,来生成一个仅包含Alpha通道信息的**PixelMap**对象。 256 257**参数:** 258 259| 名称 | 描述 | 260| -------- | -------- | 261| env | napi的环境指针。| 262| source | **PixelMap**数据设置项。| 263| alpha | alpha通道的指针。| 264 265**返回:** 266 267操作成功则返回 **PixelMap** 对象; 如果操作失败,则返回错误码。 268 269**参见:** 270 271CreateAlphaPixelMap 272 273**起始版本:** 2749 275 276 277### OH_PixelMap_CreatePixelMap() 278 279 280``` 281int32_t OH_PixelMap_CreatePixelMap (napi_env env, OhosPixelMapCreateOps info, void * buf, size_t len, napi_value * res ) 282``` 283**描述:** 284创建**PixelMap**对象. 285 286**参数:** 287 288| 名称 | 描述 | 289| -------- | -------- | 290| env | napi的环境指针。| 291| info | pixel map 数据设置项。| 292| buf | 图片的buffer数据。| 293| len | 图片大小信息。| 294| res | 应用层的 **PixelMap** 对象的指针。| 295 296**返回:** 297 298操作成功则返回 **PixelMap** 对象; 如果操作失败,则返回错误码。 299 300**参见:** 301 302CreatePixelMap 303 304**起始版本:** 3059 306 307 308### OH_PixelMap_Crop() 309 310 311``` 312int32_t OH_PixelMap_Crop (const NativePixelMap * native, int32_t x, int32_t y, int32_t width, int32_t height ) 313``` 314**描述:** 315设置**PixelMap**对象的裁剪. 316 317**参数:** 318 319| 名称 | 描述 | 320| -------- | -------- | 321| native | NativePixelMap的指针。| 322| x | 目标图片左上角的x坐标。| 323| y | 目标图片左上角的y坐标。| 324| width | 裁剪区域的宽度。| 325| height | 裁剪区域的高度。| 326 327**返回:** 328 329操作成功则返回**0**; 如果操作失败,则返回错误码。 330 331**参见:** 332 333Crop 334 335**起始版本:** 3369 337 338 339### OH_PixelMap_Flip() 340 341 342``` 343int32_t OH_PixelMap_Flip (const NativePixelMap * native, int32_t x, int32_t y ) 344``` 345**描述:** 346设置**PixelMap**对象的翻转. 347 348**参数:** 349 350| 名称 | 描述 | 351| -------- | -------- | 352| native | NativePixelMap的指针。| 353| x | 根据水平方向x轴进行图片翻转。| 354| y | 根据垂直方向y轴进行图片翻转。| 355 356**返回:** 357 358操作成功则返回**0**; 如果操作失败,则返回错误码。 359 360**参见:** 361 362Flip 363 364**起始版本:** 3659 366 367 368### OH_PixelMap_GetBytesNumberPerRow() 369 370 371``` 372int32_t OH_PixelMap_GetBytesNumberPerRow (const NativePixelMap * native, int32_t * num ) 373``` 374**描述:** 375获取**PixelMap**对象每行字节数. 376 377**参数:** 378 379| 名称 | 描述 | 380| -------- | -------- | 381| native | NativePixelMap的指针。| 382| num | **PixelMap**对象的每行字节数指针。| 383 384**返回:** 385 386操作成功则返回 **PixelMap** 对象每行字节数; 如果操作失败,则返回错误码。 387 388**参见:** 389 390GetBytesNumberPerRow 391 392**起始版本:** 3939 394 395### OH_PixelMap_GetDensity() 396 397 398``` 399int32_t OH_PixelMap_GetDensity (const NativePixelMap * native, int32_t * density ) 400``` 401**描述:** 402获取**PixelMap**对象像素密度. 403 404**参数:** 405 406| 名称 | 描述 | 407| -------- | -------- | 408| native | NativePixelMap的指针。| 409| density | 像素密度指针。| 410 411**返回:** 412 413操作成功则返回像素密度; 如果操作失败,则返回错误码。 414 415**参见:** 416 417GetDensity 418 419**起始版本:** 4209 421 422 423### OH_PixelMap_GetIsEditable() 424 425 426``` 427int32_t OH_PixelMap_GetIsEditable (const NativePixelMap * native, int32_t * editable ) 428``` 429**描述:** 430获取**PixelMap**对象是否可编辑的状态. 431 432**参数:** 433 434| 名称 | 描述 | 435| -------- | -------- | 436| native | NativePixelMap的指针。| 437| editable | **PixelMap** 对象是否可编辑的指针。| 438 439**返回:** 440 441操作成功则返回编辑类型的枚举值; 如果操作失败,则返回错误码。 442 443**参见:** 444 445GetIsEditable 446 447**起始版本:** 4489 449 450 451### OH_PixelMap_InitNativePixelMap() 452 453 454``` 455NativePixelMap* OH_PixelMap_InitNativePixelMap (napi_env env, napi_value source ) 456``` 457**描述:** 458初始化**PixelMap**对象数据. 459 460**参数:** 461 462| 名称 | 描述 | 463| -------- | -------- | 464| env | napi的环境指针。| 465| source | **PixelMap** 数据设置项。| 466 467**返回:** 468 469操作成功则返回NativePixelMap的指针; 如果操作失败,则返回错误码。 470 471**参见:** 472 473InitNativePixelMap 474 475**起始版本:** 4769 477 478 479### OH_PixelMap_IsSupportAlpha() 480 481 482``` 483int32_t OH_PixelMap_IsSupportAlpha (const NativePixelMap * native, int32_t * alpha ) 484``` 485**描述:** 486获取**PixelMap**对象是否支持Alpha通道. 487 488**参数:** 489 490| 名称 | 描述 | 491| -------- | -------- | 492| native | NativePixelMap的指针。| 493| alpha | 是否支持Alpha的指针。| 494 495**返回:** 496 497操作成功则返回**0**; 如果操作失败,则返回错误码。 498 499**参见:** 500 501IsSupportAlpha 502 503**起始版本:** 5049 505 506 507 508### OH_PixelMap_Rotate() 509 510 511``` 512int32_t OH_PixelMap_Rotate (const NativePixelMap * native, float angle ) 513``` 514**描述:** 515设置**PixelMap**对象的旋转. 516 517**参数:** 518 519| 名称 | 描述 | 520| -------- | -------- | 521| native | NativePixelMap的指针。| 522| angle | 旋转角度。| 523 524**返回:** 525 526操作成功则返回**0**; 如果操作失败,则返回错误码。 527 528**参见:** 529 530Rotate 531 532**起始版本:** 5339 534 535 536### OH_PixelMap_Scale() 537 538 539``` 540int32_t OH_PixelMap_Scale (const NativePixelMap * native, float x, float y ) 541``` 542**描述:** 543设置**PixelMap**对象的缩放. 544 545**参数:** 546 547| 名称 | 描述 | 548| -------- | -------- | 549| native | NativePixelMap的指针。| 550| x | 缩放宽度。| 551| y | 缩放高度。| 552 553**返回:** 554 555操作成功则返回**0**; 如果操作失败,则返回错误码。 556 557**参见:** 558 559Scale 560 561**起始版本:** 5629 563 564 565### OH_PixelMap_SetAlphaAble() 566 567 568``` 569int32_t OH_PixelMap_SetAlphaAble (const NativePixelMap * native, int32_t alpha ) 570``` 571**描述:** 572设置**PixelMap**对象的Alpha通道. 573 574**参数:** 575 576| 名称 | 描述 | 577| -------- | -------- | 578| native | NativePixelMap的指针。| 579| alpha | Alpha通道。| 580 581**返回:** 582 583操作成功则返回**0**; 如果操作失败,则返回错误码。 584 585**参见:** 586 587SetAlphaAble 588 589**起始版本:** 5909 591 592 593### OH_PixelMap_SetDensity() 594 595 596``` 597int32_t OH_PixelMap_SetDensity (const NativePixelMap * native, int32_t density ) 598``` 599**描述:** 600设置**PixelMap**对象像素密度. 601 602**参数:** 603 604| 名称 | 描述 | 605| -------- | -------- | 606| native | NativePixelMap的指针。| 607| density | 像素密度。| 608 609**返回:** 610 611操作成功则返回**0**; 如果操作失败,则返回错误码。 612 613**参见:** 614 615GetDensity 616 617**起始版本:** 6189 619 620 621### OH_PixelMap_SetOpacity() 622 623 624``` 625int32_t OH_PixelMap_SetOpacity (const NativePixelMap * native, float opacity ) 626``` 627**描述:** 628设置**PixelMap**对象的透明度. 629 630**参数:** 631 632| 名称 | 描述 | 633| -------- | -------- | 634| native | NativePixelMap的指针。| 635| opacity | 透明度。| 636 637**返回:** 638 639操作成功则返回**0**; 如果操作失败,则返回错误码。 640 641**参见:** 642 643SetOpacity 644 645**起始版本:** 6469 647 648 649### OH_PixelMap_Translate() 650 651 652``` 653int32_t OH_PixelMap_Translate (const NativePixelMap * native, float x, float y ) 654``` 655**描述:** 656设置**PixelMap**对象的偏移. 657 658**参数:** 659 660| 名称 | 描述 | 661| -------- | -------- | 662| native | NativePixelMap的指针。| 663| x | 水平偏移量。| 664| y | 垂直偏移量。| 665 666**返回:** 667 668操作成功则返回**0**; 如果操作失败,则返回错误码。 669 670**参见:** 671 672Translate 673 674**起始版本:** 6759 676 677 678### OH_UnAccessPixels() 679 680 681``` 682int32_t OH_UnAccessPixels (napi_env env, napi_value value ) 683``` 684**描述:** 685释放**PixelMap**对象数据的内存锁, 用于匹配方法[OH_AccessPixels](#oh_accesspixels). 686 687**参数:** 688 689| 名称 | 描述 | 690| -------- | -------- | 691| env | napi的环境指针。| 692| value | 应用层的 **PixelMap** 对象。| 693 694**返回:** 695 696操作成功则返回 OHOS_IMAGE_RESULT_SUCCESS; 如果操作失败,则返回错误码。 697 698**参见:** 699 700AccessPixels 701 702**起始版本:** 7038 704