• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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