1# image_native.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/image_native.h> 14 15**库:** libohimage.so 16 17**系统能力:** SystemCapability.Multimedia.Image.Core 18 19**起始版本:** 12 20 21**相关模块:** [Image_NativeModule](capi-image-nativemodule.md) 22 23## 汇总 24 25### 结构体 26 27| 名称 | typedef关键字 | 描述 | 28| -- | -- | -- | 29| [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md) | OH_ImageNative | 为图像接口定义native层图像对象的别名。 | 30 31### 函数 32 33| 名称 | 描述 | 34| -- | -- | 35| [Image_ErrorCode OH_ImageNative_GetImageSize(OH_ImageNative *image, Image_Size *size)](#oh_imagenative_getimagesize) | 获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象的[Image_Size](capi-image-nativemodule-image-size.md)信息。 | 36| [Image_ErrorCode OH_ImageNative_GetComponentTypes(OH_ImageNative *image, uint32_t **types, size_t *typeSize)](#oh_imagenative_getcomponenttypes) | 获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象的组件列表信息。 | 37| [Image_ErrorCode OH_ImageNative_GetByteBuffer(OH_ImageNative *image, uint32_t componentType, OH_NativeBuffer **nativeBuffer)](#oh_imagenative_getbytebuffer) | 获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象中某个组件类型所对应的缓冲区。 | 38| [Image_ErrorCode OH_ImageNative_GetBufferSize(OH_ImageNative *image, uint32_t componentType, size_t *size)](#oh_imagenative_getbuffersize) | 获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象中某个组件类型所对应的缓冲区的大小。 | 39| [Image_ErrorCode OH_ImageNative_GetRowStride(OH_ImageNative *image, uint32_t componentType, int32_t *rowStride)](#oh_imagenative_getrowstride) | 获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象中某个组件类型所对应的像素行宽。 | 40| [Image_ErrorCode OH_ImageNative_GetPixelStride(OH_ImageNative *image, uint32_t componentType, int32_t *pixelStride)](#oh_imagenative_getpixelstride) | 获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象中某个组件类型所对应的像素大小。 | 41| [Image_ErrorCode OH_ImageNative_GetTimestamp(OH_ImageNative *image, int64_t *timestamp)](#oh_imagenative_gettimestamp) | 获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象中的时间戳信息。 | 42| [Image_ErrorCode OH_ImageNative_Release(OH_ImageNative *image)](#oh_imagenative_release) | 释放Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象。 | 43 44## 函数说明 45 46### OH_ImageNative_GetImageSize() 47 48``` 49Image_ErrorCode OH_ImageNative_GetImageSize(OH_ImageNative *image, Image_Size *size) 50``` 51 52**描述** 53 54获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象的[Image_Size](capi-image-nativemodule-image-size.md)信息。 55 56如果OH_ImageNative对象所存储的是相机预览流数据,即YUV图像数据,那么获取到的Image_Size中的宽高分别对应YUV图像的宽高;如果OH_ImageNative对象所存储的是相机拍照流数据,即JPEG图像,由于已经是编码后的数据,Image_Size中的宽等于JPEG数据大小,高等于1。 57 58OH_ImageNative对象所存储的数据是预览流还是拍照流,取决于应用将receiver中的surfaceId传给相机的previewOutput还是captureOutput。相机预览与拍照最佳实践请参考[预览流二次处理(C/C++)](../../media/camera/native-camera-preview-imageReceiver.md)与[拍照(C/C++)](../../media/camera/native-camera-shooting.md)。 59 60**起始版本:** 12 61 62 63**参数:** 64 65| 参数项 | 描述 | 66| -- | -- | 67| [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md) *image | 表示OH_ImageNative native对象的指针。 | 68| [Image_Size](capi-image-nativemodule-image-size.md) *size | 表示作为获取结果的Image_Size对象的指针。 | 69 70**返回:** 71 72| 类型 | 说明 | 73| -- | -- | 74| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>IMAGE_BAD_PARAMETER:参数错误。<br>IMAGE_UNKNOWN_ERROR:未知原因错误。 | 75 76### OH_ImageNative_GetComponentTypes() 77 78``` 79Image_ErrorCode OH_ImageNative_GetComponentTypes(OH_ImageNative *image,uint32_t **types, size_t *typeSize) 80``` 81 82**描述** 83 84获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象的组件列表信息。 85 86**起始版本:** 12 87 88 89**参数:** 90 91| 参数项 | 描述 | 92| -- | -- | 93| [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md) *image | 表示OH_ImageNative native对象的指针。 | 94| uint32_t **types | 表示作为获取结果的组件列表对象的指针。 | 95| size_t *typeSize | 表示作为获取结果的组件列表中,元素个数的指针。 | 96 97**返回:** 98 99| 类型 | 说明 | 100| -- | -- | 101| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>IMAGE_BAD_PARAMETER:参数错误。 | 102 103### OH_ImageNative_GetByteBuffer() 104 105``` 106Image_ErrorCode OH_ImageNative_GetByteBuffer(OH_ImageNative *image,uint32_t componentType, OH_NativeBuffer **nativeBuffer) 107``` 108 109**描述** 110 111获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象中某个组件类型所对应的缓冲区。 112 113**起始版本:** 12 114 115 116**参数:** 117 118| 参数项 | 描述 | 119| -- | -- | 120| [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md) *image | 表示OH_ImageNative native对象的指针。 | 121| uint32_t componentType | 表示组件的类型。 | 122| [OH_NativeBuffer](../apis-arkgraphics2d/capi-oh-nativebuffer-oh-nativebuffer.md) **nativeBuffer | 表示作为获取结果的OH_NativeBuffer缓冲区对象的指针。 | 123 124**返回:** 125 126| 类型 | 说明 | 127| -- | -- | 128| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>IMAGE_BAD_PARAMETER:参数错误。 | 129 130### OH_ImageNative_GetBufferSize() 131 132``` 133Image_ErrorCode OH_ImageNative_GetBufferSize(OH_ImageNative *image,uint32_t componentType, size_t *size) 134``` 135 136**描述** 137 138获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象中某个组件类型所对应的缓冲区的大小。 139 140**起始版本:** 12 141 142 143**参数:** 144 145| 参数项 | 描述 | 146| -- | -- | 147| [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md) *image | 表示OH_ImageNative native对象的指针。 | 148| uint32_t componentType | 表示组件的类型。 | 149| size_t *size | 表示作为获取结果的缓冲区大小的指针。 | 150 151**返回:** 152 153| 类型 | 说明 | 154| -- | -- | 155| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>IMAGE_BAD_PARAMETER:参数错误。 | 156 157### OH_ImageNative_GetRowStride() 158 159``` 160Image_ErrorCode OH_ImageNative_GetRowStride(OH_ImageNative *image,uint32_t componentType, int32_t *rowStride) 161``` 162 163**描述** 164 165获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象中某个组件类型所对应的像素行宽。 166 167读取相机预览流数据时,需要考虑按stride进行读取,具体用法参考[预览流二次处理(C/C++)](../../media/camera/native-camera-preview-imageReceiver.md)。 168 169**起始版本:** 12 170 171 172**参数:** 173 174| 参数项 | 描述 | 175| -- | -- | 176| [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md) *image | 表示OH_ImageNative native对象的指针。 | 177| uint32_t componentType | 表示组件的类型。 | 178| int32_t *rowStride | 表示作为获取结果的像素行宽的指针。 | 179 180**返回:** 181 182| 类型 | 说明 | 183| -- | -- | 184| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>IMAGE_BAD_PARAMETER:参数错误。 | 185 186### OH_ImageNative_GetPixelStride() 187 188``` 189Image_ErrorCode OH_ImageNative_GetPixelStride(OH_ImageNative *image,uint32_t componentType, int32_t *pixelStride) 190``` 191 192**描述** 193 194获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象中某个组件类型所对应的像素大小。 195 196**起始版本:** 12 197 198 199**参数:** 200 201| 参数项 | 描述 | 202| -- | -- | 203| [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md) *image | 表示OH_ImageNative native对象的指针。 | 204| uint32_t componentType | 表示组件的类型。 | 205| int32_t *pixelStride | 表示作为获取结果的像素大小的指针。 | 206 207**返回:** 208 209| 类型 | 说明 | 210| -- | -- | 211| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>IMAGE_BAD_PARAMETER:参数错误。 | 212 213### OH_ImageNative_GetTimestamp() 214 215``` 216Image_ErrorCode OH_ImageNative_GetTimestamp(OH_ImageNative *image, int64_t *timestamp) 217``` 218 219**描述** 220 221获取Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象中的时间戳信息。时间戳以纳秒为单位,通常是单调递增的。 222 223时间戳的具体含义和基准取决于图像的生产者,在相机预览/拍照场景,生产者就是相机。来自不同生产者的图像的时间戳可能有不同的含义和基准,因此可能无法进行比较。 224 225如果要获取某张照片的生成时间,可以通过[OH_ImageSourceNative_GetImageProperty](capi-image-source-native-h.md#oh_imagesourcenative_getimageproperty)接口读取相关的EXIF信息。 226 227**起始版本:** 12 228 229 230**参数:** 231 232| 参数项 | 描述 | 233| -- | -- | 234| [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md) *image | 表示OH_ImageNative native对象的指针。 | 235| int64_t *timestamp | 表示作为获取结果的时间戳信息的指针。 | 236 237**返回:** 238 239| 类型 | 说明 | 240| -- | -- | 241| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>IMAGE_BAD_PARAMETER:参数错误。 | 242 243### OH_ImageNative_Release() 244 245``` 246Image_ErrorCode OH_ImageNative_Release(OH_ImageNative *image) 247``` 248 249**描述** 250 251释放Native [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md)对象。 252 253**起始版本:** 12 254 255 256**参数:** 257 258| 参数项 | 描述 | 259| -- | -- | 260| [OH_ImageNative](capi-image-nativemodule-oh-imagenative.md) *image | 表示OH_ImageNative native对象的指针。 | 261 262**返回:** 263 264| 类型 | 说明 | 265| -- | -- | 266| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>IMAGE_BAD_PARAMETER:参数错误。 | 267 268 269