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