方法:从文件加载数据
int LibRaw :: open_datastream(LibRaw_abstract_datastream * stream)
打开包含RAW数据的数据流,从中读取元数据(EXIF),并填充以下结构:
- imgdata.idata(libraw_iparams_t),
- imgdata.sizes(libraw_image_sizes_t),
- imgdata.color(libraw_colordata_t),
- imgdata.other(libraw_imgother_t),和
- imgdata.thumbnail(libraw_thumbnail_t)。
该函数根据返回代码约定返回一个整数:如果任何系统调用返回错误,则为正数;如果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立即被销毁。
该函数根据返回代码约定返回一个整数:如果任何系统调用返回错误,则为正数;如果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错误列表)。