【LibRaw】原始图像解码库介绍(七)——C++ API之方法:从文件加载数据

方法:从文件加载数据

int LibRaw :: open_datastream(LibRaw_abstract_datastream * stream)

打开包含RAW数据的数据流,从中读取元数据(EXIF),并填充以下结构:

该函数根据返回代码约定返回一个整数:如果任何系统调用返回错误,则为正数;如果LibRaw中存在错误情况,则返回负数(来自LibRaw错误列表)。

在文件打开之前,始终调用recycle() ; 因此,如果在批处理模式下处理多个图像,则不需要在每个处理周期结束时调用recycle()。

输入数据:指向对象的指针,派生自LibRaw_abstract_datastream类。应初始化此对象并准备阅读。在使用后调用应用程序时应销毁此对象。

int LibRaw :: open_file(const char * filename [,INT64 bigfile_size])

仅限Win32:int LibRaw :: open_file(const wchar_t * filename [,INT64 bigfile_size])

创建一个LibRaw_file_datastream对象,调用open_datastream()如果成功,则设置内部标志,该信号表示在recycle()上销毁内部数据流对象失败时,刚创建的file_datastream立即被销毁。

第二个可选参数bigfile_size控制用于文件操作的后台I / O接口。对于小于bigfile_size的文件,将使用LibRaw_file_datastream,否则使用LibRaw_bigfile_datastream

该函数根据返回代码约定返回一个整数:如果任何系统调用返回错误,则为正数;如果LibRaw中存在错误情况,则返回负数(来自LibRaw错误列表)。

int LibRaw :: open_buffer(void * buffer,size_t bufsize)

创建了一个LibRaw_buffer_datastream对象,调用open_datastream()如果成功,则设置内部标志,该信号表示在recycle()上销毁内部数据流对象失败时,刚创建的file_datastream立即被销毁。

扫描二维码关注公众号,回复: 1867242 查看本文章

该函数根据返回代码约定返回一个整数:如果任何系统调用返回错误,则为正数;如果LibRaw中存在错误情况,则返回负数(来自LibRaw错误列表)。

int LibRaw :: unpack(void)

解压缩图像的RAW文件,计算黑电平(不适用于所有格式)。结果放在imgdata.image中。

数据读取有时(不经常)受imgdata.params(libraw_output_params_t)中的设置影响请参阅API说明了解详情。

该函数根据返回代码约定返回一个整数:如果任何系统调用返回错误,则为正数;如果LibRaw中存在错误情况,则返回负数(来自LibRaw错误列表)。

int LibRaw :: unpack_thumb(void)

读取(或解包)图像预览(缩略图),将结果放入imgdata.thumbnail.thumb缓冲区。
JPEG预览被放入此缓冲区而不进行任何更改(使用标题等)。其他预览格式以解压缩的位图图像的形式放入缓冲区(三个组件,每个组件8位)。
缩略图格式写入imgdata.thumbnail.tformat字段; 有关可能的值,请参阅常量和数据结构的说明

该函数根据返回代码约定返回一个整数:如果任何系统调用返回错误,则为正数;如果LibRaw中存在错误情况,则返回负数(来自LibRaw错误列表)。

猜你喜欢

转载自blog.csdn.net/mr_sandman1994/article/details/80896670
今日推荐