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