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