1# image_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声明访问图像矩形、大小、格式和组件数据的函数。 12 13**引用文件:** <multimedia/image_framework/image_mdk.h> 14 15**库:** libimage_ndk.z.so 16 17**系统能力:** SystemCapability.Multimedia.Image.Core 18 19**起始版本:** 10 20 21**相关模块:** [Image](capi-image.md) 22 23## 汇总 24 25### 结构体 26 27| 名称 | typedef关键字 | 描述 | 28| -- | -- | -- | 29| [OhosImageRect](capi-image-ohosimagerect.md) | - | 定义图像矩形信息。 | 30| [ImageNative_](capi-image-imagenative-.md) | ImageNative | 为图像接口定义native层图像对象。 | 31| [OhosImageComponent](capi-image-ohosimagecomponent.md) | - | 定义图像组成信息。 | 32 33### 枚举 34 35| 名称 | 描述 | 36| -- | -- | 37| [图像格式](#图像格式) | 图像格式枚举值。 | 38| [图像颜色通道类型](#图像颜色通道类型) | 图像颜色通道类型枚举值。 | 39 40### 函数 41 42| 名称 | 描述 | 43| -- | -- | 44| [ImageNative* OH_Image_InitImageNative(napi_env env, napi_value source)](#oh_image_initimagenative) | 从输入的JavaScript Native API图像对象中解析native ImageNative对象。 | 45| [int32_t OH_Image_ClipRect(const ImageNative* native, struct OhosImageRect* rect)](#oh_image_cliprect) | 获取native ImageNative对象OhosImageRect信息。| 46| [int32_t OH_Image_Size(const ImageNative* native, struct OhosImageSize* size)](#oh_image_size) | 获取native ImageNative对象的OhosImageSize信息。| 47| [int32_t OH_Image_Format(const ImageNative* native, int32_t* format)](#oh_image_format) | 获取native ImageNative对象的图像格式。 | 48| [int32_t OH_Image_GetComponent(const ImageNative* native, int32_t componentType, struct OhosImageComponent* componentNative)](#oh_image_getcomponent) | 从native ImageNative对象中获取OhosImageComponent。 | 49| [int32_t OH_Image_Release(ImageNative* native)](#oh_image_release) | 释放ImageNative native对象。<br>这个方法无法释放JavaScript Native API Image对象,而是释放被[OH_Image_InitImageNative](capi-image-mdk-h.md#oh_image_initimagenative)解析的ImageNative native对象。 | 50 51## 枚举类型说明 52 53### 图像格式 54 55``` 56enum anonymous enum 57``` 58 59**描述** 60 61图像格式枚举值。 62 63**起始版本:** 10 64 65| 枚举项 | 描述 | 66| -- | -- | 67| OHOS_IMAGE_FORMAT_YCBCR_422_SP = 1000 | YCBCR422 semi-planar格式。 | 68| OHOS_IMAGE_FORMAT_JPEG = 2000 | JPEG编码格式。 | 69 70### 图像颜色通道类型 71 72``` 73enum anonymous enum 74``` 75 76**描述** 77 78图像颜色通道类型枚举值。 79 80**起始版本:** 10 81 82| 枚举项 | 描述 | 83| -- | -- | 84| OHOS_IMAGE_COMPONENT_FORMAT_YUV_Y = 1 | 亮度信息。 | 85| OHOS_IMAGE_COMPONENT_FORMAT_YUV_U = 2 | 色度信息。 | 86| OHOS_IMAGE_COMPONENT_FORMAT_YUV_V = 3 | 色差值信息。 | 87| OHOS_IMAGE_COMPONENT_FORMAT_JPEG = 4 | Jpeg格式。 | 88 89 90## 函数说明 91 92### OH_Image_InitImageNative() 93 94``` 95ImageNative* OH_Image_InitImageNative(napi_env env, napi_value source) 96``` 97 98**描述** 99 100从输入的JavaScript Native API图像对象中解析native ImageNative对象。 101 102**起始版本:** 10 103 104 105**参数:** 106 107| 参数项 | 描述 | 108| -- | -- | 109| napi_env env | 表示指向JNI环境的指针。 | 110| napi_value source | 表示JavaScript Native API图像对象。 | 111 112**返回:** 113 114| 类型 | 说明 | 115| -- | -- | 116| [ImageNative](capi-image-imagenative-.md)* | 如果操作成功返回ImageNative指针对象,如果操作失败返回空指针。 | 117 118**参考:** 119 120[OH_Image_Release](#oh_image_release) 121 122### OH_Image_ClipRect() 123 124``` 125int32_t OH_Image_ClipRect(const ImageNative* native, struct OhosImageRect* rect) 126``` 127 128**描述** 129 130获取native ImageNative对象OhosImageRect信息。 131 132**起始版本:** 10 133 134 135**参数:** 136 137| 参数项 | 描述 | 138| -- | -- | 139| const [ImageNative](capi-image-imagenative-.md)* native | 表示指向ImageNative native层对象的指针。 | 140| struct [OhosImageRect](capi-image-ohosimagerect.md)* rect | 表示作为转换结果的OhosImageRect对象指针。 | 141 142**返回:** 143 144| 类型 | 说明 | 145| -- | -- | 146| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br>IMAGE_RESULT_SURFACE_GET_PARAMETER_FAILED:从surface获取参数失败。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。 | 147 148### OH_Image_Size() 149 150``` 151int32_t OH_Image_Size(const ImageNative* native, struct OhosImageSize* size) 152``` 153 154**描述** 155 156获取native ImageNative对象的OhosImageSize信息。 157 158如果ImageNative对象所存储的是相机预览流数据,即YUV图像数据,那么获取到的OhosImageSize中的宽高分别对应YUV图像的宽高;如果ImageNative对象所存储的是相机拍照流数据,即JPEG图像,由于已经是编码后的数据,OhosImageSize中的宽等于JPEG数据大小,高等于1。 159 160ImageNative对象所存储的数据是预览流还是拍照流,取决于应用将receiver中的surfaceId传给相机的previewOutput还是captureOutput。相机预览与拍照最佳实践请参考[预览流二次处理(C/C++)](../../media/camera/native-camera-preview-imageReceiver.md)与[拍照(C/C++)](../../media/camera/native-camera-shooting.md)。 161 162**起始版本:** 10 163 164 165**参数:** 166 167| 参数项 | 描述 | 168| -- | -- | 169| const [ImageNative](capi-image-imagenative-.md)* native | 表示ImageNative native对象的指针。 | 170| struct [OhosImageSize](capi-image-ohosimagesize.md)* size | 表示作为转换结果的OhosImageSize对象的指针。 | 171 172**返回:** 173 174| 类型 | 说明 | 175| -- | -- | 176| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br>IMAGE_RESULT_SURFACE_GET_PARAMETER_FAILED:从surface获取参数失败。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。 | 177 178### OH_Image_Format() 179 180``` 181int32_t OH_Image_Format(const ImageNative* native, int32_t* format) 182``` 183 184**描述** 185 186获取native ImageNative对象的图像格式。 187 188**起始版本:** 10 189 190 191**参数:** 192 193| 参数项 | 描述 | 194| -- | -- | 195| const [ImageNative](capi-image-imagenative-.md)* native | 表示ImageNative native对象的指针。 | 196| int32_t* format | 表示作为转换结果的图像格式对象的指针。 | 197 198**返回:** 199 200| 类型 | 说明 | 201| -- | -- | 202| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br>IMAGE_RESULT_SURFACE_GET_PARAMETER_FAILED:从surface获取参数失败。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。 | 203 204### OH_Image_GetComponent() 205 206``` 207int32_t OH_Image_GetComponent(const ImageNative* native, int32_t componentType, struct OhosImageComponent* componentNative) 208``` 209 210**描述** 211 212从native ImageNative对象中获取OhosImageComponent。 213 214**起始版本:** 10 215 216 217**参数:** 218 219| 参数项 | 描述 | 220| -- | -- | 221| const [ImageNative](capi-image-imagenative-.md)* native | 表示ImageNative native对象的指针。 | 222| int32_t componentType | 表示所需组件的组件类型。 | 223| struct [OhosImageComponent](capi-image-ohosimagecomponent.md)* componentNative | 表示转换结果的OhosImageComponent对象的指针。 | 224 225**返回:** 226 227| 类型 | 说明 | 228| -- | -- | 229| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br>IMAGE_RESULT_SURFACE_GET_PARAMETER_FAILED:从surface获取参数失败。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。 | 230 231### OH_Image_Release() 232 233``` 234int32_t OH_Image_Release(ImageNative* native) 235``` 236 237**描述** 238 239释放ImageNative native对象。 240 241这个方法无法释放JavaScript Native API Image对象,而是释放被[OH_Image_InitImageNative](capi-image-mdk-h.md#oh_image_initimagenative)解析的ImageNative native对象。 242 243**起始版本:** 10 244 245 246**参数:** 247 248| 参数项 | 描述 | 249| -- | -- | 250| [ImageNative](capi-image-imagenative-.md)* native | 表示ImageNative native对象的指针。 | 251 252**返回:** 253 254| 类型 | 说明 | 255| -- | -- | 256| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。 | 257 258**参考:** 259 260[OH_Image_InitImageNative](#oh_image_initimagenative) 261 262 263