1# image_packer_mdk.h 2<!--Kit: Image Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @aulight02--> 5<!--Designer: @liyang_bryan--> 6<!--Tester: @xchaosioda--> 7<!--Adviser: @zengyawen--> 8 9## 概述 10 11声明用于将图像编码到缓冲区或文件的api。可用于将像素数据编码到目标缓冲区或文件中。 12 13编码过程如下: 14 15通过OH_ImagePacker_Create方法创建编码器实例对象。 16 17然后通过OH_ImagePacker_InitNative将编码器实例对象转换为编码器原生实例对象。 18 19接下来用OH_ImagePacker_PackToData或者OH_ImagePacker_PackToFile将源以特定的编码选项编码进目标区域。 20 21最后通过OH_ImagePacker_Release释放编码器实例对象。 22 23**引用文件:** <multimedia/image_framework/image_packer_mdk.h> 24 25**库:** libimage_packer_ndk.z.so 26 27**系统能力:** SystemCapability.Multimedia.Image.Core 28 29**起始版本:** 11 30 31**相关模块:** [Image](capi-image.md) 32 33## 汇总 34 35### 结构体 36 37| 名称 | typedef关键字 | 描述 | 38| -- | -- | -- | 39| [ImagePacker_Opts_](capi-image-imagepacker-opts-.md) | ImagePacker_Opts | 定义图像编码选项信息。 | 40| [ImagePacker_Native_](capi-image-imagepacker-native-.md) | ImagePacker_Native | 为编码器方法定义native层编码器对象。 | 41 42### 函数 43 44| 名称 | 描述 | 45| -- | -- | 46| [int32_t OH_ImagePacker_Create(napi_env env, napi_value *res)](#oh_imagepacker_create) | 获取JavaScript native层ImagePacker对象。 | 47| [ImagePacker_Native* OH_ImagePacker_InitNative(napi_env env, napi_value packer)](#oh_imagepacker_initnative) | 从输入JavaScript native层ImagePacker对象中,转换成ImagePacker_Native值。 | 48| [int32_t OH_ImagePacker_PackToData(ImagePacker_Native* native, napi_value source,ImagePacker_Opts* opts, uint8_t* outData, size_t* size)](#oh_imagepacker_packtodata) | 通过一个给定的选项ImagePacker_Opts结构体,将输入JavaScript native层PixelMap对象或者ImageSource对象编码并输出到指定的缓存区outData中。 | 49| [int32_t OH_ImagePacker_PackToFile(ImagePacker_Native* native, napi_value source, ImagePacker_Opts* opts, int fd)](#oh_imagepacker_packtofile) | 通过一个给定的选项ImagePacker_Opts结构体,将输入JavaScript native层PixelMap对象或者ImageSource对象编码并输出到指定的文件中。 | 50| [int32_t OH_ImagePacker_Release(ImagePacker_Native* native)](#oh_imagepacker_release) | 释放native层编码器对象[ImagePacker_Native](capi-image-imagepacker-native-.md)。<br>此API不用于释放JavaScript原生API ImagePacker对象,它用于释放native层对象ImagePacker_Native。 | 51 52## 函数说明 53 54### OH_ImagePacker_Create() 55 56``` 57int32_t OH_ImagePacker_Create(napi_env env, napi_value *res) 58``` 59 60**描述** 61 62获取JavaScript native层ImagePacker对象。 63 64**起始版本:** 11 65 66 67**参数:** 68 69| 参数项 | 描述 | 70| -- | -- | 71| napi_env env | 表明JNI环境的指针。 | 72| napi_value *res | 表明JavaScript native层ImagePacker对象的指针。 | 73 74**返回:** 75 76| 类型 | 说明 | 77| -- | -- | 78| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:执行成功。<br>IMAGE_RESULT_INVALID_PARAMETER:参数无效。 | 79 80### OH_ImagePacker_InitNative() 81 82``` 83ImagePacker_Native* OH_ImagePacker_InitNative(napi_env env, napi_value packer) 84``` 85 86**描述** 87 88从输入JavaScript native层ImagePacker对象中,转换成ImagePacker_Native值。 89 90**起始版本:** 11 91 92 93**参数:** 94 95| 参数项 | 描述 | 96| -- | -- | 97| napi_env env | 表明JNI环境的指针。 | 98| napi_value packer | 表明JavaScript native层ImagePacker对象。 | 99 100**返回:** 101 102| 类型 | 说明 | 103| -- | -- | 104| [ImagePacker_Native](capi-image-imagepacker-native-.md)* | 如果操作成功则返回ImagePacker_Native指针,否则返回空指针。 | 105 106**参考:** 107 108[OH_ImagePacker_Release](#oh_imagepacker_release) 109 110### OH_ImagePacker_PackToData() 111 112``` 113int32_t OH_ImagePacker_PackToData(ImagePacker_Native* native, napi_value source,ImagePacker_Opts* opts, uint8_t* outData, size_t* size) 114``` 115 116**描述** 117 118通过一个给定的选项ImagePacker_Opts结构体,将输入JavaScript native层PixelMap对象或者ImageSource对象编码并输出到指定的缓存区outData中。 119 120**起始版本:** 11 121 122 123**参数:** 124 125| 参数项 | 描述 | 126| -- | -- | 127| [ImagePacker_Native](capi-image-imagepacker-native-.md)* native | 表明指向native层ImagePacker的指针。 | 128| napi_value source | 表明待编码JavaScript native层PixelMap对象或者ImageSource对象。 | 129| [ImagePacker_Opts](capi-image-imagepacker-opts-.md)* opts | 表明位图编码的选项。 | 130| uint8_t* outData | 输出的指定缓存区。 | 131| size_t* size | 输出的指定缓存区大小。 | 132 133**返回:** 134 135| 类型 | 说明 | 136| -- | -- | 137| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:执行成功。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> ERR_IMAGE_DATA_ABNORMAL:输出缓冲区异常。<br> ERR_IMAGE_MISMATCHED_FORMAT:格式不匹配。<br> ERR_IMAGE_MALLOC_ABNORMAL:malloc内部缓冲区错误。<br> ERR_IMAGE_DECODE_ABNORMAL:init编解码器内部错误。<br>ERR_IMAGE_ENCODE_FAILED:编码器在编码过程中出现错误。 | 138 139**参考:** 140 141[OH_ImagePacker_PackToFile](#oh_imagepacker_packtofile) 142 143### OH_ImagePacker_PackToFile() 144 145``` 146int32_t OH_ImagePacker_PackToFile(ImagePacker_Native* native, napi_value source,ImagePacker_Opts* opts, int fd) 147``` 148 149**描述** 150 151通过一个给定的选项ImagePacker_Opts结构体,将输入JavaScript native层PixelMap对象或者ImageSource对象编码并输出到指定的文件中。 152 153**起始版本:** 11 154 155 156**参数:** 157 158| 参数项 | 描述 | 159| -- | -- | 160| [ImagePacker_Native](capi-image-imagepacker-native-.md)* native | 表明指向native层ImagePacker的指针。 | 161| napi_value source | 表明待编码JavaScript native层PixelMap对象或者ImageSource对象。 | 162| [ImagePacker_Opts](capi-image-imagepacker-opts-.md)* opts | 表明位图编码的选项。 | 163| int fd | 输出的指定文件描述符。 | 164 165**返回:** 166 167| 类型 | 说明 | 168| -- | -- | 169| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:执行成功。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> ERR_IMAGE_DATA_ABNORMAL:输出缓冲区异常。<br> ERR_IMAGE_MISMATCHED_FORMAT:格式不匹配。<br> ERR_IMAGE_MALLOC_ABNORMAL:malloc内部缓冲区错误。<br> ERR_IMAGE_DECODE_ABNORMAL:init编解码器内部错误。<br>ERR_IMAGE_ENCODE_FAILED:编码器在编码过程中出现错误。 | 170 171**参考:** 172 173[OH_ImagePacker_PackToData](#oh_imagepacker_packtodata) 174 175### OH_ImagePacker_Release() 176 177``` 178int32_t OH_ImagePacker_Release(ImagePacker_Native* native) 179``` 180 181**描述** 182 183释放native层编码器对象[ImagePacker_Native](capi-image-imagepacker-native-.md)。 184 185此API不用于释放JavaScript原生API ImagePacker对象,它用于释放native层对象ImagePacker_Native。 186 187通过调用[OH_ImagePacker_InitNative](#oh_imagepacker_initnative)解析。 188 189**起始版本:** 11 190 191 192**参数:** 193 194| 参数项 | 描述 | 195| -- | -- | 196| [ImagePacker_Native](capi-image-imagepacker-native-.md)* native | 表明native层ImagePacker_Native值的指针。 | 197 198**返回:** 199 200| 类型 | 说明 | 201| -- | -- | 202| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:执行成功。 | 203 204**参考:** 205 206[OH_ImagePacker_InitNative](#oh_imagepacker_initnative) 207 208 209