• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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