harmony 鸿蒙image_source_native.h
image_source_native.h
概述
图片解码API。
库: libimage_source.so
系统能力: SystemCapability.Multimedia.Image.ImageSource
起始版本: 12
相关模块: Image_NativeModule
汇总
结构体
|名称|typedef关键字|描述| |–|–|–| |OH_ImageSourceNative|OH_ImageSourceNative|OH_ImageSourceNative是native层封装的ImageSource结构体,用于创建图片数据。| |OH_ImageSource_Info|OH_ImageSource_Info|OH_ImageSource_Info是native层封装的ImageSource信息结构体,OH_ImageSource_Info结构体不可直接操作,而是采用函数调用方式创建、释放结构体以及操作具体字段。| |OH_DecodingOptionsForPicture|OH_DecodingOptionsForPicture|Picture解码参数结构体。通过OH_DecodingOptionsForPicture_Create获取。| |OH_DecodingOptions|OH_DecodingOptions|OH_DecodingOptions是native层封装的解码选项参数结构体,用于设置解码选项参数,在创建Pixelmap时作为入参传入,详细信息见OH_ImageSourceNative_CreatePixelmap。|
枚举
|名称|typedef关键字|描述| |–|–|–| |IMAGE_DYNAMIC_RANGE|IMAGE_DYNAMIC_RANGE|解码指定期望动态范围。| |IMAGE_ALLOCATOR_TYPE|IMAGE_ALLOCATOR_TYPE|用于分配PixelMap内存的分配器类型。| |Image_CropAndScaleStrategy|Image_CropAndScaleStrategy|在同时指定desiredSize和desiredRegion时执行裁剪和缩放的策略。|
函数
|名称|描述|
|–|–|
|Image_ErrorCode OH_ImageSourceInfo_Create(OH_ImageSource_Info **info)|创建OH_ImageSource_Info指针。|
|Image_ErrorCode OH_ImageSourceInfo_GetWidth(OH_ImageSource_Info *info, uint32_t *width)|获取图片的宽。|
|Image_ErrorCode OH_ImageSourceInfo_GetHeight(OH_ImageSource_Info *info, uint32_t *height)|获取图片的高。|
|Image_ErrorCode OH_ImageSourceInfo_GetDynamicRange(OH_ImageSource_Info *info, bool *isHdr)|获取图片是否为高动态范围的信息。|
|Image_ErrorCode OH_ImageSourceInfo_GetMimetype(OH_ImageSource_Info *info, Image_MimeType *mimetype)|获取图片源的MIME类型。|
|Image_ErrorCode OH_ImageSourceInfo_Release(OH_ImageSource_Info *info)|释放OH_ImageSource_Info指针。|
|Image_ErrorCode OH_DecodingOptions_Create(OH_DecodingOptions **options)|创建OH_DecodingOptions指针。|
|Image_ErrorCode OH_DecodingOptions_GetPixelFormat(OH_DecodingOptions *options,int32_t *pixelFormat)|获取pixel格式。|
|Image_ErrorCode OH_DecodingOptions_SetPixelFormat(OH_DecodingOptions *options,int32_t pixelFormat)|设置pixel格式。|
|Image_ErrorCode OH_DecodingOptions_GetIndex(OH_DecodingOptions *options, uint32_t *index)|获取解码图片序号。|
|Image_ErrorCode OH_DecodingOptions_SetIndex(OH_DecodingOptions *options, uint32_t index)|设置解码图片序号。|
|Image_ErrorCode OH_DecodingOptions_GetRotate(OH_DecodingOptions *options, float *rotate)|获取旋转角度。|
|Image_ErrorCode OH_DecodingOptions_SetRotate(OH_DecodingOptions *options, float rotate)|设置旋转角度。|
|Image_ErrorCode OH_DecodingOptions_GetDesiredSize(OH_DecodingOptions *options,Image_Size *desiredSize)|获取期望输出大小。|
|Image_ErrorCode OH_DecodingOptions_SetDesiredSize(OH_DecodingOptions *options,Image_Size *desiredSize)|设置期望输出大小。|
|Image_ErrorCode OH_DecodingOptions_GetDesiredRegion(OH_DecodingOptions *options,Image_Region *desiredRegion)|获取解码区域。
由于对应SetDesiredRegion接口无法满足区域解码诉求,从API 19开始,推荐配套使用接口OH_DecodingOptions_GetCropRegion替代。|
|Image_ErrorCode OH_DecodingOptions_SetDesiredRegion(OH_DecodingOptions *options,Image_Region *desiredRegion)|设置解码区域。
实际解码结果会按照原图解码,无区域解码效果。从API 19开始,推荐使用接口OH_DecodingOptions_SetCropRegion替代。|
|Image_ErrorCode OH_DecodingOptions_GetDesiredDynamicRange(OH_DecodingOptions *options,int32_t *desiredDynamicRange)|获取解码时设置的期望动态范围。|
|Image_ErrorCode OH_DecodingOptions_SetDesiredDynamicRange(OH_DecodingOptions *options,int32_t desiredDynamicRange)|设置解码时的期望动态范围。|
|Image_ErrorCode OH_DecodingOptions_GetDesiredColorSpace(OH_DecodingOptions *options, int32_t *colorSpace)|获取解码参数中设置的色彩空间。|
|Image_ErrorCode OH_DecodingOptions_SetDesiredColorSpace(OH_DecodingOptions *options, int32_t colorSpace)|设置解码期望得到的色彩空间。|
|Image_ErrorCode OH_DecodingOptions_SetCropAndScaleStrategy(OH_DecodingOptions *options,int32_t cropAndScaleStrategy)|设置解码选项的裁剪和缩放策略。|
|Image_ErrorCode OH_DecodingOptions_GetCropAndScaleStrategy(OH_DecodingOptions *options,int32_t *cropAndScaleStrategy)|获取解码选项的裁剪和缩放策略。|
|Image_ErrorCode OH_DecodingOptions_GetCropRegion(OH_DecodingOptions *options, Image_Region *cropRegion)|获取解码参数中的裁剪区域。|
|Image_ErrorCode OH_DecodingOptions_SetCropRegion(OH_DecodingOptions *options, Image_Region *cropRegion)|设置解码参数中的裁剪区域。|
|Image_ErrorCode OH_DecodingOptions_Release(OH_DecodingOptions *options)|释放OH_DecodingOptions指针。|
|Image_ErrorCode OH_ImageSourceNative_CreateFromUri(char *uri, size_t uriSize, OH_ImageSourceNative **res)|通过uri创建OH_ImageSourceNative指针。|
|Image_ErrorCode OH_ImageSourceNative_CreateFromFd(int32_t fd, OH_ImageSourceNative **res)|通过fd创建OH_ImageSourceNative指针。|
|Image_ErrorCode OH_ImageSourceNative_CreateFromData(uint8_t *data, size_t dataSize, OH_ImageSourceNative **res)|通过缓冲区数据创建OH_ImageSourceNative指针。
data数据应该是未解码的数据,不要传入类似于RBGA,YUV的像素buffer数据,如果想通过像素buffer数据创建pixelMap,可以调用OH_PixelmapNative_CreatePixelmap这一类接口。|
|Image_ErrorCode OH_ImageSourceNative_CreateFromRawFile(RawFileDescriptor *rawFile, OH_ImageSourceNative **res)|通过图像资源文件的RawFileDescriptor创建OH_ImageSourceNative指针。|
|Image_ErrorCode OH_ImageSourceNative_CreatePixelmap(OH_ImageSourceNative *source, OH_DecodingOptions *options,OH_PixelmapNative **pixelmap)|通过图片解码参数创建OH_PixelmapNative指针。|
|Image_ErrorCode OH_ImageSourceNative_CreatePixelmapUsingAllocator(OH_ImageSourceNative *source,OH_DecodingOptions *options, IMAGE_ALLOCATOR_TYPE allocator, OH_PixelmapNative **pixelmap)|根据解码参数创建一个PixelMap,PixelMap使用的内存类型可以通过allocatorType来指定。
默认情况下,系统会根据图像类型、图像大小、平台能力等选择内存类型。在处理通过此接口返回的PixelMap时,请始终考虑步幅(stride)的影响。|
|Image_ErrorCode OH_ImageSourceNative_CreatePixelmapList(OH_ImageSourceNative *source, OH_DecodingOptions *options,OH_PixelmapNative *resVecPixMap[], size_t size)|通过图片解码参数创建OH_PixelmapNative数组。
注意,此接口会一次性解码全部帧,当帧数过多或单帧图像过大时,会占用较大内存,造成系统内存紧张,此种情况推荐使用Image组件显示动图,Image组件采用逐帧解码,占用内存比此接口少。|
|Image_ErrorCode OH_ImageSourceNative_CreatePicture(OH_ImageSourceNative *source, OH_DecodingOptionsForPicture *options,OH_PictureNative **picture)|通过图片解码创建OH_PictureNative指针。|
|Image_ErrorCode OH_ImageSourceNative_GetDelayTimeList(OH_ImageSourceNative *source, int32_t *delayTimeList, size_t size)|获取图像延迟时间数组。|
|Image_ErrorCode OH_ImageSourceNative_GetImageInfo(OH_ImageSourceNative *source, int32_t index,OH_ImageSource_Info *info)|获取指定序号的图片信息。|
|Image_ErrorCode OH_ImageSourceNative_GetImageProperty(OH_ImageSourceNative *source, Image_String *key,Image_String *value)|获取图片指定属性键的值。|
|Image_ErrorCode OH_ImageSourceNative_GetImagePropertyWithNull(OH_ImageSourceNative *source, Image_String *key,Image_String *value)|获取图像属性值。输出的value.data以字符串结束符结尾。|
|Image_ErrorCode OH_ImageSourceNative_ModifyImageProperty(OH_ImageSourceNative *source, Image_String *key,Image_String *value)|通过指定的键修改图片属性的值。|
|Image_ErrorCode OH_ImageSourceNative_GetFrameCount(OH_ImageSourceNative *source, uint32_t *frameCount)|获取图像帧数。|
|Image_ErrorCode OH_ImageSourceNative_GetSupportedFormats(Image_MimeType **supportedFormats, size_t *length)|获取支持解码的图片格式。|
|Image_ErrorCode OH_ImageSourceNative_Release(OH_ImageSourceNative *source)|释放OH_ImageSourceNative指针。|
|Image_ErrorCode OH_DecodingOptionsForPicture_Create(OH_DecodingOptionsForPicture **options)|创建OH_DecodingOptionsForPicture指针。|
|Image_ErrorCode OH_DecodingOptionsForPicture_GetDesiredAuxiliaryPictures(OH_DecodingOptionsForPicture *options,Image_AuxiliaryPictureType **desiredAuxiliaryPictures, size_t *length)|获取解码时设置的期望辅助图(期望解码出的picture包含的辅助图)。|
|Image_ErrorCode OH_DecodingOptionsForPicture_SetDesiredAuxiliaryPictures(OH_DecodingOptionsForPicture *options,Image_AuxiliaryPictureType *desiredAuxiliaryPictures, size_t length)|设置解码选项中的期望辅助图。|
|Image_ErrorCode OH_DecodingOptionsForPicture_Release(OH_DecodingOptionsForPicture *options)|释放OH_DecodingOptionsForPicture指针。|
枚举类型说明
IMAGE_DYNAMIC_RANGE
enum IMAGE_DYNAMIC_RANGE
描述
解码指定期望动态范围。
起始版本: 12
|枚举项|描述| |–|–| |IMAGE_DYNAMIC_RANGE_AUTO = 0|根据图片自适应处理。| |IMAGE_DYNAMIC_RANGE_SDR = 1|标准动态范围。| |IMAGE_DYNAMIC_RANGE_HDR = 2|高动态范围。|
IMAGE_ALLOCATOR_TYPE
enum IMAGE_ALLOCATOR_TYPE
描述
用于分配PixelMap内存的分配器类型。
起始版本: 15
|枚举项|描述| |–|–| |IMAGE_ALLOCATOR_TYPE_AUTO = 0|由系统决定使用DMA内存或共享内存来创建PixelMap。| |IMAGE_ALLOCATOR_TYPE_DMA = 1|使用DMA内存来创建PixelMap。| |IMAGE_ALLOCATOR_TYPE_SHARE_MEMORY = 2|使用共享内存来创建PixelMap。|
Image_CropAndScaleStrategy
enum Image_CropAndScaleStrategy
描述
在同时指定desiredSize和desiredRegion时执行裁剪和缩放的策略。
如果在配置解码选项OH_DecodingOptions时,未填入参数Image_CropAndScaleStrategy,并且同时设置了desiredRegion和desiredSize,由于系统对于不同图片格式采用的解码算法不同,最终解码效果将略有差异。
例如原始图片大小200x200,传入desiredSize:{width: 150, height: 150},desiredRegion:{x: 0, y: 0, width: 100, height: 100},即预期解码原图左上角1/4区域,最终将pixelMap大小缩放至150x150返回。
对于jpeg、webp图片(部分dng图片解码时会优先解码图片中的jpeg预览图,在此场景下也会被视为jpeg图片格式)会先进行下采样,例如按照7/8下采样,再基于175x175的图片大小进行区域裁剪,因此最终的区域内容稍大于原图的左上角1/4区域。
对于svg图片,由于是矢量图,可以任意缩放不损失清晰度,在解码时会根据desiredSize与原图Size的比例选择缩放比例,在基于缩放后的图片大小进行区域裁剪,因此最终返回的解码区域会有所差异。
针对该场景,建议在解码选项同时设置了desiredRegion与desiredSize时,参数Image_CropAndScaleStrategy应传入CROP_FIRST参数保证效果一致。
起始版本: 18
|枚举项|描述| |–|–| |IMAGE_CROP_AND_SCALE_STRATEGY_SCALE_FIRST = 1|先裁剪,后缩放。| |IMAGE_CROP_AND_SCALE_STRATEGY_CROP_FIRST = 2|先缩放,后裁剪。|
函数说明
OH_ImageSourceInfo_Create()
Image_ErrorCode OH_ImageSourceInfo_Create(OH_ImageSource_Info **info)
描述
创建OH_ImageSource_Info指针。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSource_Info **info|被操作的OH_ImageSource_Info指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceInfo_GetWidth()
Image_ErrorCode OH_ImageSourceInfo_GetWidth(OH_ImageSource_Info *info, uint32_t *width)
描述
获取图片的宽。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSource_Info *info|被操作的OH_ImageSource_Info指针。| |uint32_t *width|图片的宽,单位:像素。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceInfo_GetHeight()
Image_ErrorCode OH_ImageSourceInfo_GetHeight(OH_ImageSource_Info *info, uint32_t *height)
描述
获取图片的高。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSource_Info *info|被操作的OH_ImageSource_Info指针。| |uint32_t *height|图片的高,单位:像素高|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceInfo_GetDynamicRange()
Image_ErrorCode OH_ImageSourceInfo_GetDynamicRange(OH_ImageSource_Info *info, bool *isHdr)
描述
获取图片是否为高动态范围的信息。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSource_Info *info|被操作的OH_ImageSource_Info指针。| |bool *isHdr|是否为hdr的布尔值。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数校验错误。|
OH_ImageSourceInfo_GetMimetype()
Image_ErrorCode OH_ImageSourceInfo_GetMimetype(OH_ImageSource_Info *info, Image_MimeType *mimetype)
描述
获取图片源的MIME类型。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_ImageSource_Info *info|OH_ImageSource_Info指针。| |Image_MimeType *mimetype|图片源的MIME类型。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_SOURCE_INVALID_PARAMETER:参数错误,INFO或者MIME类型为空。|
OH_ImageSourceInfo_Release()
Image_ErrorCode OH_ImageSourceInfo_Release(OH_ImageSource_Info *info)
描述
释放OH_ImageSource_Info指针。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSource_Info *info|被操作的OH_ImageSource_Info指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_Create()
Image_ErrorCode OH_DecodingOptions_Create(OH_DecodingOptions **options)
描述
创建OH_DecodingOptions指针。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions **options|被操作的OH_DecodingOptions指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_GetPixelFormat()
Image_ErrorCode OH_DecodingOptions_GetPixelFormat(OH_DecodingOptions *options,int32_t *pixelFormat)
描述
获取pixel格式。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |int32_t *pixelFormat|pixel格式PIXEL_FORMAT。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_SetPixelFormat()
Image_ErrorCode OH_DecodingOptions_SetPixelFormat(OH_DecodingOptions *options,int32_t pixelFormat)
描述
设置pixel格式。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |int32_t pixelFormat|pixel格式PIXEL_FORMAT。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_GetIndex()
Image_ErrorCode OH_DecodingOptions_GetIndex(OH_DecodingOptions *options, uint32_t *index)
描述
获取解码图片序号。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |uint32_t *index|解码图片序号。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_SetIndex()
Image_ErrorCode OH_DecodingOptions_SetIndex(OH_DecodingOptions *options, uint32_t index)
描述
设置解码图片序号。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |uint32_t index|解码图片序号。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_GetRotate()
Image_ErrorCode OH_DecodingOptions_GetRotate(OH_DecodingOptions *options, float *rotate)
描述
获取旋转角度。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |float *rotate|旋转角度,单位为deg。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_SetRotate()
Image_ErrorCode OH_DecodingOptions_SetRotate(OH_DecodingOptions *options, float rotate)
描述
设置旋转角度。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |float rotate|旋转角度,单位为deg。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_GetDesiredSize()
Image_ErrorCode OH_DecodingOptions_GetDesiredSize(OH_DecodingOptions *options,Image_Size *desiredSize)
描述
获取期望输出大小。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |Image_Size *desiredSize|期望输出大小。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_SetDesiredSize()
Image_ErrorCode OH_DecodingOptions_SetDesiredSize(OH_DecodingOptions *options,Image_Size *desiredSize)
描述
设置期望输出大小。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |Image_Size *desiredSize|期望输出大小。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_GetDesiredRegion()
Image_ErrorCode OH_DecodingOptions_GetDesiredRegion(OH_DecodingOptions *options,Image_Region *desiredRegion)
描述
获取解码区域。
由于对应SetDesiredRegion接口无法满足区域解码诉求,从API 19开始,推荐配套使用OH_DecodingOptions_GetCropRegion接口替代。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |Image_Region *desiredRegion|解码区域。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_SetDesiredRegion()
Image_ErrorCode OH_DecodingOptions_SetDesiredRegion(OH_DecodingOptions *options,Image_Region *desiredRegion)
描述
设置解码区域。
实际解码结果会按照原图解码,无区域解码效果。从API 19开始,推荐使用接口OH_DecodingOptions_SetCropRegion替代。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |Image_Region *desiredRegion|解码区域。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptions_GetDesiredDynamicRange()
Image_ErrorCode OH_DecodingOptions_GetDesiredDynamicRange(OH_DecodingOptions *options,int32_t *desiredDynamicRange)
描述
获取解码时设置的期望动态范围。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |int32_t *desiredDynamicRange|期望的动态范围值IMAGE_DYNAMIC_RANGE。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数校验错误。|
OH_DecodingOptions_SetDesiredDynamicRange()
Image_ErrorCode OH_DecodingOptions_SetDesiredDynamicRange(OH_DecodingOptions *options,int32_t desiredDynamicRange)
描述
设置解码时的期望动态范围。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |int32_t desiredDynamicRange|期望的动态范围值IMAGE_DYNAMIC_RANGE。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数校验错误。|
OH_DecodingOptions_GetDesiredColorSpace()
Image_ErrorCode OH_DecodingOptions_GetDesiredColorSpace(OH_DecodingOptions *options, int32_t *colorSpace)
描述
获取解码参数中设置的色彩空间。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|解码参数。| |int32_t *colorSpace|解码参数中设置的色彩空间,参考ColorSpaceName。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_SOURCE_INVALID_PARAMETER:参数错误。options或colorSpace为空。|
OH_DecodingOptions_SetDesiredColorSpace()
Image_ErrorCode OH_DecodingOptions_SetDesiredColorSpace(OH_DecodingOptions *options, int32_t colorSpace)
描述
设置解码期望得到的色彩空间。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|解码参数。| |int32_t colorSpace|期望的色彩空间,参考ColorSpaceName。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_SOURCE_INVALID_PARAMETER:参数错误。options为空,或者传入了不支持的colorSpace。|
OH_DecodingOptions_SetCropAndScaleStrategy()
Image_ErrorCode OH_DecodingOptions_SetCropAndScaleStrategy(OH_DecodingOptions *options,int32_t cropAndScaleStrategy)
描述
设置解码选项的裁剪和缩放策略。
起始版本: 18
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |int32_t cropAndScaleStrategy|在同时指定desiredSize和desiredRegion时执行裁剪和缩放的策略。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|Image_ErrorCode:
IMAGE_SUCCESS:操作执行成功。
IMAGE_BAD_PARAMETER:options空指针或者cropAndScaleStrategy取值不在Image_CropAndScaleStrategy枚举值定义之中。|
OH_DecodingOptions_GetCropAndScaleStrategy()
Image_ErrorCode OH_DecodingOptions_GetCropAndScaleStrategy(OH_DecodingOptions *options,int32_t *cropAndScaleStrategy)
描述
获取解码选项的裁剪和缩放策略。
起始版本: 18
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。| |int32_t *cropAndScaleStrategy|指向在同时指定desiredSize和desiredRegion时执行裁剪和缩放策略的指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|Image_ErrorCode:
IMAGE_SUCCESS:操作执行成功。
IMAGE_BAD_PARAMETER:options或者cropAndScaleStrategy为空指针。|
OH_DecodingOptions_GetCropRegion()
Image_ErrorCode OH_DecodingOptions_GetCropRegion(OH_DecodingOptions *options, Image_Region *cropRegion)
描述
获取解码参数中的裁剪区域。
起始版本: 19
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|指向解码参数指针。| |Image_Region *cropRegion|指向要裁剪的目标区域指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:操作成功。
IMAGE_SOURCE_INVALID_PARAMETER:options或cropRegion为空。|
OH_DecodingOptions_SetCropRegion()
Image_ErrorCode OH_DecodingOptions_SetCropRegion(OH_DecodingOptions *options, Image_Region *cropRegion)
描述
设置解码参数中的裁剪区域。
起始版本: 19
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|指向解码参数指针。| |Image_Region *cropRegion|指向要裁剪的目标区域指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:操作成功。
IMAGE_SOURCE_INVALID_PARAMETER:options或cropRegion为空。|
OH_DecodingOptions_Release()
Image_ErrorCode OH_DecodingOptions_Release(OH_DecodingOptions *options)
描述
释放OH_DecodingOptions指针。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_DecodingOptions *options|被操作的OH_DecodingOptions指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceNative_CreateFromUri()
Image_ErrorCode OH_ImageSourceNative_CreateFromUri(char *uri, size_t uriSize, OH_ImageSourceNative **res)
描述
通过uri创建OH_ImageSourceNative指针。
起始版本: 12
参数:
|参数项|描述| |–|–| |char *uri|指向图像源URI的指针。只接受文件URI或Base64 URI。当前文件资源只支持绝对路径。| |size_t uriSize|URI长度。| |OH_ImageSourceNative **res|指向c++本地层创建的OH_ImageSourceNative对象的指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。
IMAGE_BAD_SOURCE:解码数据源异常。|
OH_ImageSourceNative_CreateFromFd()
Image_ErrorCode OH_ImageSourceNative_CreateFromFd(int32_t fd, OH_ImageSourceNative **res)
描述
通过fd创建OH_ImageSourceNative指针。
起始版本: 12
参数:
|参数项|描述| |–|–| |int32_t fd|文件描述符fd。| |OH_ImageSourceNative **res|指向c++本地层创建的OH_ImageSourceNative对象的指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceNative_CreateFromData()
Image_ErrorCode OH_ImageSourceNative_CreateFromData(uint8_t *data, size_t dataSize, OH_ImageSourceNative **res)
描述
通过缓冲区数据创建OH_ImageSourceNative指针。
data数据应该是未解码的数据,不要传入类似于RBGA,YUV的像素buffer数据,如果想通过像素buffer数据创建pixelMap,可以调用OH_PixelmapNative_CreatePixelmap这一类接口。
起始版本: 12
参数:
|参数项|描述| |–|–| |uint8_t *data|图像缓冲区数据。| |size_t dataSize|图像缓冲区数据长度。| |OH_ImageSourceNative **res|指向c++本地层创建的OH_ImageSourceNative对象的指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。
IMAGE_BAD_SOURCE:解码数据源异常。|
OH_ImageSourceNative_CreateFromRawFile()
Image_ErrorCode OH_ImageSourceNative_CreateFromRawFile(RawFileDescriptor *rawFile, OH_ImageSourceNative **res)
描述
通过图像资源文件的RawFileDescriptor创建OH_ImageSourceNative指针。
起始版本: 12
参数:
|参数项|描述| |–|–| |RawFileDescriptor *rawFile|指示raw文件的文件描述符。| |OH_ImageSourceNative **res|指向c++本地层创建的OH_ImageSourceNative对象的指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceNative_CreatePixelmap()
Image_ErrorCode OH_ImageSourceNative_CreatePixelmap(OH_ImageSourceNative *source, OH_DecodingOptions *options,OH_PixelmapNative **pixelmap)
描述
通过图片解码参数创建OH_PixelmapNative指针。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSourceNative *source|被操作的OH_ImageSourceNative指针。| |OH_DecodingOptions *options|解码参数。| |OH_PixelmapNative **pixelmap|指向c++本地层创建的OH_PixelmapNative对象的指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceNative_CreatePixelmapUsingAllocator()
Image_ErrorCode OH_ImageSourceNative_CreatePixelmapUsingAllocator(OH_ImageSourceNative *source,OH_DecodingOptions *options, IMAGE_ALLOCATOR_TYPE allocator, OH_PixelmapNative **pixelmap)
描述
根据解码参数创建一个PixelMap,PixelMap使用的内存类型可以通过allocatorType来指定。
默认情况下,系统会根据图像类型、图像大小、平台能力等选择内存类型。在处理通过此接口返回的PixelMap时,请始终考虑步幅(stride)的影响。
起始版本: 15
参数:
|参数项|描述| |–|–| |OH_ImageSourceNative *source|被操作的OH_ImageSourceNative指针。| |OH_DecodingOptions *options|解码参数。| |IMAGE_ALLOCATOR_TYPE allocator|指示返回的PixelMap将使用哪种内存类型。| |OH_PixelmapNative **pixelmap|指向c++本地层创建的OH_PixelmapNative对象的指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。
IMAGE_BAD_SOURCE:数据源异常。
IMAGE_SOURCE_UNSUPPORTED_MIMETYPE:不支持的MIME类型。
IMAGE_SOURCE_TOO_LARGE:图像过大。
IMAGE_SOURCE_UNSUPPORTED_ALLOCATOR_TYPE:不支持的分配器类型。例如,使用共享内存解码HDR图像,因为只有DMA支持HDR元数据。
IMAGE_SOURCE_UNSUPPORTED_OPTIONS:不支持的选项。例如,无法将图像转换为所需的像素格式。
IMAGE_DECODE_FAILED:解码失败。
IMAGE_SOURCE_ALLOC_FAILED:内存分配失败。|
OH_ImageSourceNative_CreatePixelmapList()
Image_ErrorCode OH_ImageSourceNative_CreatePixelmapList(OH_ImageSourceNative *source, OH_DecodingOptions *options,OH_PixelmapNative *resVecPixMap[], size_t size)
描述
通过图片解码参数创建OH_PixelmapNative数组。
注意,此接口会一次性解码全部帧,当帧数过多或单帧图像过大时,会占用较大内存,造成系统内存紧张,此种情况推荐使用Image组件显示动图,Image组件采用逐帧解码,占用内存比此接口少。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSourceNative *source|被操作的OH_ImageSourceNative指针。| |OH_DecodingOptions *options|解码参数。| |OH_PixelmapNative *resVecPixMap[]|指向c++本地层创建的OH_PixelmapNative对象的指针数组。| |size_t size|数组长度。 用户可以使用OH_ImageSourceNative_GetFrameCount获取。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。
IMAGE_UNSUPPORTED_OPERATION:操作不支持。|
OH_ImageSourceNative_CreatePicture()
Image_ErrorCode OH_ImageSourceNative_CreatePicture(OH_ImageSourceNative *source, OH_DecodingOptionsForPicture *options,OH_PictureNative **picture)
描述
通过图片解码创建OH_PictureNative指针。
起始版本: 13
参数:
|参数项|描述| |–|–| |OH_ImageSourceNative *source|被操作的OH_ImageSourceNative指针。| |OH_DecodingOptionsForPicture *options|解码参数。| |OH_PictureNative **picture|指向c++本地层创建的OH_PictureNative对象的指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。
IMAGE_DECODE_FAILED:解码失败。|
OH_ImageSourceNative_GetDelayTimeList()
Image_ErrorCode OH_ImageSourceNative_GetDelayTimeList(OH_ImageSourceNative *source, int32_t *delayTimeList, size_t size)
描述
获取图像延迟时间数组。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSourceNative *source|被操作的OH_ImageSourceNative指针。| |int32_t *delayTimeList|指向获得的延迟时间列表的指针。它不能是空指针。| |size_t size|delayTimeList的大小。用户可以从OH_ImageSourceNative_GetFrameCount获得大小。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceNative_GetImageInfo()
Image_ErrorCode OH_ImageSourceNative_GetImageInfo(OH_ImageSourceNative *source, int32_t index,OH_ImageSource_Info *info)
描述
获取指定序号的图片信息。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSourceNative *source|被操作的OH_ImageSourceNative指针。| |int32_t index|图片序号。对GIF图片可传入[0,N-1],N表示GIF的帧数。对只有一帧数据的图片格式,可传入0。| |OH_ImageSource_Info *info|指向获取的图像源信息的OH_ImageSource_Info指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceNative_GetImageProperty()
Image_ErrorCode OH_ImageSourceNative_GetImageProperty(OH_ImageSourceNative *source, Image_String *key,Image_String *value)
描述
获取图片指定属性键的值。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSourceNative *source|被操作的OH_ImageSourceNative指针。| |Image_String *key|指示指向属性的指针,详情请参见Image_String,key的取值范围参考OHOS_IMAGE_PROPERTY_XXX定义。使用ImageSource后释放,参见OH_ImageSourceNative_Release。| |Image_String *value|指向获取的值的指针。用户可以传入一个空指针和零大小,我们将分配内存,但用户必须在使用后释放内存。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceNative_GetImagePropertyWithNull()
Image_ErrorCode OH_ImageSourceNative_GetImagePropertyWithNull(OH_ImageSourceNative *source, Image_String *key,Image_String *value)
描述
获取图像属性值。输出的value.data以字符串结束符结尾。
起始版本: 19
参数:
|参数项|描述| |–|–| |OH_ImageSourceNative *source|指向ImageSource的指针。| |Image_String *key|指向属性键的指针。| |Image_String *value|指向属性值的指针(输出参数)。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_SOURCE_INVALID_PARAMETER:source、key或value为空。|
OH_ImageSourceNative_ModifyImageProperty()
Image_ErrorCode OH_ImageSourceNative_ModifyImageProperty(OH_ImageSourceNative *source, Image_String *key,Image_String *value)
描述
通过指定的键修改图片属性的值。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSourceNative *source|被操作的OH_ImageSourceNative指针。| |Image_String *key|指向属性键的指针,详情请参见Image_String,key是一个exif常数。使用ImageSource后释放,参见OH_ImageSourceNative_Release。| |Image_String *value|需要修改的属性值。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceNative_GetFrameCount()
Image_ErrorCode OH_ImageSourceNative_GetFrameCount(OH_ImageSourceNative *source, uint32_t *frameCount)
描述
获取图像帧数。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSourceNative *source|被操作的OH_ImageSourceNative指针。| |uint32_t *frameCount|图像帧数。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_ImageSourceNative_GetSupportedFormats()
Image_ErrorCode OH_ImageSourceNative_GetSupportedFormats(Image_MimeType **supportedFormats, size_t *length)
描述
获取支持解码的图片格式。
起始版本: 20
参数:
|参数项|描述| |–|–| |Image_MimeType **supportedFormats|支持解码的图片格式。| |size_t *length|数组长度。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:操作成功。
IMAGE_SOURCE_INVALID_PARAMETER:参数异常,supportedFormats或length为空。|
OH_ImageSourceNative_Release()
Image_ErrorCode OH_ImageSourceNative_Release(OH_ImageSourceNative *source)
描述
释放OH_ImageSourceNative指针。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_ImageSourceNative *source|要释放的OH_ImageSourceNative指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptionsForPicture_Create()
Image_ErrorCode OH_DecodingOptionsForPicture_Create(OH_DecodingOptionsForPicture **options)
描述
创建OH_DecodingOptionsForPicture指针。
起始版本: 13
参数:
|参数项|描述| |–|–| |OH_DecodingOptionsForPicture **options|被操作的OH_DecodingOptionsForPicture指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptionsForPicture_GetDesiredAuxiliaryPictures()
Image_ErrorCode OH_DecodingOptionsForPicture_GetDesiredAuxiliaryPictures(OH_DecodingOptionsForPicture *options,Image_AuxiliaryPictureType **desiredAuxiliaryPictures, size_t *length)
描述
获取解码时设置的期望辅助图(期望解码出的picture包含的辅助图)。
起始版本: 13
参数:
|参数项|描述| |–|–| |OH_DecodingOptionsForPicture *options|被操作的OH_DecodingOptionsForPicture指针。| |Image_AuxiliaryPictureType **desiredAuxiliaryPictures|解码选项中的期望辅助图。| |size_t *length|期望辅助图长度。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptionsForPicture_SetDesiredAuxiliaryPictures()
Image_ErrorCode OH_DecodingOptionsForPicture_SetDesiredAuxiliaryPictures(OH_DecodingOptionsForPicture *options,Image_AuxiliaryPictureType *desiredAuxiliaryPictures, size_t length)
描述
设置解码选项中的期望辅助图。
起始版本: 13
参数:
|参数项|描述| |–|–| |OH_DecodingOptionsForPicture *options|被操作的OH_DecodingOptionsForPicture指针。| |Image_AuxiliaryPictureType *desiredAuxiliaryPictures|将要设置的期望辅助图。| |size_t length|期望辅助图长度。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
OH_DecodingOptionsForPicture_Release()
Image_ErrorCode OH_DecodingOptionsForPicture_Release(OH_DecodingOptionsForPicture *options)
描述
释放OH_DecodingOptionsForPicture指针。
起始版本: 13
参数:
|参数项|描述| |–|–| |OH_DecodingOptionsForPicture *options|要释放的OH_DecodingOptionsForPicture指针。|
返回:
|类型|说明|
|–|–|
|Image_ErrorCode|IMAGE_SUCCESS:执行成功。
IMAGE_BAD_PARAMETER:参数错误。|
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Interface (AuxiliaryPicture)
harmony 鸿蒙Interface (ImageCreator)
harmony 鸿蒙Interface (ImagePacker)
harmony 鸿蒙Interface (ImageReceiver)
harmony 鸿蒙Interface (ImageSource)
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦