1# image_packer_mdk.h
2
3
4## Overview
5
6The **image_packer_mdk.h** file declares the APIs used to pack an image or a PixelMap into a buffer or file.
7
8The packing process is as follows:
9
101. Call **OH_ImagePacker_Create** to create an **ImagePacker** object.
11
122. Call **OH_ImagePacker_InitNative** to convert the **ImagePacker** object to an **ImagePacker_Native** object.
13
143. Call **OH_ImagePacker_PackToData** or **OH_ImagePacker_PackToFile** to pack the source into the target area with the specified packing options.
15
164. Call **OH_ImagePacker_Release** to release an **ImagePacker_Native** object.
17
18**Library**: libimage_packer_ndk.z.so
19
20**File to include**: <multimedia/image_framework/image_packer_mdk.h>
21
22**System capability**: SystemCapability.Multimedia.Image
23
24**Since**: 11
25
26**Related module**: [Image](image.md)
27
28
29## Summary
30
31
32### Structs
33
34| Name| Description|
35| -------- | -------- |
36| struct  [ImagePacker_Opts_](_image_packer___opts__.md) | Defines the image packing options. |
37
38
39### Types
40
41| Name| Description|
42| -------- | -------- |
43| typedef struct ImagePacker_Native_ [ImagePacker_Native](image.md#imagepacker_native) | Defines the **ImagePacker** instance at the native layer. |
44| typedef struct [ImagePacker_Opts_](_image_packer___opts__.md) [ImagePacker_Opts](image.md#imagepacker_opts) | Defines the alias of the image packing options. |
45
46
47### Functions
48
49| Name| Description|
50| -------- | -------- |
51| int32_t [OH_ImagePacker_Create](image.md#oh_imagepacker_create) (napi_env env, napi_value \*res) | Obtains an **ImagePacker** object at the JavaScript native layer. |
52| [ImagePacker_Native](image.md#imagepacker_native) \* [OH_ImagePacker_InitNative](image.md#oh_imagepacker_initnative) (napi_env env, napi_value packer) | Converts an **ImagePacker** object at the JavaScript native layer into an **ImagePacker_Native** object. |
53| int32_t [OH_ImagePacker_PackToData](image.md#oh_imagepacker_packtodata) ([ImagePacker_Native](image.md#imagepacker_native) \*native, napi_value source, [ImagePacker_Opts](image.md#imagepacker_opts) \*opts, uint8_t \*outData, size_t \*size) | Packs a **PixelMap** object or an **ImagePacker** object at the JavaScript native layer to a buffer (defined by **outData**) based on the specified **ImagePacker_Opts** struct.|
54| int32_t [OH_ImagePacker_PackToFile](image.md#oh_imagepacker_packtofile) ([ImagePacker_Native](image.md#imagepacker_native) \*native, napi_value source, [ImagePacker_Opts](image.md#imagepacker_opts) \*opts, int fd) | Packs a **PixelMap** object or an **ImagePacker** object at the JavaScript native layer to a file based on the specified **ImagePacker_Opts** struct. |
55| int32_t [OH_ImagePacker_Release](image.md#oh_imagepacker_release) ([ImagePacker_Native](image.md#imagepacker_native) \*native) | Releases an [ImagePacker_Native](image.md#imagepacker_native) object.|
56