【LibRaw】原始图像解码库介绍(四)——常量

常量

枚举LibRaw_errors:错误代码

返回整数的所有函数必须返回errno或以下错误代码之一(另请参阅错误代码约定)。

致命错误(返回此类错误代码意味着必须终止文件处理,因为数据结构的状态未知)。

LIBRAW_UNSUFFICIENT_MEMORY
尝试从系统获取内存失败。
将释放所有已分配的资源,将调用 recycle(),并且“创建后”将立即将LibRaw对象置于状态。
LIBRAW_DATA_ERROR
数据解包期间出现了致命错误。
将释放所有已分配的资源,将调用 recycle(),并且“创建后”将立即将LibRaw对象置于状态。
LIBRAW_IO_ERROR
文件读取过程中出现致命错误(遇到文件过早结束或文件损坏)。
将释放所有已分配的资源,将调用 recycle(),并且“创建后”将立即将LibRaw对象置于状态。
LIBRAW_CANCELLED_BY_CALLBACK
由于调用应用程序需求而导致处理被取消(通过从 进程回调返回非零代码)。
将释放所有已分配的资源,将调用 recycle(),并且“创建后”将立即将LibRaw对象置于状态。
LIBRAW_BAD_CROP
通过params.cropbox []设置不正确的裁剪坐标:裁剪矩形的左上角位于图像外部。处理将被取消,所有已分配的资源将被释放,将调用 recycle(),并且LibRaw对象将在“创建后立即”进入状态。

非致命错误

LIBRAW_SUCCESS = 0
没有错误; 功能已成功终止。
LIBRAW_UNSPECIFIED_ERROR
遇到未知错误。永远不应该生成此代码。
LIBRAW_FILE_UNSUPPORTED
不支持的文件格式(尝试打开程序未知的RAW文件)。
LIBRAW_REQUEST_FOR_NONEXISTENT_IMAGE
尝试检索数据文件中缺少数字的RAW图像(仅适用于支持在文件中存储多个图像的格式)。
LIBRAW_OUT_OF_ORDER_CALL
已经以错误的顺序调用API函数(例如,在 open_file  ()之前的 unpack())或者前一个阶段以错误结束(例如,在 open_file()返回错误之后调用 unpack())。
LIBRAW_NO_THUMBNAIL
尝试从不包含预览的文件中检索缩略图时返回。
LIBRAW_UNSUPPORTED_THUMBNAIL
RAW文件包含不支持格式的预览。

enum LibRaw_decoder_flags - RAW数据格式描述

根据给定数据格式的功能,具有RAW数据的缓冲区可能具有不同的布局:

LIBRAW_DECODER_HASCURVE
如果解码器使用RAW色调曲线并且在调用解码器之前可以修改曲线数据(即,在解码器内不读取或计算曲线值),则设置该标志。
LIBRAW_DECODER_SONYARW2
如果文件格式为Sony ARW2.3,则设置此标志,因此sony_arw2_options适用。
LIBRAW_DECODER_TRYRAWSPEED
如果RawSpeed库(可能)支持文件格式,则设置此标志,因此unpack()将尝试使用它。
LIBRAW_DECODER_FIXEDMAXC
不要对此数据格式使用自动最大计算。
LIBRAW_DECODER_OWNALLOC
解码器分配数据,不需要将分配的内存传递给解码器。

枚举LibRaw_progress:LibRaw对象的当前状态

LibRaw :: imgdata.progress_flags包含一个位掩码,用于描述已执行的所有文件处理阶段。

文件打开和RAW数据提取阶段。

LIBRAW_PROGRESS_START = 0
刚刚创建的对象,没有执行任何处理。
LIBRAW_PROGRESS_OPEN
要处理的文件已打开。
LIBRAW_PROGRESS_IDENTIFY
执行数据识别,识别格式,提取元数据。
LIBRAW_PROGRESS_SIZE_ADJUST
调整了数据大小(对于需要进行此类调整的文件,即来自柯达相机的某些文件)。
LIBRAW_PROGRESS_LOAD_RAW
已加载RAW数据。

在使用从dcraw中获取的图像处理期间设置以下标志。

LIBRAW_PROGRESS_RAW2_IMAGE
imgdata.image数组已分配并填充数据。
LIBRAW_PROGRESS_REMOVE_ZEROES
删除需要移除的相机的零值(Panasonic相机)。
LIBRAW_PROGRESS_BAD_PIXELS
删除了坏(死)像素。
LIBRAW_PROGRESS_DARK_FRAME
从RAW数据中减去暗帧。
LIBRAW_PROGRESS_FOVEON_INTERPOLATE
执行带有Foveon传感器的摄像机的插值。
LIBRAW_PROGRESS_SCALE_COLORS
进行白平衡。
LIBRAW_PROGRESS_PRE_INTERPOLATE
执行图像尺寸缩小(对于half_size模式),以及在存在第二通道且第一通道不存在的点处将第二绿色通道复制到第一通道。
LIBRAW_PROGRESS_INTERPOLATE
插值(debayer)执行。
LIBRAW_PROGRESS_MIX_GREEN
执行绿色通道的平均值。
LIBRAW_PROGRESS_MEDIAN_FILTER
进行中位数过滤。
LIBRAW_PROGRESS_HIGHLIGHTS
处理突出显示。
LIBRAW_PROGRESS_FUJI_ROTATE
对于来自富士相机的图像,执行旋转(或调整adjust_sizes_info_only())。
LIBRAW_PROGRESS_FLIP
使用旋转相机拍摄的图像重新计算尺寸(sizes.iwidth / sizes.iheight交换)。
LIBRAW_PROGRESS_CONVERT_RGB
转换为输出RGB空间执行。
LIBRAW_PROGRESS_STRETCH
对于具有非方形像素的相机,图像尺寸已更改。
LIBRAW_PROGRESS_STAGE17 - LIBRAW_PROGRESS_STAGE27
保留可能出现的其他处理阶段。

在加载缩略图期间设置以下标志。

LIBRAW_PROGRESS_THUMB_LOAD已加载缩略图数据(对于柯达相机,还进行了必要的转换)。LIBRAW_PROGRESS_TRESERVED1 - LIBRAW_PROGRESS_TRESERVED3保留用于将来可能的处理阶段。

enum LibRaw_whitebalance_code - 标准光源的名称

LIBRAW_WBI_lightsource_name,其中名称和值是标准EXIF光源。

enum LibRaw_camera_mounts - 摄像机支架的代码

常量名称(例如LIBRAW_MOUNT_Leica_SL)不言而喻

枚举LibRaw_runtime_capabilities - 在构建时设置的libraw功能

  • LIBRAW_CAPS_RAWSPEED - 使用RawSpeed编译
  • LIBRAW_CAPS_DNGSDK - 使用Adobe DNG SDK编译
  • LIBRAW_CAPS_DEMOSAICSGPL2 - 使用Demosaic Pack GPL2编译
  • LIBRAW_CAPS_DEMOSAICSGPL3 - 使用Demosaic Pack GPL3编译

枚举LibRaw_thumbnail_formats:缩略图数据格式

缩略图数据格式写在imgdata.thumbnail.tformat数据字段中。
目前LibRaw知道四种缩略图格式,其中两种是解压缩的:

LIBRAW_THUMBNAIL_UNKNOWN
格式未知或尚未阅读的缩略图。
LIBRAW_THUMBNAIL_JPEG
缩略图缓冲区包含一个JPEG文件(按“原样”从RAW文件中读取,不对其执行任何操作)。
LIBRAW_THUMBNAIL_BITMAP
缩略图缓冲区包含经过伽马调整的RGB位图(对于柯达相机,执行伽马校正时允许最大值,并根据相机设置设置白平衡)。
在这种格式中,图像的每个像素由8位RGB三元组表示。
LIBRAW_THUMBNAIL_LAYER
数据格式目前在打开RAW文件时被识别但不受支持:未解压缩到LibRaw :: unpack_thumb。
LIBRAW_THUMBNAIL_ROLLEI
数据格式目前在打开RAW文件时被识别但不受支持:未解压缩到LibRaw :: unpack_thumb。

RAW数据处理期间的非标准情况(警告)

图像处理过程中出现的一些可疑情况并不是致命的,但可能会影响数据检索或后处理的结果。通过在imgdata.process_warnings字段中设置一个位来指示这些状态。

LIBRAW_WARN_FOVEON_NOMATRIX
仅适用于具有Foveon的相机:提取其中一个数据矩阵失败。
LIBRAW_WARN_FOVEON_INVALIDWB
仅适用于使用Foveon的相机:白平衡数据的提取失败。
LIBRAW_WARN_BAD_CAMERA_WB
后处理必须使用相机的白平衡,但此平衡不适合使用。
LIBRAW_WARN_NO_METADATA
仅适用于从外部JPEG文件中获取元数据的摄像机:元数据提取失败。
LIBRAW_WARN_NO_JPEGLIB
仅适用于P&S柯达相机:JPEG格式的数据。同时,open_file()将返回LIBRAW_FILE_UNSUPPORTED。
LIBRAW_WARN_NO_EMBEDDED_PROFILE
(仅当编译LCMS支持时)。调用者设置嵌入式输入配置文件使用,但RAW中不存在此类配置文件。
LIBRAW_WARN_NO_INPUT_PROFILE
(仅当编译LCMS支持时)。打开输入配置文件ICC文件时出错。
LIBRAW_WARN_BAD_OUTPUT_PROFILE
(仅当编译LCMS支持时)。打开输出配置文件ICC文件时出错。
LIBRAW_WARN_NO_BADPIXELMAP
打开坏像素映射文件时出错。
LIBRAW_WARN_BAD_DARKFRAME_FILE
打开暗帧文件时出错。
LIBRAW_WARN_BAD_DARKFRAME_DIM
暗帧文件的尺寸与处理的RAW文件不同,或格式错误。暗帧应采用16位PGM格式(可以使用simple_dcraw -4 -D生成)。
LIBRAW_WARN_RAWSPEED_PROBLEM
在RawSpeed解压缩器中检测到问题。LibRaw自己的解码器处理的图像数据。
LIBRAW_WARN_RAWSPEED_UNSUPPORTED
RawSpeed不支持此文件(尽管存在兼容的解码器)。
LIBRAW_WARN_RAWSPEED_PROCESSED
不是警告,而是信息。该文件由RawSpeed解码。
LIBRAW_WARN_FALLBACK_TO_AHD
设置了不正确/不支持的user_qual,而是使用AHD demosaic。

enum LibRaw_image_formats - 可能的数据类型,包含在libraw_processed_image_t结构中

libraw_processed_image_t结构的type字段可能具有以下值之一:

LIBRAW_IMAGE_BITMAP
该结构包含RGB位图,libraw_processed_image_t的其他字段中描述的元数据。
LIBRAW_IMAGE_JPEG
libraw_processed_image_t结构包含JPEG图像(在内存中)。只有data_size字段才有意义。

猜你喜欢

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