• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# image_source_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图片解码API。
12
13**引用文件:** <multimedia/image_framework/image/image_source_native.h>
14
15**库:** libimage_source.so
16
17**系统能力:** SystemCapability.Multimedia.Image.ImageSource
18
19**起始版本:** 12
20
21**相关模块:** [Image_NativeModule](capi-image-nativemodule.md)
22
23## 汇总
24
25### 结构体
26
27| 名称 | typedef关键字 | 描述 |
28| -- | -- | -- |
29| [OH_ImageSourceNative](capi-image-nativemodule-oh-imagesourcenative.md) | OH_ImageSourceNative | OH_ImageSourceNative是native层封装的ImageSource结构体,用于创建图片数据。 |
30| [OH_ImageSource_Info](capi-image-nativemodule-imagesource-info.md) | OH_ImageSource_Info | OH_ImageSource_Info是native层封装的ImageSource信息结构体,OH_ImageSource_Info结构体不可直接操作,而是采用函数调用方式创建、释放结构体以及操作具体字段。 |
31| [OH_DecodingOptionsForPicture](capi-image-nativemodule-oh-decodingoptionsforpicture.md) | OH_DecodingOptionsForPicture | Picture解码参数结构体。通过[OH_DecodingOptionsForPicture_Create](#oh_decodingoptionsforpicture_create)获取。 |
32| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) | OH_DecodingOptions | OH_DecodingOptions是native层封装的解码选项参数结构体,用于设置解码选项参数,在创建Pixelmap时作为入参传入,详细信息见[OH_ImageSourceNative_CreatePixelmap](#oh_imagesourcenative_createpixelmap)。 |
33
34### 枚举
35
36| 名称 | typedef关键字 | 描述 |
37| -- | -- | -- |
38| [IMAGE_DYNAMIC_RANGE](#image_dynamic_range) | IMAGE_DYNAMIC_RANGE | 解码指定期望动态范围。 |
39| [IMAGE_ALLOCATOR_TYPE](#image_allocator_type) | IMAGE_ALLOCATOR_TYPE | 用于分配PixelMap内存的分配器类型。 |
40| [Image_CropAndScaleStrategy](#image_cropandscalestrategy) | Image_CropAndScaleStrategy | 在同时指定desiredSize和desiredRegion时执行裁剪和缩放的策略。 |
41
42### 函数
43
44| 名称 | 描述 |
45| -- | -- |
46| [Image_ErrorCode OH_ImageSourceInfo_Create(OH_ImageSource_Info **info)](#oh_imagesourceinfo_create) | 创建OH_ImageSource_Info指针。 |
47| [Image_ErrorCode OH_ImageSourceInfo_GetWidth(OH_ImageSource_Info *info, uint32_t *width)](#oh_imagesourceinfo_getwidth) | 获取图片的宽。 |
48| [Image_ErrorCode OH_ImageSourceInfo_GetHeight(OH_ImageSource_Info *info, uint32_t *height)](#oh_imagesourceinfo_getheight) | 获取图片的高。 |
49| [Image_ErrorCode OH_ImageSourceInfo_GetDynamicRange(OH_ImageSource_Info *info, bool *isHdr)](#oh_imagesourceinfo_getdynamicrange) | 获取图片是否为高动态范围的信息。 |
50| [Image_ErrorCode OH_ImageSourceInfo_GetMimetype(OH_ImageSource_Info *info, Image_MimeType *mimetype)](#oh_imagesourceinfo_getmimetype) | 获取图片源的MIME类型。 |
51| [Image_ErrorCode OH_ImageSourceInfo_Release(OH_ImageSource_Info *info)](#oh_imagesourceinfo_release) | 释放OH_ImageSource_Info指针。 |
52| [Image_ErrorCode OH_DecodingOptions_Create(OH_DecodingOptions **options)](#oh_decodingoptions_create) | 创建OH_DecodingOptions指针。 |
53| [Image_ErrorCode OH_DecodingOptions_GetPixelFormat(OH_DecodingOptions *options, int32_t *pixelFormat)](#oh_decodingoptions_getpixelformat) | 获取pixel格式。 |
54| [Image_ErrorCode OH_DecodingOptions_SetPixelFormat(OH_DecodingOptions *options, int32_t pixelFormat)](#oh_decodingoptions_setpixelformat) | 设置pixel格式。 |
55| [Image_ErrorCode OH_DecodingOptions_GetIndex(OH_DecodingOptions *options, uint32_t *index)](#oh_decodingoptions_getindex) | 获取解码图片序号。 |
56| [Image_ErrorCode OH_DecodingOptions_SetIndex(OH_DecodingOptions *options, uint32_t index)](#oh_decodingoptions_setindex) | 设置解码图片序号。 |
57| [Image_ErrorCode OH_DecodingOptions_GetRotate(OH_DecodingOptions *options, float *rotate)](#oh_decodingoptions_getrotate) | 获取旋转角度。 |
58| [Image_ErrorCode OH_DecodingOptions_SetRotate(OH_DecodingOptions *options, float rotate)](#oh_decodingoptions_setrotate) | 设置旋转角度。 |
59| [Image_ErrorCode OH_DecodingOptions_GetDesiredSize(OH_DecodingOptions *options, Image_Size *desiredSize)](#oh_decodingoptions_getdesiredsize) | 获取期望输出大小。 |
60| [Image_ErrorCode OH_DecodingOptions_SetDesiredSize(OH_DecodingOptions *options, Image_Size *desiredSize)](#oh_decodingoptions_setdesiredsize) | 设置期望输出大小。 |
61| [Image_ErrorCode OH_DecodingOptions_GetDesiredRegion(OH_DecodingOptions *options, Image_Region *desiredRegion)](#oh_decodingoptions_getdesiredregion) | 获取解码区域。<br> 由于对应SetDesiredRegion接口无法满足区域解码诉求,从API 19开始,推荐配套使用[OH_DecodingOptions_GetCropRegion](#oh_decodingoptions_getcropregion)接口替代。 |
62| [Image_ErrorCode OH_DecodingOptions_SetDesiredRegion(OH_DecodingOptions *options, Image_Region *desiredRegion)](#oh_decodingoptions_setdesiredregion) | 设置解码区域。<br> 实际解码结果会按照原图解码,无区域解码效果。从API 19开始,推荐使用接口[OH_DecodingOptions_SetCropRegion](#oh_decodingoptions_setcropregion)替代。 |
63| [Image_ErrorCode OH_DecodingOptions_GetDesiredDynamicRange(OH_DecodingOptions *options, int32_t *desiredDynamicRange)](#oh_decodingoptions_getdesireddynamicrange) | 获取解码时设置的期望动态范围。 |
64| [Image_ErrorCode OH_DecodingOptions_SetDesiredDynamicRange(OH_DecodingOptions *options, int32_t desiredDynamicRange)](#oh_decodingoptions_setdesireddynamicrange) | 设置解码时的期望动态范围。 |
65| [Image_ErrorCode OH_DecodingOptions_GetDesiredColorSpace(OH_DecodingOptions *options, int32_t *colorSpace)](#oh_decodingoptions_getdesiredcolorspace) | 获取解码参数中设置的色彩空间。 |
66| [Image_ErrorCode OH_DecodingOptions_SetDesiredColorSpace(OH_DecodingOptions *options, int32_t colorSpace)](#oh_decodingoptions_setdesiredcolorspace) | 设置解码期望得到的色彩空间。 |
67| [Image_ErrorCode OH_DecodingOptions_SetCropAndScaleStrategy(OH_DecodingOptions *options, int32_t cropAndScaleStrategy)](#oh_decodingoptions_setcropandscalestrategy) | 设置解码选项的裁剪和缩放策略。 |
68| [Image_ErrorCode OH_DecodingOptions_GetCropAndScaleStrategy(OH_DecodingOptions *options, int32_t *cropAndScaleStrategy)](#oh_decodingoptions_getcropandscalestrategy) | 获取解码选项的裁剪和缩放策略。 |
69| [Image_ErrorCode OH_DecodingOptions_GetCropRegion(OH_DecodingOptions *options, Image_Region *cropRegion)](#oh_decodingoptions_getcropregion) | 获取解码参数中的裁剪区域。 |
70| [Image_ErrorCode OH_DecodingOptions_SetCropRegion(OH_DecodingOptions *options, Image_Region *cropRegion)](#oh_decodingoptions_setcropregion) | 设置解码参数中的裁剪区域。 |
71| [Image_ErrorCode OH_DecodingOptions_Release(OH_DecodingOptions *options)](#oh_decodingoptions_release) | 释放OH_DecodingOptions指针。 |
72| [Image_ErrorCode OH_ImageSourceNative_CreateFromUri(char *uri, size_t uriSize, OH_ImageSourceNative **res)](#oh_imagesourcenative_createfromuri) | 通过uri创建OH_ImageSourceNative指针。 |
73| [Image_ErrorCode OH_ImageSourceNative_CreateFromFd(int32_t fd, OH_ImageSourceNative **res)](#oh_imagesourcenative_createfromfd) | 通过fd创建OH_ImageSourceNative指针。 |
74| [Image_ErrorCode OH_ImageSourceNative_CreateFromData(uint8_t *data, size_t dataSize, OH_ImageSourceNative **res)](#oh_imagesourcenative_createfromdata) | 通过缓冲区数据创建OH_ImageSourceNative指针。<br> data数据应该是未解码的数据,不要传入类似于RBGA,YUV的像素buffer数据,如果想通过像素buffer数据创建pixelMap,可以调用[OH_PixelmapNative_CreatePixelmap](capi-pixelmap-native-h.md#oh_pixelmapnative_createpixelmap)这一类接口。 |
75| [Image_ErrorCode OH_ImageSourceNative_CreateFromDataWithUserBuffer(uint8_t *data, size_t datalength, OH_ImageSourceNative **imageSource)](#oh_imagesourcenative_createfromdatawithuserbuffer) | 由数据缓存创建图片源。传入的数据缓存将在图片源对象中直接访问,在图片源对象的声明周期内,数据缓存需要保持可用。 |
76| [Image_ErrorCode OH_ImageSourceNative_CreateFromRawFile(RawFileDescriptor *rawFile, OH_ImageSourceNative **res)](#oh_imagesourcenative_createfromrawfile) | 通过图像资源文件的RawFileDescriptor创建OH_ImageSourceNative指针。 |
77| [Image_ErrorCode OH_ImageSourceNative_CreatePixelmap(OH_ImageSourceNative *source, OH_DecodingOptions *options, OH_PixelmapNative **pixelmap)](#oh_imagesourcenative_createpixelmap) | 通过图片解码参数创建OH_PixelmapNative指针。 |
78| [Image_ErrorCode OH_ImageSourceNative_CreatePixelmapUsingAllocator(OH_ImageSourceNative *source, OH_DecodingOptions *options, IMAGE_ALLOCATOR_TYPE allocator, OH_PixelmapNative **pixelmap)](#oh_imagesourcenative_createpixelmapusingallocator) | 根据解码参数创建一个PixelMap,PixelMap使用的内存类型可以通过allocatorType来指定。<br> 默认情况下,系统会根据图像类型、图像大小、平台能力等选择内存类型。在处理通过此接口返回的PixelMap时,请始终考虑步幅(stride)的影响。 |
79| [Image_ErrorCode OH_ImageSourceNative_CreatePixelmapList(OH_ImageSourceNative *source, OH_DecodingOptions *options, OH_PixelmapNative *resVecPixMap[], size_t size)](#oh_imagesourcenative_createpixelmaplist) | 通过图片解码参数创建OH_PixelmapNative数组。<br> 注意,此接口会一次性解码全部帧,当帧数过多或单帧图像过大时,会占用较大内存,造成系统内存紧张,此种情况推荐使用Image组件显示动图,Image组件采用逐帧解码,占用内存比此接口少。 |
80| [Image_ErrorCode OH_ImageSourceNative_CreatePicture(OH_ImageSourceNative *source, OH_DecodingOptionsForPicture *options, OH_PictureNative **picture)](#oh_imagesourcenative_createpicture) | 通过图片解码创建OH_PictureNative指针。 |
81| [Image_ErrorCode OH_ImageSourceNative_CreatePictureAtIndex(OH_ImageSourceNative *source, uint32_t index, OH_PictureNative **picture)](#oh_imagesourcenative_createpictureatindex) | 通过指定序号的图片解码创建OH_PictureNative指针。 |
82| [Image_ErrorCode OH_ImageSourceNative_GetDelayTimeList(OH_ImageSourceNative *source, int32_t *delayTimeList, size_t size)](#oh_imagesourcenative_getdelaytimelist) | 获取图像延迟时间数组。 |
83| [Image_ErrorCode OH_ImageSourceNative_GetImageInfo(OH_ImageSourceNative *source, int32_t index, OH_ImageSource_Info *info)](#oh_imagesourcenative_getimageinfo) | 获取指定序号的图片信息。 |
84| [Image_ErrorCode OH_ImageSourceNative_GetImageProperty(OH_ImageSourceNative *source, Image_String *key, Image_String *value)](#oh_imagesourcenative_getimageproperty) | 获取图片指定属性键的值。 |
85| [Image_ErrorCode OH_ImageSourceNative_GetImagePropertyWithNull(OH_ImageSourceNative *source, Image_String *key, Image_String *value)](#oh_imagesourcenative_getimagepropertywithnull) | 获取图像属性值。输出的value.data以字符串结束符结尾。 |
86| [Image_ErrorCode OH_ImageSourceNative_ModifyImageProperty(OH_ImageSourceNative *source, Image_String *key, Image_String *value)](#oh_imagesourcenative_modifyimageproperty) | 通过指定的键修改图片属性的值。 |
87| [Image_ErrorCode OH_ImageSourceNative_GetFrameCount(OH_ImageSourceNative *source, uint32_t *frameCount)](#oh_imagesourcenative_getframecount) | 获取图像帧数。 |
88| [Image_ErrorCode OH_ImageSourceNative_GetSupportedFormats(Image_MimeType **supportedFormats, size_t *length)](#oh_imagesourcenative_getsupportedformats) | 获取支持解码的图片格式。 |
89| [Image_ErrorCode OH_ImageSourceNative_Release(OH_ImageSourceNative *source)](#oh_imagesourcenative_release) | 释放OH_ImageSourceNative指针。 |
90| [Image_ErrorCode OH_DecodingOptionsForPicture_Create(OH_DecodingOptionsForPicture **options)](#oh_decodingoptionsforpicture_create) | 创建OH_DecodingOptionsForPicture指针。 |
91| [Image_ErrorCode OH_DecodingOptionsForPicture_GetDesiredAuxiliaryPictures(OH_DecodingOptionsForPicture *options, Image_AuxiliaryPictureType **desiredAuxiliaryPictures, size_t *length)](#oh_decodingoptionsforpicture_getdesiredauxiliarypictures) | 获取解码时设置的期望辅助图(期望解码出的picture包含的辅助图)。 |
92| [Image_ErrorCode OH_DecodingOptionsForPicture_SetDesiredAuxiliaryPictures(OH_DecodingOptionsForPicture *options, Image_AuxiliaryPictureType *desiredAuxiliaryPictures, size_t length)](#oh_decodingoptionsforpicture_setdesiredauxiliarypictures) | 设置解码选项中的期望辅助图。 |
93| [Image_ErrorCode OH_DecodingOptionsForPicture_Release(OH_DecodingOptionsForPicture *options)](#oh_decodingoptionsforpicture_release) | 释放OH_DecodingOptionsForPicture指针。 |
94
95## 枚举类型说明
96
97### IMAGE_DYNAMIC_RANGE
98
99```
100enum IMAGE_DYNAMIC_RANGE
101```
102
103**描述**
104
105解码指定期望动态范围。
106
107**起始版本:** 12
108
109| 枚举项 | 描述 |
110| -- | -- |
111| IMAGE_DYNAMIC_RANGE_AUTO = 0 | 根据图片自适应处理。 |
112| IMAGE_DYNAMIC_RANGE_SDR = 1 | 标准动态范围。 |
113| IMAGE_DYNAMIC_RANGE_HDR = 2 | 高动态范围。 |
114
115### IMAGE_ALLOCATOR_TYPE
116
117```
118enum IMAGE_ALLOCATOR_TYPE
119```
120
121**描述**
122
123用于分配PixelMap内存的分配器类型。
124
125**起始版本:** 15
126
127| 枚举项 | 描述 |
128| -- | -- |
129| IMAGE_ALLOCATOR_TYPE_AUTO = 0 | 由系统决定使用DMA内存或共享内存来创建PixelMap。 |
130| IMAGE_ALLOCATOR_TYPE_DMA = 1 | 使用DMA内存来创建PixelMap。 |
131| IMAGE_ALLOCATOR_TYPE_SHARE_MEMORY = 2 | 使用共享内存来创建PixelMap。 |
132
133### Image_CropAndScaleStrategy
134
135```
136enum Image_CropAndScaleStrategy
137```
138
139**描述**
140
141在同时指定desiredSize和desiredRegion时执行裁剪和缩放的策略。<br> 如果在配置解码选项[OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md)时,未填入参数Image_CropAndScaleStrategy,并且同时设置了desiredRegion和desiredSize,由于系统对于不同图片格式采用的解码算法不同,最终解码效果将略有差异。<br> 例如原始图片大小200x200,传入desiredSize:{width: 150, height: 150},desiredRegion:{x: 0, y: 0, width: 100, height: 100},即预期解码原图左上角1/4区域,最终将pixelMap大小缩放至150x150返回。<br> 对于jpeg、webp图片(部分dng图片解码时会优先解码图片中的jpeg预览图,在此场景下也会被视为jpeg图片格式)会先进行下采样,例如按照7/8下采样,再基于175x175的图片大小进行区域裁剪,因此最终的区域内容稍大于原图的左上角1/4区域。<br> 对于svg图片,由于是矢量图,可以任意缩放不损失清晰度,在解码时会根据desiredSize与原图Size的比例选择缩放比例,在基于缩放后的图片大小进行区域裁剪,因此最终返回的解码区域会有所差异。<br> 针对该场景,建议在解码选项同时设置了desiredRegion与desiredSize时,参数Image_CropAndScaleStrategy应传入CROP_FIRST参数保证效果一致。
142
143**起始版本:** 18
144
145| 枚举项 | 描述 |
146| -- | -- |
147| IMAGE_CROP_AND_SCALE_STRATEGY_SCALE_FIRST = 1 | 先裁剪,后缩放。 |
148| IMAGE_CROP_AND_SCALE_STRATEGY_CROP_FIRST = 2 | 先缩放,后裁剪。 |
149
150
151## 函数说明
152
153### OH_ImageSourceInfo_Create()
154
155```
156Image_ErrorCode OH_ImageSourceInfo_Create(OH_ImageSource_Info **info)
157```
158
159**描述**
160
161创建OH_ImageSource_Info指针。
162
163**起始版本:** 12
164
165
166**参数:**
167
168| 参数项 | 描述 |
169| -- | -- |
170| [OH_ImageSource_Info](capi-image-nativemodule-imagesource-info.md) **info | 被操作的OH_ImageSource_Info指针。 |
171
172**返回:**
173
174| 类型 | 说明 |
175| -- | -- |
176| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>         IMAGE_BAD_PARAMETER:参数错误。 |
177
178### OH_ImageSourceInfo_GetWidth()
179
180```
181Image_ErrorCode OH_ImageSourceInfo_GetWidth(OH_ImageSource_Info *info, uint32_t *width)
182```
183
184**描述**
185
186获取图片的宽。
187
188**起始版本:** 12
189
190
191**参数:**
192
193| 参数项 | 描述 |
194| -- | -- |
195| [OH_ImageSource_Info](capi-image-nativemodule-imagesource-info.md) *info | 被操作的OH_ImageSource_Info指针。 |
196| uint32_t *width | 图片的宽,单位:像素。 |
197
198**返回:**
199
200| 类型 | 说明 |
201| -- | -- |
202| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
203
204### OH_ImageSourceInfo_GetHeight()
205
206```
207Image_ErrorCode OH_ImageSourceInfo_GetHeight(OH_ImageSource_Info *info, uint32_t *height)
208```
209
210**描述**
211
212获取图片的高。
213
214**起始版本:** 12
215
216
217**参数:**
218
219| 参数项 | 描述 |
220| -- | -- |
221| [OH_ImageSource_Info](capi-image-nativemodule-imagesource-info.md) *info | 被操作的OH_ImageSource_Info指针。 |
222| uint32_t *height | 图片的高,单位:像素高 |
223
224**返回:**
225
226| 类型 | 说明 |
227| -- | -- |
228| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>         IMAGE_BAD_PARAMETER:参数错误。 |
229
230### OH_ImageSourceInfo_GetDynamicRange()
231
232```
233Image_ErrorCode OH_ImageSourceInfo_GetDynamicRange(OH_ImageSource_Info *info, bool *isHdr)
234```
235
236**描述**
237
238获取图片是否为高动态范围的信息。
239
240**起始版本:** 12
241
242
243**参数:**
244
245| 参数项 | 描述 |
246| -- | -- |
247| [OH_ImageSource_Info](capi-image-nativemodule-imagesource-info.md) *info | 被操作的OH_ImageSource_Info指针。 |
248| bool *isHdr | 是否为hdr的布尔值。 |
249
250**返回:**
251
252| 类型 | 说明 |
253| -- | -- |
254| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数校验错误。 |
255
256### OH_ImageSourceInfo_GetMimetype()
257
258```
259Image_ErrorCode OH_ImageSourceInfo_GetMimetype(OH_ImageSource_Info *info, Image_MimeType *mimetype)
260```
261
262**描述**
263
264获取图片源的MIME类型。
265
266**起始版本:** 20
267
268
269**参数:**
270
271| 参数项 | 描述 |
272| -- | -- |
273| [OH_ImageSource_Info](capi-image-nativemodule-imagesource-info.md) *info | OH_ImageSource_Info指针。 |
274| [Image_MimeType](capi-image-nativemodule-image-string.md) *mimetype | 图片源的MIME类型。 |
275
276**返回:**
277
278| 类型 | 说明 |
279| -- | -- |
280| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_SOURCE_INVALID_PARAMETER:参数错误,INFO或者MIME类型为空。 |
281
282### OH_ImageSourceInfo_Release()
283
284```
285Image_ErrorCode OH_ImageSourceInfo_Release(OH_ImageSource_Info *info)
286```
287
288**描述**
289
290释放OH_ImageSource_Info指针。
291
292**起始版本:** 12
293
294
295**参数:**
296
297| 参数项 | 描述 |
298| -- | -- |
299| [OH_ImageSource_Info](capi-image-nativemodule-imagesource-info.md) *info | 被操作的OH_ImageSource_Info指针。 |
300
301**返回:**
302
303| 类型 | 说明 |
304| -- | -- |
305| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
306
307### OH_DecodingOptions_Create()
308
309```
310Image_ErrorCode OH_DecodingOptions_Create(OH_DecodingOptions **options)
311```
312
313**描述**
314
315创建OH_DecodingOptions指针。
316
317**起始版本:** 12
318
319
320**参数:**
321
322| 参数项 | 描述 |
323| -- | -- |
324| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) **options | 被操作的OH_DecodingOptions指针。 |
325
326**返回:**
327
328| 类型 | 说明 |
329| -- | -- |
330| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
331
332### OH_DecodingOptions_GetPixelFormat()
333
334```
335Image_ErrorCode OH_DecodingOptions_GetPixelFormat(OH_DecodingOptions *options,int32_t *pixelFormat)
336```
337
338**描述**
339
340获取pixel格式。
341
342**起始版本:** 12
343
344
345**参数:**
346
347| 参数项 | 描述 |
348| -- | -- |
349| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
350| int32_t *pixelFormat | pixel格式[PIXEL_FORMAT](capi-pixelmap-native-h.md#pixel_format)。 |
351
352**返回:**
353
354| 类型 | 说明 |
355| -- | -- |
356| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
357
358### OH_DecodingOptions_SetPixelFormat()
359
360```
361Image_ErrorCode OH_DecodingOptions_SetPixelFormat(OH_DecodingOptions *options,int32_t pixelFormat)
362```
363
364**描述**
365
366设置pixel格式。
367
368**起始版本:** 12
369
370
371**参数:**
372
373| 参数项 | 描述 |
374| -- | -- |
375| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
376| int32_t pixelFormat | pixel格式[PIXEL_FORMAT](capi-pixelmap-native-h.md#pixel_format)。 |
377
378**返回:**
379
380| 类型 | 说明 |
381| -- | -- |
382| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
383
384### OH_DecodingOptions_GetIndex()
385
386```
387Image_ErrorCode OH_DecodingOptions_GetIndex(OH_DecodingOptions *options, uint32_t *index)
388```
389
390**描述**
391
392获取解码图片序号。
393
394**起始版本:** 12
395
396
397**参数:**
398
399| 参数项 | 描述 |
400| -- | -- |
401| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
402| uint32_t *index | 解码图片序号。 |
403
404**返回:**
405
406| 类型 | 说明 |
407| -- | -- |
408| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
409
410### OH_DecodingOptions_SetIndex()
411
412```
413Image_ErrorCode OH_DecodingOptions_SetIndex(OH_DecodingOptions *options, uint32_t index)
414```
415
416**描述**
417
418设置解码图片序号。
419
420**起始版本:** 12
421
422
423**参数:**
424
425| 参数项 | 描述 |
426| -- | -- |
427| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
428| uint32_t index | 解码图片序号。 |
429
430**返回:**
431
432| 类型 | 说明 |
433| -- | -- |
434| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
435
436### OH_DecodingOptions_GetRotate()
437
438```
439Image_ErrorCode OH_DecodingOptions_GetRotate(OH_DecodingOptions *options, float *rotate)
440```
441
442**描述**
443
444获取旋转角度。
445
446**起始版本:** 12
447
448
449**参数:**
450
451| 参数项 | 描述 |
452| -- | -- |
453| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
454| float *rotate | 旋转角度,单位为deg。 |
455
456**返回:**
457
458| 类型 | 说明 |
459| -- | -- |
460| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
461
462### OH_DecodingOptions_SetRotate()
463
464```
465Image_ErrorCode OH_DecodingOptions_SetRotate(OH_DecodingOptions *options, float rotate)
466```
467
468**描述**
469
470设置旋转角度。
471
472**起始版本:** 12
473
474
475**参数:**
476
477| 参数项 | 描述 |
478| -- | -- |
479| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
480| float rotate | 旋转角度,单位为deg。 |
481
482**返回:**
483
484| 类型 | 说明 |
485| -- | -- |
486| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
487
488### OH_DecodingOptions_GetDesiredSize()
489
490```
491Image_ErrorCode OH_DecodingOptions_GetDesiredSize(OH_DecodingOptions *options,Image_Size *desiredSize)
492```
493
494**描述**
495
496获取期望输出大小。
497
498**起始版本:** 12
499
500
501**参数:**
502
503| 参数项 | 描述 |
504| -- | -- |
505| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
506| [Image_Size](capi-image-nativemodule-image-size.md) *desiredSize | 期望输出大小。 |
507
508**返回:**
509
510| 类型 | 说明 |
511| -- | -- |
512| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
513
514### OH_DecodingOptions_SetDesiredSize()
515
516```
517Image_ErrorCode OH_DecodingOptions_SetDesiredSize(OH_DecodingOptions *options,Image_Size *desiredSize)
518```
519
520**描述**
521
522设置期望输出大小。
523
524**起始版本:** 12
525
526
527**参数:**
528
529| 参数项 | 描述 |
530| -- | -- |
531| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
532| [Image_Size](capi-image-nativemodule-image-size.md) *desiredSize | 期望输出大小。 |
533
534**返回:**
535
536| 类型 | 说明 |
537| -- | -- |
538| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
539
540### OH_DecodingOptions_GetDesiredRegion()
541
542```
543Image_ErrorCode OH_DecodingOptions_GetDesiredRegion(OH_DecodingOptions *options,Image_Region *desiredRegion)
544```
545
546**描述**
547
548获取解码区域。<br> 由于对应SetDesiredRegion接口无法满足区域解码诉求,从API 19开始,推荐配套使用[OH_DecodingOptions_GetCropRegion](#oh_decodingoptions_getcropregion)接口替代。
549
550**起始版本:** 12
551
552
553**参数:**
554
555| 参数项 | 描述 |
556| -- | -- |
557| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
558| [Image_Region](capi-image-nativemodule-image-region.md) *desiredRegion | 解码区域。 |
559
560**返回:**
561
562| 类型 | 说明 |
563| -- | -- |
564| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
565
566### OH_DecodingOptions_SetDesiredRegion()
567
568```
569Image_ErrorCode OH_DecodingOptions_SetDesiredRegion(OH_DecodingOptions *options,Image_Region *desiredRegion)
570```
571
572**描述**
573
574设置解码区域。<br> 实际解码结果会按照原图解码,无区域解码效果。从API 19开始,推荐使用接口[OH_DecodingOptions_SetCropRegion](#oh_decodingoptions_setcropregion)替代。
575
576**起始版本:** 12
577
578
579**参数:**
580
581| 参数项 | 描述 |
582| -- | -- |
583| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
584| [Image_Region](capi-image-nativemodule-image-region.md) *desiredRegion | 解码区域。 |
585
586**返回:**
587
588| 类型 | 说明 |
589| -- | -- |
590| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
591
592### OH_DecodingOptions_GetDesiredDynamicRange()
593
594```
595Image_ErrorCode OH_DecodingOptions_GetDesiredDynamicRange(OH_DecodingOptions *options,int32_t *desiredDynamicRange)
596```
597
598**描述**
599
600获取解码时设置的期望动态范围。
601
602**起始版本:** 12
603
604
605**参数:**
606
607| 参数项 | 描述 |
608| -- | -- |
609| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
610| int32_t *desiredDynamicRange | 期望的动态范围值[IMAGE_DYNAMIC_RANGE](#image_dynamic_range)。 |
611
612**返回:**
613
614| 类型 | 说明 |
615| -- | -- |
616| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>         IMAGE_BAD_PARAMETER:参数校验错误。 |
617
618### OH_DecodingOptions_SetDesiredDynamicRange()
619
620```
621Image_ErrorCode OH_DecodingOptions_SetDesiredDynamicRange(OH_DecodingOptions *options,int32_t desiredDynamicRange)
622```
623
624**描述**
625
626设置解码时的期望动态范围。
627
628**起始版本:** 12
629
630
631**参数:**
632
633| 参数项 | 描述 |
634| -- | -- |
635| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
636| int32_t desiredDynamicRange | 期望的动态范围值[IMAGE_DYNAMIC_RANGE](#image_dynamic_range)。 |
637
638**返回:**
639
640| 类型 | 说明 |
641| -- | -- |
642| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>         IMAGE_BAD_PARAMETER:参数校验错误。 |
643
644### OH_DecodingOptions_GetDesiredColorSpace()
645
646```
647Image_ErrorCode OH_DecodingOptions_GetDesiredColorSpace(OH_DecodingOptions *options, int32_t *colorSpace)
648```
649
650**描述**
651
652获取解码参数中设置的色彩空间。
653
654**起始版本:** 20
655
656
657**参数:**
658
659| 参数项 | 描述 |
660| -- | -- |
661| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 解码参数。 |
662| int32_t *colorSpace | 解码参数中设置的色彩空间,参考[ColorSpaceName](../apis-arkgraphics2d/capi-native-color-space-manager-h.md#colorspacename)。 |
663
664**返回:**
665
666| 类型 | 说明 |
667| -- | -- |
668| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>         IMAGE_SOURCE_INVALID_PARAMETER:参数错误。options或colorSpace为空。 |
669
670### OH_DecodingOptions_SetDesiredColorSpace()
671
672```
673Image_ErrorCode OH_DecodingOptions_SetDesiredColorSpace(OH_DecodingOptions *options, int32_t colorSpace)
674```
675
676**描述**
677
678设置解码期望得到的色彩空间。
679
680**起始版本:** 20
681
682
683**参数:**
684
685| 参数项 | 描述 |
686| -- | -- |
687| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 解码参数。 |
688| int32_t colorSpace | 期望的色彩空间,参考[ColorSpaceName](../apis-arkgraphics2d/capi-native-color-space-manager-h.md#colorspacename)。 |
689
690**返回:**
691
692| 类型 | 说明 |
693| -- | -- |
694| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>         IMAGE_SOURCE_INVALID_PARAMETER:参数错误。options为空,或者传入了不支持的colorSpace。 |
695
696### OH_DecodingOptions_SetCropAndScaleStrategy()
697
698```
699Image_ErrorCode OH_DecodingOptions_SetCropAndScaleStrategy(OH_DecodingOptions *options,int32_t cropAndScaleStrategy)
700```
701
702**描述**
703
704设置解码选项的裁剪和缩放策略。
705
706**起始版本:** 18
707
708
709**参数:**
710
711| 参数项 | 描述 |
712| -- | -- |
713| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
714| int32_t cropAndScaleStrategy | 在同时指定desiredSize和desiredRegion时执行裁剪和缩放的策略。 |
715
716**返回:**
717
718| 类型 | 说明 |
719| -- | -- |
720| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>         IMAGE_BAD_PARAMETER:options空指针或者cropAndScaleStrategy取值不在Image_CropAndScaleStrategy枚举值定义之中。 |
721
722### OH_DecodingOptions_GetCropAndScaleStrategy()
723
724```
725Image_ErrorCode OH_DecodingOptions_GetCropAndScaleStrategy(OH_DecodingOptions *options,int32_t *cropAndScaleStrategy)
726```
727
728**描述**
729
730获取解码选项的裁剪和缩放策略。
731
732**起始版本:** 18
733
734
735**参数:**
736
737| 参数项 | 描述 |
738| -- | -- |
739| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
740| int32_t *cropAndScaleStrategy | 指向在同时指定desiredSize和desiredRegion时执行裁剪和缩放策略的指针。 |
741
742**返回:**
743
744| 类型 | 说明 |
745| -- | -- |
746| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>         IMAGE_BAD_PARAMETER:options或者cropAndScaleStrategy为空指针。 |
747
748### OH_DecodingOptions_GetCropRegion()
749
750```
751Image_ErrorCode OH_DecodingOptions_GetCropRegion(OH_DecodingOptions *options, Image_Region *cropRegion)
752```
753
754**描述**
755
756获取解码参数中的裁剪区域。
757
758**起始版本:** 19
759
760
761**参数:**
762
763| 参数项 | 描述 |
764| -- | -- |
765| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 指向解码参数指针。 |
766| [Image_Region](capi-image-nativemodule-image-region.md) *cropRegion | 指向要裁剪的目标区域指针。 |
767
768**返回:**
769
770| 类型 | 说明 |
771| -- | -- |
772| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:操作成功。<br>         IMAGE_SOURCE_INVALID_PARAMETER:options或cropRegion为空。 |
773
774### OH_DecodingOptions_SetCropRegion()
775
776```
777Image_ErrorCode OH_DecodingOptions_SetCropRegion(OH_DecodingOptions *options, Image_Region *cropRegion)
778```
779
780**描述**
781
782设置解码参数中的裁剪区域。
783
784**起始版本:** 19
785
786
787**参数:**
788
789| 参数项 | 描述 |
790| -- | -- |
791| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 指向解码参数指针。 |
792| [Image_Region](capi-image-nativemodule-image-region.md) *cropRegion | 指向要裁剪的目标区域指针。 |
793
794**返回:**
795
796| 类型 | 说明 |
797| -- | -- |
798| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:操作成功。<br>         IMAGE_SOURCE_INVALID_PARAMETER:options或cropRegion为空。 |
799
800### OH_DecodingOptions_Release()
801
802```
803Image_ErrorCode OH_DecodingOptions_Release(OH_DecodingOptions *options)
804```
805
806**描述**
807
808释放OH_DecodingOptions指针。
809
810**起始版本:** 12
811
812
813**参数:**
814
815| 参数项 | 描述 |
816| -- | -- |
817| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 被操作的OH_DecodingOptions指针。 |
818
819**返回:**
820
821| 类型 | 说明 |
822| -- | -- |
823| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
824
825### OH_ImageSourceNative_CreateFromUri()
826
827```
828Image_ErrorCode OH_ImageSourceNative_CreateFromUri(char *uri, size_t uriSize, OH_ImageSourceNative **res)
829```
830
831**描述**
832
833通过uri创建OH_ImageSourceNative指针。
834
835**起始版本:** 12
836
837
838**参数:**
839
840| 参数项 | 描述 |
841| -- | -- |
842| char *uri | 指向图像源URI的指针。只接受文件URI或Base64 URI。当前文件资源只支持绝对路径。 |
843| size_t uriSize | URI长度。 |
844| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) **res | 指向c++本地层创建的OH_ImageSourceNative对象的指针。 |
845
846**返回:**
847
848| 类型 | 说明 |
849| -- | -- |
850| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。<br>         IMAGE_BAD_SOURCE:解码数据源异常。 |
851
852### OH_ImageSourceNative_CreateFromFd()
853
854```
855Image_ErrorCode OH_ImageSourceNative_CreateFromFd(int32_t fd, OH_ImageSourceNative **res)
856```
857
858**描述**
859
860通过fd创建OH_ImageSourceNative指针。
861
862**起始版本:** 12
863
864
865**参数:**
866
867| 参数项 | 描述 |
868| -- | -- |
869| int32_t fd | 文件描述符fd。 |
870| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) **res | 指向c++本地层创建的OH_ImageSourceNative对象的指针。 |
871
872**返回:**
873
874| 类型 | 说明 |
875| -- | -- |
876| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
877
878### OH_ImageSourceNative_CreateFromData()
879
880```
881Image_ErrorCode OH_ImageSourceNative_CreateFromData(uint8_t *data, size_t dataSize, OH_ImageSourceNative **res)
882```
883
884**描述**
885
886通过缓冲区数据创建OH_ImageSourceNative指针。<br> data数据应该是未解码的数据,不要传入类似于RBGA,YUV的像素buffer数据,如果想通过像素buffer数据创建pixelMap,可以调用[OH_PixelmapNative_CreatePixelmap](capi-pixelmap-native-h.md#oh_pixelmapnative_createpixelmap)这一类接口。
887
888**起始版本:** 12
889
890
891**参数:**
892
893| 参数项 | 描述 |
894| -- | -- |
895| uint8_t *data | 图像缓冲区数据。 |
896| size_t dataSize | 图像缓冲区数据长度。 |
897| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) **res | 指向c++本地层创建的OH_ImageSourceNative对象的指针。 |
898
899**返回:**
900
901| 类型 | 说明 |
902| -- | -- |
903| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。<br>         IMAGE_BAD_SOURCE:解码数据源异常。 |
904
905### OH_ImageSourceNative_CreateFromDataWithUserBuffer()
906
907```
908Image_ErrorCode OH_ImageSourceNative_CreateFromDataWithUserBuffer(uint8_t *data, size_t datalength,OH_ImageSourceNative **imageSource)
909```
910
911**描述**
912
913由数据缓存创建图片源。传入的数据缓存将在图片源对象中直接访问,在图片源对象的声明周期内,数据缓存需要保持可用。
914
915**起始版本:** 20
916
917
918**参数:**
919
920| 参数项 | 描述 |
921| -- | -- |
922| uint8_t *data | 数据缓存指针。 |
923| size_t datalength | 数据缓存长度。 |
924| [OH_ImageSourceNative](capi-image-nativemodule-oh-imagesourcenative.md) **imageSource | 图片源的二级指针。 |
925
926**返回:**
927
928| 类型 | 说明 |
929| -- | -- |
930| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_SOURCE_INVALID_PARAMETER:data或imageSource是空指针,datalength为0。 |
931
932### OH_ImageSourceNative_CreateFromRawFile()
933
934```
935Image_ErrorCode OH_ImageSourceNative_CreateFromRawFile(RawFileDescriptor *rawFile, OH_ImageSourceNative **res)
936```
937
938**描述**
939
940通过图像资源文件的RawFileDescriptor创建OH_ImageSourceNative指针。
941
942**起始版本:** 12
943
944
945**参数:**
946
947| 参数项 | 描述 |
948| -- | -- |
949| [RawFileDescriptor](../apis-localization-kit/capi-rawfile-rawfiledescriptor.md) *rawFile | 指示raw文件的文件描述符。 |
950| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) **res | 指向c++本地层创建的OH_ImageSourceNative对象的指针。 |
951
952**返回:**
953
954| 类型 | 说明 |
955| -- | -- |
956| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
957
958### OH_ImageSourceNative_CreatePixelmap()
959
960```
961Image_ErrorCode OH_ImageSourceNative_CreatePixelmap(OH_ImageSourceNative *source, OH_DecodingOptions *options,OH_PixelmapNative **pixelmap)
962```
963
964**描述**
965
966通过图片解码参数创建OH_PixelmapNative指针。
967
968**起始版本:** 12
969
970
971**参数:**
972
973| 参数项 | 描述 |
974| -- | -- |
975| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) *source | 被操作的OH_ImageSourceNative指针。 |
976| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 解码参数。 |
977| [OH_PixelmapNative](capi-image-nativemodule-oh-pixelmapnative.md) **pixelmap | 指向c++本地层创建的OH_PixelmapNative对象的指针。 |
978
979**返回:**
980
981| 类型 | 说明 |
982| -- | -- |
983| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
984
985### OH_ImageSourceNative_CreatePixelmapUsingAllocator()
986
987```
988Image_ErrorCode OH_ImageSourceNative_CreatePixelmapUsingAllocator(OH_ImageSourceNative *source,OH_DecodingOptions *options, IMAGE_ALLOCATOR_TYPE allocator, OH_PixelmapNative **pixelmap)
989```
990
991**描述**
992
993根据解码参数创建一个PixelMap,PixelMap使用的内存类型可以通过allocatorType来指定。<br> 默认情况下,系统会根据图像类型、图像大小、平台能力等选择内存类型。在处理通过此接口返回的PixelMap时,请始终考虑步幅(stride)的影响。
994
995**起始版本:** 15
996
997
998**参数:**
999
1000| 参数项 | 描述 |
1001| -- | -- |
1002| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) *source | 被操作的OH_ImageSourceNative指针。 |
1003| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 解码参数。 |
1004| [IMAGE_ALLOCATOR_TYPE](#image_allocator_type) allocator | 指示返回的PixelMap将使用哪种内存类型。 |
1005| [OH_PixelmapNative](capi-image-nativemodule-oh-pixelmapnative.md) **pixelmap | 指向c++本地层创建的OH_PixelmapNative对象的指针。 |
1006
1007**返回:**
1008
1009| 类型 | 说明 |
1010| -- | -- |
1011| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。<br>         IMAGE_BAD_SOURCE:数据源异常。<br>         IMAGE_SOURCE_UNSUPPORTED_MIME_TYPE:不支持的MIME类型。<br>         IMAGE_SOURCE_TOO_LARGE:图像过大。<br>         IMAGE_SOURCE_UNSUPPORTED_ALLOCATOR_TYPE:不支持的分配器类型。例如,使用共享内存解码HDR图像,因为只有DMA支持HDR元数据。<br>         IMAGE_SOURCE_UNSUPPORTED_OPTIONS:不支持的选项。例如,无法将图像转换为所需的像素格式。<br>         IMAGE_DECODE_FAILED:解码失败。<br>         IMAGE_SOURCE_ALLOC_FAILED:内存分配失败。 |
1012
1013### OH_ImageSourceNative_CreatePixelmapList()
1014
1015```
1016Image_ErrorCode OH_ImageSourceNative_CreatePixelmapList(OH_ImageSourceNative *source, OH_DecodingOptions *options,OH_PixelmapNative *resVecPixMap[], size_t size)
1017```
1018
1019**描述**
1020
1021通过图片解码参数创建OH_PixelmapNative数组。<br> 注意,此接口会一次性解码全部帧,当帧数过多或单帧图像过大时,会占用较大内存,造成系统内存紧张,此种情况推荐使用Image组件显示动图,Image组件采用逐帧解码,占用内存比此接口少。
1022
1023**起始版本:** 12
1024
1025
1026**参数:**
1027
1028| 参数项 | 描述 |
1029| -- | -- |
1030| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) *source | 被操作的OH_ImageSourceNative指针。 |
1031| [OH_DecodingOptions](capi-image-nativemodule-oh-decodingoptions.md) *options | 解码参数。 |
1032| [OH_PixelmapNative](capi-image-nativemodule-oh-pixelmapnative.md) *resVecPixMap[] | 指向c++本地层创建的OH_PixelmapNative对象的指针数组。 |
1033| size_t size | 数组长度。 用户可以使用[OH_ImageSourceNative_GetFrameCount](#oh_imagesourcenative_getframecount)获取。 |
1034
1035**返回:**
1036
1037| 类型 | 说明 |
1038| -- | -- |
1039| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。<br>         IMAGE_UNSUPPORTED_OPERATION:操作不支持。 |
1040
1041### OH_ImageSourceNative_CreatePicture()
1042
1043```
1044Image_ErrorCode OH_ImageSourceNative_CreatePicture(OH_ImageSourceNative *source, OH_DecodingOptionsForPicture *options,OH_PictureNative **picture)
1045```
1046
1047**描述**
1048
1049通过图片解码创建OH_PictureNative指针。
1050
1051**起始版本:** 13
1052
1053
1054**参数:**
1055
1056| 参数项 | 描述 |
1057| -- | -- |
1058| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) *source | 被操作的OH_ImageSourceNative指针。 |
1059| [OH_DecodingOptionsForPicture](capi-image-nativemodule-oh-decodingoptionsforpicture.md) *options | 解码参数。 |
1060| [OH_PictureNative](capi-image-nativemodule-oh-picturenative.md) **picture | 指向c++本地层创建的OH_PictureNative对象的指针。 |
1061
1062**返回:**
1063
1064| 类型 | 说明 |
1065| -- | -- |
1066| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。<br>         IMAGE_DECODE_FAILED:解码失败。 |
1067
1068### OH_ImageSourceNative_CreatePictureAtIndex()
1069
1070```
1071Image_ErrorCode OH_ImageSourceNative_CreatePictureAtIndex(OH_ImageSourceNative *source, uint32_t index,OH_PictureNative **picture)
1072```
1073
1074**描述**
1075
1076通过指定序号的图片解码创建OH_PictureNative指针。
1077
1078**起始版本:** 20
1079
1080
1081**参数:**
1082
1083| 参数项 | 描述 |
1084| -- | -- |
1085| [OH_ImageSourceNative](capi-image-nativemodule-oh-imagesourcenative.md) *source | 被操作的OH_ImageSourceNative指针。 |
1086| uint32_t index | 解码图片序号。 |
1087| [OH_PictureNative](capi-image-nativemodule-oh-picturenative.md) **picture | 指向c++本地层创建的OH_PictureNative对象的指针。 |
1088
1089**返回:**
1090
1091| 类型 | 说明 |
1092| -- | -- |
1093| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>         IMAGE_BAD_SOURCE:数据源异常。<br>         IMAGE_SOURCE_UNSUPPORTED_MIME_TYPE:不支持的MIME类型。<br>         IMAGE_SOURCE_TOO_LARGE:图像过大。<br>         IMAGE_SOURCE_UNSUPPORTED_OPTIONS:不支持的选项。例如,无效的图片序号。<br>         IMAGE_DECODE_FAILED:解码失败。 |
1094
1095### OH_ImageSourceNative_GetDelayTimeList()
1096
1097```
1098Image_ErrorCode OH_ImageSourceNative_GetDelayTimeList(OH_ImageSourceNative *source, int32_t *delayTimeList, size_t size)
1099```
1100
1101**描述**
1102
1103获取图像延迟时间数组。
1104
1105**起始版本:** 12
1106
1107
1108**参数:**
1109
1110| 参数项 | 描述 |
1111| -- | -- |
1112| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) *source | 被操作的OH_ImageSourceNative指针。 |
1113| int32_t *delayTimeList | 指向获得的延迟时间列表的指针。它不能是空指针。 |
1114| size_t size | delayTimeList的大小。用户可以从[OH_ImageSourceNative_GetFrameCount](#oh_imagesourcenative_getframecount)获得大小。 |
1115
1116**返回:**
1117
1118| 类型 | 说明 |
1119| -- | -- |
1120| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
1121
1122### OH_ImageSourceNative_GetImageInfo()
1123
1124```
1125Image_ErrorCode OH_ImageSourceNative_GetImageInfo(OH_ImageSourceNative *source, int32_t index,OH_ImageSource_Info *info)
1126```
1127
1128**描述**
1129
1130获取指定序号的图片信息。
1131
1132**起始版本:** 12
1133
1134
1135**参数:**
1136
1137| 参数项 | 描述 |
1138| -- | -- |
1139| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) *source | 被操作的OH_ImageSourceNative指针。 |
1140| int32_t index | 图片序号。对GIF图片可传入[0,N-1],N表示GIF的帧数。对只有一帧数据的图片格式,可传入0。 |
1141| [OH_ImageSource_Info](capi-image-nativemodule-imagesource-info.md) *info | 指向获取的图像源信息的OH_ImageSource_Info指针。 |
1142
1143**返回:**
1144
1145| 类型 | 说明 |
1146| -- | -- |
1147| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
1148
1149### OH_ImageSourceNative_GetImageProperty()
1150
1151```
1152Image_ErrorCode OH_ImageSourceNative_GetImageProperty(OH_ImageSourceNative *source, Image_String *key,Image_String *value)
1153```
1154
1155**描述**
1156
1157获取图片指定属性键的值。
1158
1159**起始版本:** 12
1160
1161
1162**参数:**
1163
1164| 参数项 | 描述 |
1165| -- | -- |
1166| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) *source | 被操作的OH_ImageSourceNative指针。 |
1167| [Image_String](capi-image-nativemodule-image-string.md) *key | 指示指向属性的指针,详情请参见[Image_String](capi-image-nativemodule-image-string.md),key的取值范围参考[OHOS_IMAGE_PROPERTY_XXX](capi-image-common-h.md#变量)定义。使用ImageSource后释放,参见[OH_ImageSourceNative_Release](#oh_imagesourcenative_release)。 |
1168| [Image_String](capi-image-nativemodule-image-string.md) *value | 指向获取的值的指针。用户可以传入一个空指针和零大小,我们将分配内存,但用户必须在使用后释放内存。 |
1169
1170**返回:**
1171
1172| 类型 | 说明 |
1173| -- | -- |
1174| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
1175
1176### OH_ImageSourceNative_GetImagePropertyWithNull()
1177
1178```
1179Image_ErrorCode OH_ImageSourceNative_GetImagePropertyWithNull(OH_ImageSourceNative *source, Image_String *key,Image_String *value)
1180```
1181
1182**描述**
1183
1184获取图像属性值。输出的value.data以字符串结束符结尾。
1185
1186**起始版本:** 19
1187
1188
1189**参数:**
1190
1191| 参数项 | 描述 |
1192| -- | -- |
1193| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) *source | 指向ImageSource的指针。 |
1194| [Image_String](capi-image-nativemodule-image-string.md) *key | 指向属性键的指针。 |
1195| [Image_String](capi-image-nativemodule-image-string.md) *value | 指向属性值的指针(输出参数)。 |
1196
1197**返回:**
1198
1199| 类型 | 说明 |
1200| -- | -- |
1201| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。<br>         IMAGE_SOURCE_INVALID_PARAMETER:source、key或value为空。 |
1202
1203### OH_ImageSourceNative_ModifyImageProperty()
1204
1205```
1206Image_ErrorCode OH_ImageSourceNative_ModifyImageProperty(OH_ImageSourceNative *source, Image_String *key,Image_String *value)
1207```
1208
1209**描述**
1210
1211通过指定的键修改图片属性的值。
1212
1213**起始版本:** 12
1214
1215
1216**参数:**
1217
1218| 参数项 | 描述 |
1219| -- | -- |
1220| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) *source | 被操作的OH_ImageSourceNative指针。 |
1221| [Image_String](capi-image-nativemodule-image-string.md) *key | 指向属性键的指针,详情请参见[Image_String](capi-image-nativemodule-image-string.md),key是一个exif常数。使用ImageSource后释放,参见[OH_ImageSourceNative_Release](#oh_imagesourcenative_release)。 |
1222| [Image_String](capi-image-nativemodule-image-string.md) *value | 需要修改的属性值。 |
1223
1224**返回:**
1225
1226| 类型 | 说明 |
1227| -- | -- |
1228| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
1229
1230### OH_ImageSourceNative_GetFrameCount()
1231
1232```
1233Image_ErrorCode OH_ImageSourceNative_GetFrameCount(OH_ImageSourceNative *source, uint32_t *frameCount)
1234```
1235
1236**描述**
1237
1238获取图像帧数。
1239
1240**起始版本:** 12
1241
1242
1243**参数:**
1244
1245| 参数项 | 描述 |
1246| -- | -- |
1247| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) *source | 被操作的OH_ImageSourceNative指针。 |
1248| uint32_t *frameCount | 图像帧数。 |
1249
1250**返回:**
1251
1252| 类型 | 说明 |
1253| -- | -- |
1254| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
1255
1256### OH_ImageSourceNative_GetSupportedFormats()
1257
1258```
1259Image_ErrorCode OH_ImageSourceNative_GetSupportedFormats(Image_MimeType **supportedFormats, size_t *length)
1260```
1261
1262**描述**
1263
1264获取支持解码的图片格式。
1265
1266**起始版本:** 20
1267
1268
1269**参数:**
1270
1271| 参数项 | 描述 |
1272| -- | -- |
1273| [Image_MimeType](capi-image-nativemodule-image-string.md) **supportedFormats | 支持解码的图片格式。 |
1274| size_t *length | 数组长度。 |
1275
1276**返回:**
1277
1278| 类型 | 说明 |
1279| -- | -- |
1280| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:操作成功。<br>         IMAGE_SOURCE_INVALID_PARAMETER:参数异常,supportedFormats或length为空。 |
1281
1282### OH_ImageSourceNative_Release()
1283
1284```
1285Image_ErrorCode OH_ImageSourceNative_Release(OH_ImageSourceNative *source)
1286```
1287
1288**描述**
1289
1290释放OH_ImageSourceNative指针。
1291
1292**起始版本:** 12
1293
1294
1295**参数:**
1296
1297| 参数项 | 描述 |
1298| -- | -- |
1299| [OH_ImageSourceNative](capi-image-imagesourcenative-.md) *source | 要释放的OH_ImageSourceNative指针。 |
1300
1301**返回:**
1302
1303| 类型 | 说明 |
1304| -- | -- |
1305| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
1306
1307### OH_DecodingOptionsForPicture_Create()
1308
1309```
1310Image_ErrorCode OH_DecodingOptionsForPicture_Create(OH_DecodingOptionsForPicture **options)
1311```
1312
1313**描述**
1314
1315创建OH_DecodingOptionsForPicture指针。
1316
1317**起始版本:** 13
1318
1319
1320**参数:**
1321
1322| 参数项 | 描述 |
1323| -- | -- |
1324| [OH_DecodingOptionsForPicture](capi-image-nativemodule-oh-decodingoptionsforpicture.md) **options | 被操作的OH_DecodingOptionsForPicture指针。 |
1325
1326**返回:**
1327
1328| 类型 | 说明 |
1329| -- | -- |
1330| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
1331
1332### OH_DecodingOptionsForPicture_GetDesiredAuxiliaryPictures()
1333
1334```
1335Image_ErrorCode OH_DecodingOptionsForPicture_GetDesiredAuxiliaryPictures(OH_DecodingOptionsForPicture *options,Image_AuxiliaryPictureType **desiredAuxiliaryPictures, size_t *length)
1336```
1337
1338**描述**
1339
1340获取解码时设置的期望辅助图(期望解码出的picture包含的辅助图)。
1341
1342**起始版本:** 13
1343
1344
1345**参数:**
1346
1347| 参数项 | 描述 |
1348| -- | -- |
1349| [OH_DecodingOptionsForPicture](capi-image-nativemodule-oh-decodingoptionsforpicture.md) *options | 被操作的OH_DecodingOptionsForPicture指针。 |
1350| [Image_AuxiliaryPictureType](capi-picture-native-h.md#image_auxiliarypicturetype) **desiredAuxiliaryPictures | 解码选项中的期望辅助图。 |
1351| size_t *length | 期望辅助图长度。 |
1352
1353**返回:**
1354
1355| 类型 | 说明 |
1356| -- | -- |
1357| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
1358
1359### OH_DecodingOptionsForPicture_SetDesiredAuxiliaryPictures()
1360
1361```
1362Image_ErrorCode OH_DecodingOptionsForPicture_SetDesiredAuxiliaryPictures(OH_DecodingOptionsForPicture *options,Image_AuxiliaryPictureType *desiredAuxiliaryPictures, size_t length)
1363```
1364
1365**描述**
1366
1367设置解码选项中的期望辅助图。
1368
1369**起始版本:** 13
1370
1371
1372**参数:**
1373
1374| 参数项 | 描述 |
1375| -- | -- |
1376| [OH_DecodingOptionsForPicture](capi-image-nativemodule-oh-decodingoptionsforpicture.md) *options | 被操作的OH_DecodingOptionsForPicture指针。 |
1377| [Image_AuxiliaryPictureType](capi-picture-native-h.md#image_auxiliarypicturetype) *desiredAuxiliaryPictures | 将要设置的期望辅助图。 |
1378| size_t length | 期望辅助图长度。 |
1379
1380**返回:**
1381
1382| 类型 | 说明 |
1383| -- | -- |
1384| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
1385
1386### OH_DecodingOptionsForPicture_Release()
1387
1388```
1389Image_ErrorCode OH_DecodingOptionsForPicture_Release(OH_DecodingOptionsForPicture *options)
1390```
1391
1392**描述**
1393
1394释放OH_DecodingOptionsForPicture指针。
1395
1396**起始版本:** 13
1397
1398
1399**参数:**
1400
1401| 参数项 | 描述 |
1402| -- | -- |
1403| [OH_DecodingOptionsForPicture](capi-image-nativemodule-oh-decodingoptionsforpicture.md) *options | 要释放的OH_DecodingOptionsForPicture指针。 |
1404
1405**返回:**
1406
1407| 类型 | 说明 |
1408| -- | -- |
1409| [Image_ErrorCode](capi-image-common-h.md#image_errorcode) | IMAGE_SUCCESS:执行成功。 <br>         IMAGE_BAD_PARAMETER:参数错误。 |
1410
1411
1412