# OH_PackingOptions

```
typedef struct OH_PackingOptions OH_PackingOptions
```

#### 概述

OH\_PackingOptions是native层封装的图像编码选项结构体，不可直接操作，而是采用函数调用方式创建、释放结构体以及操作具体字段。

使用OH\_PackingOptions\_Create函数创建OH\_PackingOptions对象。

使用OH\_PackingOptions\_Release函数释放OH\_PackingOptions对象。

使用约束：OH\_PackingOptions用于配置ImageSource、PixelMap或Picture编码参数。

*   ImageSource编码需传入OH\_ImagePackerNative\_PackToDataFromImageSource或OH\_ImagePackerNative\_PackToFileFromImageSource使用。
*   PixelMap编码需传入OH\_ImagePackerNative\_PackToDataFromPixelmap或OH\_ImagePackerNative\_PackToFileFromPixelmap使用。
*   Picture编码需传入OH\_ImagePackerNative\_PackToDataFromPicture或OH\_ImagePackerNative\_PackToFileFromPicture使用。
*   PixelMap序列编码请使用OH\_PackingOptionsForSequence。

资源管理：释放OH\_ImagePackerNative对象不会自动释放OH\_PackingOptions对象。OH\_PackingOptions使用完成后，应调用OH\_PackingOptions\_Release释放，释放后不应继续传入图像编码接口或调用其字段获取和设置接口。

OH\_PackingOptions结构体内容和操作方式如下：

| 字段类型 | 字段名称 | 字段描述 | 字段获取函数 | 字段设置函数 |
| --- | --- | --- | --- | --- |
| Image_MimeType | mimeType | 目标编码格式的MIME类型。ImageSource或PixelMap编码支持image/jpeg、image/webp、image/png、image/heic或image/heif、image/sdr_astc_4x4、image/sdr_sut_superfast_4x4、image/hdr_astc_4x4；Picture编码支持image/jpeg、image/heic或image/heif。实际支持范围以OH_ImagePackerNative_GetSupportedFormats返回结果为准。 | OH_PackingOptions_GetMimeType、OH_PackingOptions_GetMimeTypeWithNull | OH_PackingOptions_SetMimeType |
| uint32_t | quality | 编码质量，实际编码效果取决于目标编码格式。 | OH_PackingOptions_GetQuality | OH_PackingOptions_SetQuality |
| bool | needsPackProperties | 是否需要编码图像属性，例如Exif。 | OH_PackingOptions_GetNeedsPackProperties | OH_PackingOptions_SetNeedsPackProperties |
| int32_t | desiredDynamicRange | 编码时期望的图片动态范围，取值见IMAGE_PACKER_DYNAMIC_RANGE。 | OH_PackingOptions_GetDesiredDynamicRange | OH_PackingOptions_SetDesiredDynamicRange |

*   通过OH\_PackingOptions\_SetMimeType设置MIME类型时，接口会拷贝传入的format->data，不会持有调用方传入的数据指针。
*   通过OH\_PackingOptions\_GetMimeType或OH\_PackingOptions\_GetMimeTypeWithNull获取MIME类型时，接口成功返回的format.data由接口分配，使用完成后调用方应使用free()释放。

**起始版本：** 12

**相关模块：** Image\_NativeModule

**所在头文件：** image\_packer\_native.h