| <html> | |
| <head> | |
| <meta http-equiv="content-type" content="text/html; charset=windows-1252"> | |
| <title>LibRaw: Data Structures and Constants</title> | |
| </head> | |
| <body> | |
| <p>LibRaw: Data Structures and Constants <a href="index.html"> [back to | |
| Index] </a></p> | |
| <h1>LibRaw: Data Structures and Constants</h1> | |
| <p>LibRaw data structures are defined in header file libraw/libraw_types.h <br> | |
| Constants used in its work are defined in file libraw/libraw_const.h</p> | |
| <h2>Contents:</h2> | |
| <ol> | |
| <li><a href="#datastruct"> Data structures </a> | |
| <ol> | |
| <li><a href="#libraw_data_t"> libraw_data_t: Main Data Structure in | |
| LibRaw </a></li> | |
| <li><a href="#libraw_iparams_t"> Structure libraw_iparams_t: Main | |
| Parameters of the Image </a></li> | |
| <li><a href="#libraw_image_sizes_t"> Structure libraw_image_sizes_t: | |
| Image Dimensions </a></li> | |
| <li><a href="#libraw_colordata_t"> Structure libraw_colordata_t: Color | |
| Information </a></li> | |
| <li><a href="#libraw_imgother_t"> Structure libraw_imgother_t: Other | |
| Parameters of the Image </a></li> | |
| <li><a href="#libraw_rawdata_t"> Structure libraw_rawdata_t: holds | |
| unpacked RAW data </a></li> | |
| <li><a href="#libraw_thumbnail_t"> Structure libraw_thumbnail_t: | |
| Description of extracted Thumbnail </a></li> | |
| <li><a href="#libraw_thumbnail_list_t"> Structure | |
| libraw_thumbnail_list_t: Description of file's thumbnail list</a></li> | |
| <li><a href="#libraw_lensinfo_t"> Structure libraw_lensinfo_t - lens | |
| data, extracted from EXIF/Makernotes </a></li> | |
| <li><a href="#libraw_raw_unpack_params_t"> Structure | |
| libraw_raw_unpack_params_t: metadata and raw decoding options and | |
| flags</a></li> | |
| <li><a href="#libraw_output_params_t"> Structure | |
| libraw_output_params_t: Management of dcraw-style postprocessing </a></li> | |
| <li><a href="#libraw_callbacks_t">Structure libraw_callbacks_t: | |
| user-settable callbacks</a> </li> | |
| <li><a href="#libraw_processed_image_t"> Structure | |
| libraw_processed_image_t - result set for | |
| dcraw_make_mem_image()/dcraw_make_mem_thumb() functions </a></li> | |
| </ol> | |
| </li> | |
| <li><a href="#datastream"> Input abstraction layer </a> | |
| <ul> | |
| <li><a href="#datastream_data"> Data fields </a></li> | |
| </ul> | |
| </li> | |
| <li><a href="#const"> Constants </a> | |
| <ol> | |
| <li><a href="#LibRaw_errors"> enum LibRaw_errors: Error Codes </a></li> | |
| <li><a href="#decoder_flags"> enum LibRaw_decoder_flags - RAW data | |
| format description </a></li> | |
| <li><a href="#progress"> enum LibRaw_progress: Current State of LibRaw | |
| Object </a></li> | |
| <li><a href="#LibRaw_thumbnail_formats"> enum | |
| LibRaw_thumbnail_formats: Thumbnail Data Formats </a></li> | |
| <li><a href="#warnings"> Nonstandard Situations (Warnings) during RAW | |
| Data Processing </a></li> | |
| <li><a href="#LibRaw_image_formats"> enum LibRaw_image_formats - | |
| possible types of data, contains in libraw_processed_image_t | |
| structure</a></li> | |
| <li><a href="#LibRaw_processing_options">enum | |
| LibRaw_processing_options - flags that affects extracted RAW data</a></li> | |
| <li><a href="#LibRaw_rawspecial_t">enum LibRaw_rawspecial_t - special | |
| raw extraction modes</a></li> | |
| </ol> | |
| </li> | |
| </ol> | |
| <p><a name="datastruct"></a></p> | |
| <h2>Data Structures</h2> | |
| <p><a name="libraw_data_t"></a></p> | |
| <h3>libraw_data_t: Main Data Structure of LibRaw</h3> | |
| <p>Structure libraw_data_t is a "wrapping" for data structures accessible to | |
| the user of the library. <br> | |
| When one uses C++ API, it is accessible as LibRaw::imgdata | |
| (class_instance.imgdata). The data in this structure appear after a file | |
| is opened through open_file (and other open_ calls), except for the image | |
| itself (filled by unpack()) and data containing the preview information | |
| (filled by calling unpack_thumb()). </p> | |
| <h4>Data fields:</h4> | |
| <dl> | |
| <dt><strong> unsigned int progress_flags; </strong></dt> | |
| <dd>This field records the past <a href="#progress"> phases of image | |
| processing </a> .</dd> | |
| <dt><strong> unsigned int process_warnings; </strong></dt> | |
| <dd>This field records <a href="#warnings"> suspicious situations | |
| (warnings) </a> that have emerged during image processing.</dd> | |
| <dt><strong> libraw_iparams_t idata; </strong></dt> | |
| <dd>The structure describes the main image parameters retrieved from the | |
| RAW file. Fields of this structure are described in detail <a href="#libraw_iparams_t"> | |
| below </a> .</dd> | |
| <dt><strong> libraw_image_sizes_t sizes; </strong></dt> | |
| <dd>The structure describes the geometrical parameters of the image. | |
| Fields of this structure are described in detail <a href="#libraw_image_sizes_t"> | |
| below </a> .</dd> | |
| <dt><strong> libraw_lensinfo_t lens; </strong></dt> | |
| <dd>The structure describes lens used for the shot. Fields of this | |
| structure are described in detail <a href="#libraw_lensinfo_t"> below </a> | |
| .</dd> | |
| <dt><strong> libraw_makernotes_t makernotes; </strong></dt> | |
| <dd>The structure contains camera/vendor specific metadata extracted from | |
| file. No description provided, sorry, if you're interested in particular | |
| tag/camera/vendor - use Exiftool documentation as a reference</dd> | |
| <dt><strong> libraw_colordata_t color; </strong></dt> | |
| <dd>The structure contains color data retrieved from the file. Fields of | |
| this structure are described in detail <a href="#libraw_colordata_t"> | |
| below </a> .</dd> | |
| <dt><strong> libraw_imgother_t other; </strong></dt> | |
| <dd>Data structure for information purposes: it contains the image | |
| parameters that have been extracted from the file but are not needed in | |
| further file processing. Fields of this structure are described in | |
| detail <a href="#libraw_imgother_t"> below </a> .</dd> | |
| <dt><strong> libraw_thumbnail_t thumbnail; </strong></dt> | |
| <dd>Data structure containing information on the preview and the preview | |
| data themselves. All fields of this structure but thumbnail itself are | |
| filled when open_file() is called. Thumbnail read by unpack_thumb() | |
| call. The fields are described in detail <a href="#libraw_thumbnail_t"> | |
| below </a> .</dd> | |
| <dt><strong> libraw_rawdata_t rawdata; </strong></dt> | |
| <dd>Data structure with pointer to raw-data buffer. Details are described | |
| <a href="#libraw_rawdata_t"> below </a> .</dd> | |
| <dt><strong> ushort (*image)[4]; </strong></dt> | |
| <dd>The memory area that contains the image pixels per se. It is filled | |
| when raw2image() or dcraw_process() is called.</dd> | |
| <dt><strong> libraw_output_params_t params; </strong></dt> | |
| <dd>Data structure intended for management of image postprocessing (using | |
| the dcraw emulator). Fields of this structure are described in detail <a | |
| href="#libraw_iparams_t"> below </a> .</dd> | |
| <dt>libraw_callbacks_t callbacks;</dt> | |
| <dd><a href="#libraw_callbacks_t">user-settable callbacks</a> </dd> | |
| </dl> | |
| <p><a name="libraw_iparams_t"></a></p> | |
| <h3>Structure libraw_iparams_t: Main Parameters of the Image</h3> | |
| <dl> | |
| <dt><strong> char make[64]; </strong></dt> | |
| <dd>Camera manufacturer.</dd> | |
| <dt><strong> char model[64]; </strong></dt> | |
| <dd>Camera model.</dd> | |
| <dt><b>normalized_make[64]</b></dt> | |
| <dd> There is a huge number of identical cameras sold under different | |
| names, depending on the market (e.g. multiple Panasonic or Canon models) | |
| and even some identical cameras sold under different brands (Panasonic | |
| -> Leica, Sony -> Hasselblad). normalized_make contains primary | |
| vendor name (e.g. Panasonic for Leica re-branded cameras). </dd> | |
| <dt><b>normalized_model[64]</b></dt> | |
| <dd> Primary camera model name. </dd> | |
| <dt><b>unsigned maker_index</b></dt> | |
| <dd>Primary vendor name in indexed form (enum LibRaw_cameramaker_index, | |
| LIBRAW_CAMERAMAKER_* constant) </dd> | |
| <dt><strong> char software[64]; </strong></dt> | |
| <dd>Softwary name/version (mostly for DNG files, to distinguish in-camera | |
| DNGs from Adobe DNG Converter produced ones).</dd> | |
| <dt><strong> unsigned raw_count; </strong></dt> | |
| <dd>Number of RAW images in file (0 means that the file has not been | |
| recognized).</dd> | |
| <dt><strong> unsigned is_foveon; </strong></dt> | |
| <dd>Nonzero for Sigma Foveon images</dd> | |
| <dt><strong> unsigned dng_version; </strong></dt> | |
| <dd>DNG version (for the DNG format).</dd> | |
| <dt><strong> int colors; </strong></dt> | |
| <dd>Number of colors in the file.</dd> | |
| <dt><strong> unsigned filters; </strong></dt> | |
| <dd>Bit mask describing the order of color pixels in the matrix (0 for | |
| full-color images). 32 bits of this field describe 16 pixels (8 rows | |
| with two pixels in each, from left to right and from top to bottom). | |
| Each two bits have values 0 to 3, which correspond to four possible | |
| colors. Convenient work with this field is ensured by the | |
| COLOR(row,column) function, which returns the number of the active color | |
| for a given pixel.<br> | |
| Values less than 1000 are reserved as special cases: | |
| <ul> | |
| <li><strong> 1 </strong> - Leaf Catchlight with 16x16 bayer matrix;</li> | |
| <li><strong> 9 </strong> - Fuji X-Trans (6x6 matrix)</li> | |
| <li>3..8 and 10..999 - are unused.</li> | |
| </ul> | |
| </dd> | |
| <dt><strong> char xtrans[6][6]; </strong></dt> | |
| <dt><strong> char xtrans_abs[6][6]; </strong></dt> | |
| <dd>These matrices contains Fuji X-Trans row/col to color mapping. First | |
| one is relative to visible area, while second is positioned relative to | |
| sensor edges.</dd> | |
| <dt><strong> char cdesc[5]; </strong></dt> | |
| <dd>Description of colors numbered from 0 to 3 (RGBG,RGBE,GMCY, or GBTG).</dd> | |
| <dt><strong> unsigned xmplen; char *xmpdata; </strong></dt> | |
| <dd>XMP packed data length and pointer to extracted XMP packet.</dd> | |
| </dl> | |
| <p><a name="libraw_image_sizes_t"></a></p> | |
| <h3>Structure libraw_image_sizes_t: Image Dimensions</h3> | |
| <p>Structure libraw_image_sizes_t is a collection of all file data that | |
| describe the size of the image. </p> | |
| <h4> Data fields:</h4> | |
| <dl> | |
| <dt><strong> ushort raw_height, raw_width; </strong></dt> | |
| <dd>Full size of RAW image (including the frame) in pixels.</dd> | |
| <dt><strong> ushort height, width; </strong></dt> | |
| <dd>Size of visible ("meaningful") part of the image (without the frame).</dd> | |
| <dt><strong> ushort top_margin, left_margin; </strong></dt> | |
| <dd>Coordinates of the top left corner of the frame (the second corner is | |
| calculated from the full size of the image and size of its visible | |
| part).</dd> | |
| <dt><strong> ushort iheight, iwidth; </strong></dt> | |
| <dd>Size of the output image (may differ from height/width for cameras | |
| that require image rotation or have non-square pixels).</dd> | |
| <dt><strong> unsigned raw_pitch; </strong></dt> | |
| <dd>Full size of raw data row <strong> in bytes </strong> .</dd> | |
| <dt><strong> double pixel_aspect; </strong></dt> | |
| <dd>Pixel width/height ratio. If it is not unity, scaling of the image | |
| along one of the axes is required during output.</dd> | |
| <dt><strong> int flip; </strong></dt> | |
| <dd>Image orientation (0 if does not require rotation; 3 if requires | |
| 180-deg rotation; 5 if 90 deg counterclockwise, 6 if 90 deg clockwise).</dd> | |
| <dt><strong>libraw_raw_inset_crop_t raw_inset_crops[2];</strong></dt> | |
| <dd>(<strong>libraw_raw_inset_crop_t: </strong>ushort cleft, ctop, | |
| cwidth, cheight;) | |
| <ul> | |
| <li>item at[0] contains standard crop data parsed from camera metadata | |
| (DNG: DefaultCrop* tags, other formats: vendor specific tags)</li> | |
| <li>item at [1] is 'user crop', in particular: <br> | |
| - set by DNG DefaultUserCrop tag <br> | |
| - or set via raw aspect ratio tags (e.g. 16:9 aspect on Fujifilm | |
| cameras) raw_inset_crops[1] is filled only if aspect ratio tags | |
| provides different aspect ratio compared to raw_inset_crops[0]. </li> | |
| </ul> | |
| </dd> | |
| </dl> | |
| <p><a name="libraw_colordata_t"></a></p> | |
| <h3>Structure libraw_colordata_t: Color Information</h3> | |
| <p>Structure libraw_colordata_t unites all color data, both retrieved from | |
| the RAW file and calculated on the basis of the image itself. For | |
| different cameras, there are different ways of color handling. </p> | |
| <h4>Data fields:</h4> | |
| <dl> | |
| <dt><strong> ushort curve[0x10000]; </strong></dt> | |
| <dd>Camera tone curve. May be read from file as is, or calculated, | |
| depending on file format;</dd> | |
| <dt><strong> unsigned black; </strong></dt> | |
| <dd>Black level. Depending on the camera, it may be zero (this means that | |
| black has been subtracted at the unpacking stage or by the camera | |
| itself), calculated at the unpacking stage, read from the RAW file, or | |
| hardcoded.</dd> | |
| <dt><strong> unsigned cblack[4104]; </strong></dt> | |
| <dd>Per-channel black level correction. First 4 values are per-channel | |
| correction, next two are black level pattern block size, than | |
| cblack[4]*cblack[5] correction values (for indexes | |
| [6....6+cblack[4]*cblack[5]).</dd> | |
| <dt><strong> unsigned data_maximum; </strong></dt> | |
| <dd>Maximum pixel value in current file. Calculated at raw2image or | |
| dcraw_process() calls.</dd> | |
| <dt><strong> unsigned maximum; </strong></dt> | |
| <dd>Maximum pixel value. Calculated from the data for most cameras, | |
| hardcoded for others. This value may be changed on postprocessing stage | |
| (when black subtraction performed) and by automated maximum adjustment | |
| (this adjustment performed if <strong> params.adjust_maximum_thr </strong> | |
| is set to nonzero).</dd> | |
| <dt><strong> unsigned linear_max[4]; </strong></dt> | |
| <dd>Per-channel linear data maximum read from file metadata. If RAW file | |
| does not contains this data, linear_max[] is set to zero. Black value is | |
| not subtracted</dd> | |
| <dt><strong> float fmaximum; </strong></dt> | |
| <dd>Maximum pixel value in real image for floating data files.</dd> | |
| <dt><strong> float fnorm; </strong></dt> | |
| <dd>Normalization coefficient used while converting floating point raw | |
| data to integer.</dd> | |
| <dt><strong> ushort white[8][8]; </strong></dt> | |
| <dd>Block of white pixels extracted from files CIFF/CRW. Not extracted for | |
| other formats. Used to calculate white balance coefficients.</dd> | |
| <dt><strong> float cam_xyz[4][3]; </strong></dt> | |
| <dd>Camera RGB - XYZ conversion matrix. This matrix is calculated based on internal LibRaw per-camera color data for the specific camera. | |
| It may be unset (filled with zeroes) if color data extracted from a file is used and camera model is not known by LibRaw. | |
| It may not match the rgb_cam matrix if color data extracted from a file is used (see <a href="#libraw_output_params_t">use_camera_matrix</a> setting). | |
| </dd> | |
| <dt><strong> float cam_mul[4]; </strong></dt> | |
| <dd>White balance coefficients (as shot). Either read from file or | |
| calculated.</dd> | |
| <dt><strong> float pre_mul[4]; </strong></dt> | |
| <dd>White balance coefficients for daylight (daylight balance). Either | |
| read from file, or calculated on the basis of file data, or taken from | |
| hardcoded constants.</dd> | |
| <dt><strong> float cmatrix[3][4]; </strong></dt> | |
| <dd>Camera color data read from RAW file (if any)</dd> | |
| <dt><strong> float rgb_cam[3][4]; </strong></dt> | |
| <dd>Camera to sRGB conversion matrix</dd> | |
| <dt><strong> float ccm[3][4]; </strong></dt> | |
| <dd>Camera color correction matrix read from file metadata (uniform matrix | |
| if no such data in file)</dd> | |
| <dt><strong> ph1_t phase_one_data; </strong></dt> | |
| <dd>Color data block that is read for Phase One cameras.</dd> | |
| <dt><strong> float flash_used; </strong></dt> | |
| <dt><strong> float canon_ev; </strong></dt> | |
| <dd>Fields used for white balance calculations (for some P&S Canon | |
| cameras).</dd> | |
| <dt><strong> char model2[64]; </strong></dt> | |
| <dd>Firmware revision (for some cameras).</dd> | |
| <dt><strong> char UniqueCameraModel[64],LocalizedCameraModel[64]; </strong></dt> | |
| <dd>Values from DNG tags with same names.</dd> | |
| <dt><strong> void *profile; </strong></dt> | |
| <dd>Pointer to the retrieved ICC profile (if it is present in the RAW | |
| file).</dd> | |
| <dt><strong> unsigned profile_length; </strong></dt> | |
| <dd>Length of ICC profile in bytes.</dd> | |
| <dt><strong> unsigned black_stat[8]; </strong></dt> | |
| <dd>Black level statistics if calculated from masked area: 4 sum of pixel | |
| values, than 4 pixel counts (per channel).</dd> | |
| <dt><strong> libraw_dng_color_t dng_color[2]; </strong></dt> | |
| <dd>Color data read from DNG: illuminant, calibration matrix and color | |
| matrix for two light sources. (see DNG specs for details).</dd> | |
| <dt><strong>libraw_dng_levels_t dng_levels</strong></dt> | |
| <dd>DNG black/white levels, analog balance, WB for active IFD. See DNG | |
| specs for details.</dd> | |
| <dt><strong>int WB_Coeffs[256][4]</strong></dt> | |
| <dd>Index: EXIF color source value, [i][0..3] WB Coeffs</dd> | |
| <dt><strong>float WBCT_Coeffs[64][5]</strong></dt> | |
| <dd>Color temperature in [i][0], WB coeffs in [i][1..4]</dd> | |
| <dt><strong>int as_shot_wb_applied</strong></dt> | |
| <dd>Set to 1 if WB already applied in camera (multishot modes; small raw)</dd> | |
| <dt><strong>libraw_P1_color_t P1_color[2]</strong></dt> | |
| <dd>Phase-one specific color data</dd> | |
| <dt><strong>unsigned raw_bps</strong></dt> | |
| <dd>RAW bits per pixel (PhaseOne: Raw format used)</dd> | |
| <dt><strong>int ExifColorSpace</strong></dt> | |
| <dd>EXIF color space parsed from EXIF tags: LIBRAW_COLORSPACE_Unknown, | |
| LIBRAW_COLORSPACE_sRGB, or LIBRAW_COLORSPACE_Adobe</dd> | |
| </dl> | |
| <p><a name="libraw_imgother_t"></a></p> | |
| <h3>Structure libraw_imgother_t: Other Parameters of the Image</h3> | |
| <h4>Data fields:</h4> | |
| <dl> | |
| <dt><strong> float iso_speed; </strong></dt> | |
| <dd>ISO sensitivity.</dd> | |
| <dt><strong> float shutter; </strong></dt> | |
| <dd>Shutter speed.</dd> | |
| <dt><strong> float aperture; </strong></dt> | |
| <dd>Aperture.</dd> | |
| <dt><strong> float focal_len; </strong></dt> | |
| <dd>Focal length.</dd> | |
| <dt><strong> time_t timestamp; </strong></dt> | |
| <dd>Date of shooting.</dd> | |
| <dt><strong> unsigned shot_order; </strong></dt> | |
| <dd>Serial number of image.</dd> | |
| <dt><strong> unsigned gpsdata[32]; </strong></dt> | |
| <dd>GPS data (unparsed block, to write to output as is).</dd> | |
| <dt><strong> libraw_gps_info_t parsed_gps; </strong></dt> | |
| <dd>Parsed GPS-data: longitude/latitude/altitude and time stamp.</dd> | |
| <dt><strong> char desc[512]; </strong></dt> | |
| <dd>Image description.</dd> | |
| <dt><strong> char artist[64]; </strong></dt> | |
| <dd>Author of image.</dd> | |
| <dt><strong> float FlashEC; </strong></dt> | |
| <dd>Flash exposure compensation.</dd> | |
| </dl> | |
| <p><a name="libraw_rawdata_t"></a></p> | |
| <h3>Structure libraw_rawdata_t: holds unpacked RAW data</h3> | |
| <p>Structure libraw_rawdata_t holds:</p> | |
| <ul> | |
| <li>RAW-data from sensor, read and unpacked by the <a href="API-CXX.html#unpack"> | |
| unpack() </a> call.</li> | |
| <li>"backup" copy of color and over data modified during postprocessing. | |
| When postprocessing calls repeats, the needed data is restored from this | |
| backup.</li> | |
| </ul> | |
| <h4>Data fields:</h4> | |
| <dl> | |
| <dt>void *raw_alloc;</dt> | |
| <dd>Buffer allocated to hold RAW-data</dd> | |
| <dt><strong> unsigned short *raw_image; </strong></dt> | |
| <dd>Pointer to buffer with one-component (bayer) data.</dd> | |
| <dt><strong> unsigned short (*color3_image)[3]; </strong></dt> | |
| <dd>Pointer to 3-component pixel array.</dd> | |
| <dt><strong> unsigned short (*color4_image)[4]; </strong></dt> | |
| <dd>Pointer to buffer with 4-component pixel data data</dd> | |
| <dt><strong> float *float_image; </strong></dt> | |
| <dd>Pointer to buffer with one-component (bayer) data in FP-format.</dd> | |
| <dt><strong> float (*float3_image)[3]; </strong></dt> | |
| <dd>Pointer to 3-component FP pixel array.</dd> | |
| <dt><strong> float (*float4_image)[4]; </strong></dt> | |
| <dd>Pointer to buffer with 4-component pixel data data</dd> | |
| </dl> | |
| <p>After call to <a href="API-CXX.html#unpack"> unpack() </a> only one of | |
| these fields is non-NULL.</p> | |
| <p>All other fields of this structure are for internal use and should not be | |
| touched by user code. <a name="libraw_thumbnail_t"></a></p> | |
| <h3>Structure libraw_thumbnail_t: Description of Thumbnail</h3> | |
| <p>Structure libraw_thumbnail_t describes all parameters associated with the | |
| preview saved in the RAW file. </p> | |
| <h4>Data fields:</h4> | |
| <dl> | |
| <dt><strong> LibRaw_thumbnail_formats tformat; </strong></dt> | |
| <dd>Thumbnail data format. One of the values among enum <a href="#LibRaw_thumbnail_formats"> | |
| LibRaw_thumbnail_formats </a> .</dd> | |
| <dt><strong> ushort twidth, theight; </strong></dt> | |
| <dd>Dimensions of the preview image in pixels.</dd> | |
| <dt><strong> unsigned tlength; </strong></dt> | |
| <dd>Thumbnail length in bytes.</dd> | |
| <dt><strong> int tcolors; </strong></dt> | |
| <dd>Number of colors in the preview.</dd> | |
| <dt><strong> char *thumb; </strong></dt> | |
| <dd>Pointer to thumbmail, extracted from the data file.</dd> | |
| </dl> | |
| <p><a name="libraw_thumbnail_list_t"></a></p> | |
| <h3>Structure libraw_thumbnail_list_t: thumbnails present in the RAW file</h3> | |
| <p>libraw_thumbnail_list_t holds list of thumbnails (previews) present in | |
| RAW file.</p> | |
| <h4>Data fields:</h4> | |
| <dl> | |
| <dt><strong> int thumbcount;</strong></dt> | |
| <dd>Thumbnail count</dd> | |
| <dt><strong>libraw_thumbnail_item_t thumblist[LIBRAW_THUMBNAIL_MAXCOUNT];</strong></dt> | |
| <dd>Array of <b>libraw_thumbnail_item_t</b>, one for each thumbnail: | |
| <dl> | |
| <dt>enum LibRaw_internal_thumbnail_formats tformat</dt> | |
| <dd>Internal thumbnail format (this field stores thumbnail decoder | |
| needed for thumbnail extraction)</dd> | |
| <dt>ushort twidth, theight</dt> | |
| <dd>Thumbnail image size. Note: these fields may be zero (so, image | |
| size is unknown at parse phase)</dd> | |
| <dt>ushort tflip</dt> | |
| <dd>Thumbnail image rotation, it may differ from main image rotation. | |
| This field may be set to 0xffff, this means 'rotation is not known'</dd> | |
| <dt> unsigned tlength;</dt> | |
| <dd>Thumbnail on-disk data size</dd> | |
| <dt>unsigned tmisc;</dt> | |
| <dd>Bits per pixel and color count: (color << 5) | bits </dd> | |
| <dt> INT64 toffset;</dt> | |
| <dd>Thumbnail data offset in file</dd> | |
| </dl> | |
| </dd> | |
| </dl> | |
| <p> Note: even if no thumbnails were found in TIFF/CR3 structure, the | |
| thumbcount field will be initialized to 1 and thumblist[0] will be | |
| initialized to thumbnail data from the thumbnail data, so | |
| LibRaw::unpack_thumb_ex(0) will do the same as LibRaw::unpack_thumb(). </p> | |
| <p><a name="libraw_lensinfo_t"></a></p> | |
| <h3>Structure libraw_lensinfo_t: parsed lens data</h3> | |
| <p>The following parameters are extracted from Makernotes and EXIF, to help | |
| identify which lens was mounted on the camera. If the value is missing in | |
| Makernotes or EXIF, the parameter is set to zero with some exceptions | |
| noted below. In some cases the values for the fields like CameraFormat and | |
| CameraMount are set based on the camera model and/or camera ID.</p> | |
| <h4>libraw_makernotes_lens_t structure:</h4> | |
| <ul> | |
| <li><strong>LensID</strong> (if not -1) and <strong>CamID</strong> | |
| (camera id, if non-zero) values are compatible with those used in | |
| exiftool, like |0x0010 CanonModelID| and |22 LensType| see <a href="http://www.sno.phy.queensu.ca/%7Ephil/exiftool/TagNames/Canon.html">http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Canon.html</a> | |
| or 0x0207/CameraType and 0x0201/LensType (see <a href="http://www.sno.phy.queensu.ca/%7Ephil/exiftool/TagNames/Olympus.htmlhttp://www.sno.phy.queensu.ca/%7Ephil/exiftool/TagNames/Olympus.html">http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Olympus.html</a> | |
| )</li> | |
| <li><strong>Lens</strong> string, if not empty, contains the lens name | |
| present in Makernotes.</li> | |
| <li><strong>LensFormat </strong>and <strong>CameraFormat</strong> | |
| currently provide one of value from <strong>enum LibRaw_camera_formats</strong>;</li> | |
| <li>In a similar manner, values for <strong>LensMount</strong> and <strong>CameraMount</strong> | |
| follow the <strong>enum LibRaw_camera_mounts</strong>;</li> | |
| <li>In some cases, the Makernotes for MF cameras contain either an id for | |
| the body, or a string containing the name of the body. The name is | |
| copied to <strong>body</strong> field, while the id is converted to the | |
| appropriate body name and also copied to 'body' field. In other cases | |
| the 'body' field is empty.</li> | |
| <li><strong>FocalType</strong> is set based on Makernotes tag, if present. | |
| The values are: </li> | |
| <ul> | |
| <li>-1 Undefined</li> | |
| <li>0 Unknown;</li> | |
| <li>1 Fixed focal length lens</li> | |
| <li>2 Zoom lens</li> | |
| </ul> | |
| <li><strong>LensFeatures_pre</strong> - lens name prefix and <strong>LensFeatures_suf</strong> | |
| - lens name suffix: (if not empty) some cameras record alphabet soup | |
| that characterizes the lens in separate Makernote tags (see, for | |
| example, 0xb02a LensSpec at <a href="http://www.sno.phy.queensu.ca/%7Ephil/exiftool/TagNames/Sony.html">http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Sony.html</a> | |
| ), and for some lenses those acronyms can be derived from the 'Lens' | |
| field itself (see processCanonCameraInfo). Those can also help better | |
| lens identification.</li> | |
| <li><strong>MinFocal</strong> and <strong>MaxFocal</strong> , if | |
| non-zero, contain the minimum and maximum focal lengths for the lens | |
| mounted on the camera.</li> | |
| <li><strong>MaxAp4MinFocal</strong>, <strong>MaxAp4MaxFocal</strong>, <strong>MinAp4MinFocal</strong>, | |
| <strong>MinAp4MaxFocal</strong> - if non-zero, contain maximum aperture | |
| available at minimal focal length, maximum aperture available at maximum | |
| focal length, minimum aperture available at minimal focal length, | |
| minimum aperture available at maximum focal length, respectively.</li> | |
| <li><strong>MaxAp</strong> and <strong>MinAp</strong>, if non-zero, | |
| contain the maximum aperture for the lens (usually it is the maximum | |
| aperture for minimal focal length) and the minimum aperture across the | |
| focal length range. For zooms with variable maximum aperture this is | |
| usually the minimum aperture for the maximum focal length.</li> | |
| <li><strong>CurFocal</strong>, if non-zero, is current focal length - that | |
| is the focal length used to take the shot.</li> | |
| <li><strong>CurAp</strong>, if non-zero, is current aperture.</li> | |
| <li><strong>MaxAp4CurFocal</strong> and <strong>MinAp4CurFocal</strong>, | |
| if non-zero, contain the minimum and maximum apertures for the current | |
| focal length.</li> | |
| <li><strong>LensFStops</strong> - if non-zero, contains the number of | |
| aperture "clicks" or the number of f-stops, depending on the model of | |
| the camera.</li> | |
| <li><strong>TeleconverterID</strong>, <strong>AdapterID</strong>, <strong>AttachmentID</strong>, | |
| if non-zero, are the numbers extracted from Makernotes to identify lens | |
| accessories used to take the shot.</li> | |
| <li><strong>Teleconverter</strong>, <strong>Adapter</strong>, <strong>Attachment</strong>, | |
| if non-empty, are the strings containing the names of the accessories as | |
| they appear in Makernotes, or for some cameras, decoded from a numeric | |
| field in Makernotes.</li> | |
| <li><strong>FocalUnits</strong> - an auxiliary field, should not be needed | |
| most of the cases. See Canon.pm module in exiftool for more information | |
| on this value.</li> | |
| <li><strong>FocalLengthIn35mmFormat</strong>, if non-zero: for some reason | |
| certain Samsung cameras record this value in Makernotes instead of the | |
| EXIF proper. Also used for Sigma cameras.</li> | |
| </ul> | |
| <h4>libraw_nikonlens_t structure:</h4> | |
| <p>Contains additional parameters needed to identify the lens on a Nikon | |
| camera using a table - please see Nikon LensID Values at <a href="http://www.sno.phy.queensu.ca/%7Ephil/exiftool/TagNames/Nikon.html">http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html</a></p> | |
| <h4>libraw_dnglens_t structure:</h4> | |
| <p>Contains minimum focal length, maximum focal length, maximum aperture | |
| available at minimal focal length, and maximum aperture available at | |
| maximum focal length, extracted from EXIF field of a DNG raw file.</p> | |
| <h4>libraw_lensinfo_t structure:</h4> | |
| <p>Contains all the structures described above, plus parameters extracted | |
| directly from EXIF fields:</p> | |
| <ul> | |
| <li><strong>MinFocal</strong> and <strong>MaxFocal</strong> , if | |
| non-zero, contain the minimum and maximum focal lengths for the lens | |
| mounted on the camera.</li> | |
| <li><strong>MaxAp4MinFocal</strong>, <strong>MaxAp4MaxFocal</strong> - if | |
| non-zero, contain maximum aperture available at minimal focal length and | |
| maximum aperture available at maximum focal length</li> | |
| <li><strong>LensMake</strong>, if not empty, contains a string with the | |
| lens manufacturer name.</li> | |
| <li><strong>Lens</strong>, if not empty, contains the lens name as | |
| recorded in EXIF</li> | |
| <li><strong>FocalLengthIn35mmFormat</strong> - if non-zero, same as | |
| FocalLengthIn35mmFilm in EXIF standard, tag 0xa405.</li> | |
| <li><strong>EXIF_MaxAp</strong> - if non-zero, contains the value derived | |
| from EXIF tag 0x9205.</li> | |
| </ul> | |
| <p><a name="libraw_raw_unpack_params_t"></a></p> | |
| <h3>Structure libraw_raw_unpack_params_t: RAW decoding options and flags</h3> | |
| <p>Structure libraw_raw_unpack_params_t contains fields/flags that affects | |
| RAWdata and metadata decoding</p> | |
| <dl> | |
| <dt><strong> int options </strong></dt> | |
| <dd>Processing options used on unpack() phase for specific image formats, | |
| see below for possible values:<a href="#LibRaw_processing_options"> | |
| LibRaw_processing_options</a></dd> | |
| <dt><strong> unsigned shot_select; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -s <br> | |
| Selection of image number for processing (for formats that contain | |
| several RAW images in one file).</dd> | |
| <dt><strong> int specials </strong></dt> | |
| <dd>Special processing mode (e.g. omit YCC to RGB conversion), see below | |
| for possible values. <a href="#LibRaw_rawspecial_t"> | |
| LibRaw_rawspecial_t</a></dd> | |
| <dt><strong>int max_raw_memory_mb</strong></dt> | |
| <dd>Stop processing if raw buffer size grows larger than that value (in | |
| megabytes). Default is LIBRAW_MAX_ALLOC_MB_DEFAULT (2048Mb)</dd> | |
| <dt><strong> int sony_arw2_posterization_thr </strong></dt> | |
| <dd>If LIBRAW_PROCESSING_SONYARW2_DELTATOVALUE used for | |
| raw_processing_options, sets the level to suppress posterization display | |
| in shadows.</dd> | |
| <dt><strong> float coolscan_nef_gamma; </strong></dt> | |
| <dd>Gamma value for Coolscan NEF decoding (no way to get if from file, it | |
| should be set by calling application).</dd> | |
| <dt><strong> char p4shot_order[5]; </strong></dt> | |
| <dd>Shot order for Pentax 4shot files. Default is "3102".</dd> | |
| </dl> | |
| <h3></h3> | |
| <h3>Structure libraw_output_params_t: management of dcraw-style | |
| postprocessing</h3> | |
| <p>Structure libraw_output_params_t (imgdata.params) is used for management | |
| of dcraw-compatible calls dcraw_process(), dcraw_ppm_tiff_writer(), and | |
| dcraw_thumb_writer(). Fields of this structure correspond to command line | |
| keys of dcraw. </p> | |
| <h4> Data fields:</h4> | |
| <dl> | |
| <dt><strong> unsigned greybox[4]; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -A x y w h <br> | |
| 4 numbers corresponding to the coordinates (in pixels) of the rectangle | |
| that is used to calculate the white balance. X and Y are coordinates of | |
| the left-top rectangle corner; w and h are the rectangle's width and | |
| height, respectively.</dd> | |
| <dt><strong> unsigned cropbox[4]; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> none <br> | |
| This field sets the image cropping rectangle. Cropbox[0] and cropbox[1] | |
| are the rectangle's top-left corner coordinates, remaining two values | |
| are width and height respectively. All coordinates are applied before | |
| any image rotation.</dd> | |
| <dt><strong> double aber[4]; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -C <br> | |
| Correction of chromatic aberrations; the only specified values are <br> | |
| aber[0], the red multiplier <br> | |
| aber[2], the blue multiplier. For some formats, it affects <a href="API-notes.html"> | |
| RAW data reading </a> , since correction of aberrations changes the | |
| output size.</dd> | |
| <dt><strong> double gamm[6]; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -g power toe_slope <br> | |
| Sets user gamma-curve. Library user should set first two fields of gamm | |
| array: <br> | |
| gamm[0] - <strong> inverted </strong> gamma value) <br> | |
| gamm[1] - slope for linear part (so called toe slope). Set to zero for | |
| simple power curve. <br> | |
| Remaining 4 values are filled automatically.<br> | |
| By default settings for rec. BT.709 are used: power 2.222 (i.e. | |
| gamm[0]=1/2.222) and slope 4.5. For sRGB curve use gamm[0]=1/2.4 and | |
| gamm[1]=12.92, for linear curve set gamm[0]/gamm[1] to 1.0. </dd> | |
| <dt><strong> float user_mul[4]; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -r mul0 mul1 mul2 mul3 <br> | |
| 4 multipliers (r,g,b,g) of the user's white balance.</dd> | |
| <dt><strong>float bright; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -b <br> | |
| Brightness (default 1.0).</dd> | |
| <dt><strong> float threshold; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -n <br> | |
| Parameter for noise reduction through wavelet denoising.</dd> | |
| <dt><strong> int half_size; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -h <br> | |
| Outputs the image in 50% size. For some formats, it affects <a href="API-notes.html"> | |
| RAW data reading </a> .</dd> | |
| <dt><strong> int four_color_rgb; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -f <br> | |
| Switches on separate interpolations for two green components.</dd> | |
| <dt><strong> int highlight; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -H <br> | |
| 0-9: Highlight mode (0=clip, 1=unclip, 2=blend, 3+=rebuild).</dd> | |
| <dt><strong> int use_auto_wb; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -a <br> | |
| Use automatic white balance obtained after averaging over the entire | |
| image.</dd> | |
| <dt><strong> int use_camera_wb; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -w <br> | |
| If possible, use the white balance from the camera. | |
| <p> If camera-recorded WB is not available, dcraw_process() will | |
| fallback to: </p> | |
| <ul> | |
| <li>Auto-WB if bit LIBRAW_PROCESSING_CAMERAWB_FALLBACK_TO_DAYLIGHT is | |
| not set in params.raw_processing_options (or for the rare specific | |
| case: no valid WB index was parsed from CRW file) </li> | |
| <li>Daylight-WB if abovementioned bit is not set. </li> | |
| </ul> | |
| </dd> | |
| <dt><strong> int use_camera_matrix; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> +M/-M <br> | |
| <ul> | |
| <li>0: do not use embedded color profile</li> | |
| <li>1 (default): use embedded color profile (if present) for DNG files | |
| (always); for other files only if use_camera_wb is set;</li> | |
| <li>3: use embedded color data (if present) regardless of white | |
| balance setting.</li> | |
| </ul> | |
| </dd> | |
| <dt><strong> int output_color; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -o <br> | |
| [0-8] Output colorspace (raw, sRGB, Adobe, Wide, ProPhoto, XYZ, ACES, | |
| DCI-P3, Rec. 2020).</dd> | |
| <dt><strong> char* output_profile; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -o filename <br> | |
| Path to output profile ICC file (used only if LibRaw compiled with LCMS | |
| support)</dd> | |
| <dt><strong> char* camera_profile; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -p file <br> | |
| Path to input (camera) profile ICC file (or 'embed' for embedded | |
| profile). Used only if LCMS support compiled in.</dd> | |
| <dt><strong> char* bad_pixels; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -P file <br> | |
| Path to file with bad pixels map (in dcraw format: "column row | |
| date-of-pixel-death-in-UNIX-format", one pixel per row).</dd> | |
| <dt><strong> char* dark_frame; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -K file <br> | |
| Path to dark frame file (in 16-bit PGM format)</dd> | |
| <dt><strong> int output_bps; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -4 <br> | |
| 8 bit (default)/16 bit (key -4).</dd> | |
| <dt><strong> int output_tiff; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -T <br> | |
| 0/1: output PPM/TIFF.</dd> | |
| <dt><strong> int output_flags; </strong></dt> | |
| <dd><strong> dcraw keys:</strong> none<br> | |
| Bitfield that allows to set output file options: | |
| <ul> | |
| <li><strong>LIBRAW_OUTPUT_FLAGS_PPMMETA</strong> - write additional | |
| metadata into PPM/PGM output files</li> | |
| </ul> | |
| </dd> | |
| <dt><strong> int user_flip; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -t <br> | |
| [0-7] Flip image (0=none, 3=180, 5=90CCW, 6=90CW). Default -1, which | |
| means taking the corresponding value from RAW. <br> | |
| For some formats, <a href="API-notes.html"> affects RAW data reading </a> | |
| , e.g., unpacking of thumbnails from Kodak cameras.</dd> | |
| <dt><strong> int user_qual; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -q <br> | |
| 0-10: interpolation quality: | |
| <ul> | |
| <li>0 - linear interpolation</li> | |
| <li>1 - VNG interpolation</li> | |
| <li>2 - PPG interpolation</li> | |
| <li>3 - AHD interpolation</li> | |
| <li>4 - DCB interpolation</li> | |
| <li>11 - DHT interpolation</li> | |
| <li>12 - Modified AHD interpolation (by Anton Petrusevich)</li> | |
| </ul> | |
| </dd> | |
| <dt><strong> int user_black; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -k <br> | |
| User black level.</dd> | |
| <dt><strong> int user_cblack[4]; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> none <br> | |
| Per-channel corrections to user_black.</dd> | |
| <dt><strong> int user_sat; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -S <br> | |
| Saturation adjustment.</dd> | |
| <dt><strong> int med_passes; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -m <br> | |
| Number of median filter passes.</dd> | |
| <dt><strong> int no_auto_bright; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -W <br> | |
| Don't use automatic increase of brightness by histogram.</dd> | |
| <dt><strong> float auto_bright_thr; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> none <br> | |
| Portion of clipped pixels when auto brightness increase is used. Default | |
| value is 0.01 (1%) for dcraw compatibility. Recommended value for modern | |
| low-noise multimegapixel cameras depends on shooting style. Values in | |
| 0.001-0.00003 range looks reasonable.</dd> | |
| <dt><strong> float adjust_maximum_thr; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> none <br> | |
| This parameters controls auto-adjusting of maximum value based on | |
| channel_maximum[] data, calculated from real frame data. If calculated | |
| maximum is greater than adjust_maximum_thr*maximum, than maximum is set | |
| to calculated_maximum. <br> | |
| Default: 0.75. If you set this value above 0.99999, than default value | |
| will be used. If you set this value below 0.00001, than no maximum | |
| adjustment will be performed. <br> | |
| Adjusting maximum should not damage any picture (esp. if you use default | |
| value) and is very useful for correcting channel overflow problems | |
| (magenta clouds on landscape shots, green-blue highlights for indoor | |
| shots).</dd> | |
| <dt><strong> int use_fuji_rotate; </strong></dt> | |
| <dd><strong> dcraw keys: </strong> -j <br> | |
| Default -1 (use), 0 - don't use rotation for cameras on a Fuji sensor.</dd> | |
| <dt><strong> int green_matching; </strong></dt> | |
| <dd>Turns on fixing of green channels disbalance. <strong> dcraw keys: </strong> | |
| none <br> | |
| Default: 0 (not use), 1 - turns on this postprocessing stage. | |
| green_matching requires additional memory for image data.</dd> | |
| <dt><strong> int dcb_iterations </strong></dt> | |
| <dd><strong> dcraw keys: </strong> none <br> | |
| Number of DCB correction passes. Default is -1 (no correction). Useful | |
| only for DCB interpolation.</dd> | |
| <dt><strong> int dcb_enhance_fl </strong></dt> | |
| <dd><strong> dcraw keys: </strong> none <br> | |
| nonzero: DCB interpolation with enhance interpolated colors.</dd> | |
| <dt><strong> int fbdd_noiserd </strong></dt> | |
| <dd><strong> dcraw keys: </strong> none <br> | |
| Controls FBDD noise reduction before demosaic. | |
| <ul> | |
| <li>0 - do not use FBDD noise reduction</li> | |
| <li>1 - light FBDD reduction</li> | |
| <li>2 (and more) - full FBDD reduction</li> | |
| </ul> | |
| </dd> | |
| <dt><strong> int exp_correc; float exp_shift,exp_preser; </strong></dt> | |
| <dd>Exposure correction before demosaic. <br> | |
| <ul> | |
| <li>exp_correc: positive value turns the feature on (default: off).</li> | |
| <li>exp_shift: exposure shift in linear scale. Usable range from 0.25 | |
| (2-stop darken) to 8.0 (3-stop lighter). Default: 1.0 (no exposure | |
| shift).</li> | |
| <li>exp_preser: preserve highlights when lighten the image. Usable | |
| range from 0.0 (no preservation) to 1.0 (full preservation). 0.0 is | |
| the default value.</li> | |
| </ul> | |
| </dd> | |
| <dt><strong> int use_rawspeed; </strong></dt> | |
| <dd>Turns on using RawSpeed library for data unpacking (only if RawSpeed | |
| support compiled in).</dd> | |
| <dt><strong>int use_dng_sdk; </strong></dt> | |
| <dd>Turns on using Adobe DNG SDK (if compiled with it and dng host is set: | |
| <br> | |
| <ul> | |
| <li>0 - do not use</li> | |
| <li>1 - use for speciality formats (Float, Linear DNG, deflate | |
| compression, 8 bit)</li> | |
| <li>2 - use for all DNG files</li> | |
| </ul> | |
| </dd> | |
| <dt><strong> int no_auto_scale; </strong></dt> | |
| <dd>Disables pixel values scaling (call to LibRaw::scale_colors()) in | |
| LibRaw::dcraw_process().<br> | |
| This is <strong>special use value</strong> because white balance is | |
| performed in scale_colors(), so skipping it will result in non-balanced | |
| image.<br> | |
| This setting is targeted to use with no_interpolation, or with own | |
| interpolation callback call.</dd> | |
| <dt><strong> int no_interpolation; </strong></dt> | |
| <dd>Disables call to demosaic code in LibRaw::dcraw_process()</dd> | |
| <dt><strong> int use_p1_correction;</strong></dt> | |
| <dd>If set to non-zero (default): PhaseOne compressed files will be | |
| corrected (linearization; defect mapping) based on metadata contained in | |
| file.</dd> | |
| </dl> | |
| <p><a name="libraw_callbacks_t"></a></p> | |
| <h3>Structure libraw_callbacks_t: user-settable callbacks</h3> | |
| <dl> | |
| <dt>data_callback data_cb</dt> | |
| <dd>Called on data error, settable via set_dataerror_handler. See <a href="API-CXX.html#callbacks">C++ | |
| API</a> for details.</dd> | |
| <dt>progress_callback progress_cb</dt> | |
| <dd>Called on process callback, settable via set_progress_handler. See <a | |
| href="API-CXX.html#callbacks">C++ API</a> for details.</dd> | |
| <dt>exif_parser_callback exif_cb, params: (void *context, int tag, int | |
| type, int len, unsigned int ord, void *ifp)</dt> | |
| <dd> Called by EXIF/TIFF IFD parsers on each processed tag.<br> | |
| Parameters: | |
| <ul> | |
| <li>context: user-specified context, set via set_exifparser_handler()</li> | |
| <li>tag: 16-bit of TIFF/EXIF tag or'ed with | |
| <ul> | |
| <li>0 - for EXIF parsing</li> | |
| <li>0x20000 - for Kodak makernotes parsing</li> | |
| <li>0x30000 - for Panasonic makernotes parsing</li> | |
| <li>0x40000 - for EXIF Interop IFD parsing</li> | |
| <li>0x50000 - for EXIF GPS IFD parsing</li> | |
| <li>0x60000 - for Sony SR2 record tags</li> | |
| <li>(ifdN + 1) << 20) - for TIFF ifdN</li> | |
| <li>(0x70000 | 0x927c) - if called from CR3 file CMT3 tag</li> | |
| <li>(__type << 20) | 0x80000 | 0x927c - if called from CR3 | |
| file CTMD record with type __type</li> | |
| </ul> | |
| for makernotes callback tag is uptag <<16)|makernotes_tag | |
| where uptag is | |
| <ul> | |
| <li>EXIF tag for callback called from EXIF parser</li> | |
| <li>0 for callback called from CR3 metadata parser</li> | |
| </ul> | |
| </li> | |
| <li>type: tag type (see TIFF/EXIF specs)</li> | |
| <li>len: tag length</li> | |
| <li>ord: byte order: 0x4949 for intel, 0x4d4d for motorola</li> | |
| <li>ifp: pointer to LibRaw_abstract_datastream input stream, | |
| positioned to start of data. There is no need to restore data | |
| position in callback.</li> | |
| </ul> | |
| </dd> | |
| <dt>int pre_identify_cb(void *)</dt> | |
| <dd>Called with this pointer as the only arg before calling to | |
| LibRaw::identify. If this callback return non-zero value, that means | |
| that identify() is not needed and all internal data fields are filled | |
| with values.</dd> | |
| <dt>void post_identify_cb(void *)</dt> | |
| <dd>Called after identify() from open_datastream(). May be used to tune | |
| internal variables after metadata parse.</dd> | |
| <dt>dcraw_process() callbacks</dt> | |
| <dd>These callbacks are called before/after dcraw_process phases, the only | |
| passed parameter is this pointer | |
| <ul> | |
| <li>pre_subtractblack_cb - called before black subtraction</li> | |
| <li>pre_scalecolors_cb - called before scale_colors() call</li> | |
| <li>pre_preinterpolate_cb - called before interpolaton (demosaic)</li> | |
| <li>interpolate_bayer_cb - if set, called for bayer demosaic | |
| (regardless of params.user_qual value)</li> | |
| <li>interpolate_xtrans_cb - if set, called for X-Trans demosaic</li> | |
| <li>post_interpolate_cb - called after demosaic step. Note: if this | |
| callback is set, standard median_filter() is not called. So, if you | |
| need median filtering you should call it from callback function.</li> | |
| <li>pre_converttorgb_cb - called after convert_to_rgb()</li> | |
| <li>post_converttorgb_cb - called after convert_to_rgb(), so very last | |
| processing step.</li> | |
| </ul> | |
| </dd> | |
| </dl> | |
| <p><a name="libraw_decoder_info_t"></a></p> | |
| <h3>Structure libraw_decoder_info_t: RAW decoder name and data format</h3> | |
| <p>This structure describes RAW format decoder name and data format:</p> | |
| <dl> | |
| <dt>const char *decoder_name</dt> | |
| <dd>Decoder function name</dd> | |
| <dt>unsigned decoder_flags</dt> | |
| <dd>Decoder data format. See <a href="#decoder_flags"> list of | |
| LibRaw_decoder_flags </a> for details.</dd> | |
| </dl> | |
| <p><a name="libraw_processed_image_t"></a></p> | |
| <h3>Structure libraw_processed_image_t - result set for | |
| dcraw_make_mem_image()/dcraw_make_mem_thumb() functions</h3> | |
| <p>Structure libraw_processed_image_t is produced by call of | |
| dcraw_make_mem_image()/dcraw_make_mem_thumb() and contains in-memory image | |
| of interpolated data or thumbnail. </p> | |
| <h4>Data fields:</h4> | |
| <dl> | |
| <dt><strong> LibRaw_image_formats type </strong></dt> | |
| <dd>This field records type of data, containing in remaining fields of | |
| structure. | |
| <ul> | |
| <li><strong> LIBRAW_IMAGE_BITMAP </strong> - structure contains RGB | |
| bitmap. All metadata fields (see below) are valid and describes | |
| image data.</li> | |
| <li><strong> LIBRAW_IMAGE_JPEG </strong> - structure contain | |
| in-memory image of JPEG file. Type, data_size and data fields are | |
| valid (and nonzero) are always initialized. Image data parameters | |
| (width, height,colors, bits) are initialized if LibRaw compiled with | |
| libjpeg</li> | |
| <li><strong>LIBRAW_IMAGE_JPEGXL - </strong>structure contain | |
| in-memory image of JPEG-XL file. Only type, data_size and data | |
| fields are valid (and nonzero);</li> | |
| <li><strong>LIBRAW_IMAGE_H265 - </strong>structure contain in-memory | |
| image of Canon H265 (HEIC) preview. This is not complete HEIC file | |
| but several MP4 boxes plus image data. Only type, data_size and data | |
| fields are valid (and nonzero);</li> | |
| </ul> | |
| </dd> | |
| <dt><strong> ushort height,width </strong></dt> | |
| <dd>Image size (in pixels). Valid only if type==LIBRAW_IMAGE_BITMAP.</dd> | |
| <dt><strong> ushort colors, bits </strong></dt> | |
| <dd>Number of colors components (1 or 3) and color depth in bits (8 or | |
| 16). These fields are valid only if type==LIBRAW_IMAGE_BITMAP.</dd> | |
| <dt><strong> ushort gamma_corrected </strong></dt> | |
| <dd>Is bitmap data gamma-corrected (always 1 for 8-bit data, may be 0 or 1 | |
| for 16-bit). Valid only if type==LIBRAW_IMAGE_BITMAP.</dd> | |
| <dt><strong> unsigned int data_size </strong></dt> | |
| <dd>Size of <strong> data </strong> field (in bytes). For bitmap image | |
| equal to (height*width*colors * (bits/8)). For JPEG image - exact JPEG | |
| size (i.e. extracted thnumbnail size + JPEG header + EXIF header).</dd> | |
| <dt><strong> unsigned char data[] </strong></dt> | |
| <dd>Data array itself. Should be interpreted as RGB triplets for bitmap | |
| type and as JPEG file for JPEG type.</dd> | |
| </dl> | |
| <p><a name="datastream"></a></p> | |
| <h2>Input abstraction layer</h2> | |
| <p>RAW data input (read) in LibRaw implemented by calling methods of object | |
| derived from <strong> LibRaw_abstract_datastream </strong> abstract | |
| class. Full list of methods is described in | |
| href="API-CXX.html#datastream">C++ API reference.</p> | |
| <p>There is two ready to use implementations of datastream objects:</p> | |
| <ul> | |
| <li><a href="API-CXX.html#file_datastream"> LibRaw_file_datastream </a> - | |
| file input (filename provided to LibRaw).</li> | |
| <li><a href="API-CXX.html#buffer_datastream"> LibRaw_buffer_datastream </a> | |
| - input from memory buffer.</li> | |
| </ul> | |
| <p>LibRaw user can create own datastream object derived from <a href="API-CXX.html#datastream"> | |
| LibRaw_abstract_datastream </a> . For example, such object may | |
| implement reading RAW data directly from camera (by remote interface). | |
| LibRaw can use these objects via <a href="API-CXX.html#open_datastream"> | |
| LibRaw::open_datastream() </a> interface.</p> | |
| <p>Datastreams can be used either via <a href="API-CXX.html#open_datastream"> | |
| LibRaw::open_datastream() </a> call (in this case datastream object | |
| should be created an maintained by user) or via <a href="API-CXX.html#open_file"> | |
| LibRaw::open_file() </a> and <a href="API-CXX.html#open_buffer"> | |
| LibRaw::open_buffer() </a> shortcuts.</p> | |
| <p>Only <a href="API-CXX.html"> C++ API </a> users may use object-oriented | |
| interface and implement own input interfaces. For <a href="API-C.html"> C | |
| API </a> users only built-on <strong> | |
| libraw_open_file()/libraw_open_buffer() </strong> shortcuts are | |
| available.</p> | |
| <p><a name="datastream_data"></a></p> | |
| <h4>Data fields</h4> | |
| <p>Definition:</p> | |
| <pre> class LibRaw_abstract_datastream {...protected: LibRaw_abstract_datastream *substream;} | |
| </pre> | |
| <p><strong> Description: </strong> Objects derived from | |
| LibRaw_abstract_datastream always contains pointer to secondary data | |
| stream (substream). This substream initialized internally when needed | |
| (really used only for Sony RAW data) and used for temporary switch input | |
| stream to temporary memory buffer allocated internally in LibRaw.</p> | |
| <p>Substream usage details described more precisely in <a href="API-CXX.html#own_datastreams"> | |
| own datastream objects creation guide </a> .</p> | |
| <p><a name="const"></a></p> | |
| <h2>Constants</h2> | |
| <p><a name="LibRaw_errors"></a></p> | |
| <h3>enum LibRaw_errors: Error Codes</h3> | |
| <p>All functions returning integer numbers must return either errno or one | |
| of the following error codes (see also <a href="API-notes.html#errors"> | |
| error code conventions </a> ).</p> | |
| <p><strong> Fatal errors </strong> (return of such an error code implies | |
| that file processing has to be terminated, since the state of data | |
| structures is unknown).</p> | |
| <dl> | |
| <dt><strong> LIBRAW_UNSUFFICIENT_MEMORY </strong></dt> | |
| <dd>Attempt to get memory from the system has failed. <br> | |
| All allocated resources will be freed, <a href="API-CXX.html#recycle"> | |
| recycle() </a> will be called, and the LibRaw object will be brought | |
| to the state "right after creation."</dd> | |
| <dt><strong> LIBRAW_DATA_ERROR </strong></dt> | |
| <dd>A fatal error emerged during data unpacking. <br> | |
| All allocated resources will be freed, <a href="API-CXX.html#recycle"> | |
| recycle() </a> will be called, and the LibRaw object will be brought | |
| to the state "right after creation."</dd> | |
| <dt><strong> LIBRAW_IO_ERROR </strong></dt> | |
| <dd>A fatal error emerged during file reading (premature end-of-file | |
| encountered or file is corrupt). <br> | |
| All allocated resources will be freed, <a href="API-CXX.html#recycle"> | |
| recycle() </a> will be called, and the LibRaw object will be brought | |
| to the state "right after creation."</dd> | |
| <dt><strong> LIBRAW_CANCELLED_BY_CALLBACK </strong></dt> | |
| <dd>Processing cancelled due to calling application demand (by returning | |
| nonzero code from <a href="API-CXX.html#progress"> progress callback </a> | |
| ). <br> | |
| All allocated resources will be freed, <a href="API-CXX.html#recycle"> | |
| recycle() </a> will be called, and the LibRaw object will be brought | |
| to the state "right after creation."</dd> | |
| <dt><strong> LIBRAW_BAD_CROP </strong></dt> | |
| <dd>The incorrect cropping coordinates are set via params.cropbox[]: the | |
| left-top corner of cropping rectangle is outside the image. The | |
| processing will be cancelled, all allocated resources will be freed, </dd> | |
| <dt><strong> LIBRAW_TOO_BIG</strong></dt> | |
| <dd>Raw data size exceeds data limit.</dd> | |
| <dt><strong> LIBRAW_MEMPOOL_OVERFLOW</strong></dt> | |
| <dd>Too much data allocation calls to fit into LibRaw's mempool</dd> | |
| </dl> | |
| <p><strong> Non-Fatal Errors </strong></p> | |
| <dl> | |
| <dt><strong> LIBRAW_SUCCESS=0 </strong></dt> | |
| <dd>No error; function terminated successfully.</dd> | |
| <dt><strong> LIBRAW_UNSPECIFIED_ERROR </strong></dt> | |
| <dd>An unknown error has been encountered. This code should never be | |
| generated.</dd> | |
| <dt><strong> LIBRAW_FILE_UNSUPPORTED </strong></dt> | |
| <dd>Unsupported file format (attempt to open a RAW file with a format | |
| unknown to the program).</dd> | |
| <dt><strong> LIBRAW_REQUEST_FOR_NONEXISTENT_IMAGE </strong></dt> | |
| <dd>Attempt to retrieve a RAW image with a number absent in the data file | |
| (only for formats supporting storage of several images in a file).</dd> | |
| <dt><strong> LIBRAW_OUT_OF_ORDER_CALL </strong></dt> | |
| <dd>API functions have been called in wrong order (e.g. <a href="API-CXX.html#unpack">unpack()</a> | |
| before <a href="API-CXX.html#open_file"> open_file() </a> ) or the | |
| previous stage has ended with an error (e.g., <a href="API-CXX.html#unpack"> | |
| unpack() </a> is called after <a href="API-CXX.html#open_file"> | |
| open_file() </a> has returned an error).</dd> | |
| <dt><strong> LIBRAW_NO_THUMBNAIL </strong></dt> | |
| <dd>Returned upon an attempt to retrieve a thumbnail from a file | |
| containing no preview.</dd> | |
| <dt><strong> LIBRAW_UNSUPPORTED_THUMBNAIL </strong></dt> | |
| <dd>RAW file contains a preview of unsupported format.</dd> | |
| <dt><strong> LIBRAW_INPUT_CLOSED </strong></dt> | |
| <dd>Input stream is not available for reading.</dd> | |
| <dt><strong> LIBRAW_NOT_IMPLEMENTED </strong></dt> | |
| <dd>Decoder for specific RAW storage/compression format is not | |
| implemented.</dd> | |
| <dt><strong> LIBRAW_REQUEST_FOR_NONEXISTENT_THUMBNAIL </strong></dt> | |
| <dd>Attempt to retrieve a non-existent thumbnail by (invalid) index.</dd> | |
| </dl> | |
| <p><a name="decoder_flags"></a></p> | |
| <h3>enum LibRaw_decoder_flags - RAW data format description</h3> | |
| <p>Depending of capabilities of given data format, the buffer with RAW data | |
| may have different layouts:</p> | |
| <dl> | |
| <dt><strong> LIBRAW_DECODER_HASCURVE </strong></dt> | |
| <dd>This flag is set if decoder uses RAW tone curve and curve data may be | |
| modified before call to decoder (i.e. curve values are not read or | |
| calculated within decoder).</dd> | |
| <dt><strong> LIBRAW_DECODER_SONYARW2 </strong></dt> | |
| <dd>This flag is set if file format is Sony ARW2.3, so sony_arw2_options | |
| is applicable.</dd> | |
| <dt><strong> LIBRAW_DECODER_TRYRAWSPEED </strong></dt> | |
| <dd>This flag is set if file format is (possibly) supported by RawSpeed | |
| library, so unpack() will try to use it.</dd> | |
| <dt><strong> LIBRAW_DECODER_FIXEDMAXC </strong></dt> | |
| <dd>Do not use automated maximum calculation for this data format.</dd> | |
| <dt><strong> LIBRAW_DECODER_OWNALLOC </strong></dt> | |
| <dd>Decoder allocates data, no need to pass allocated memory to decoder.</dd> | |
| <dt><strong>LIBRAW_DECODER_ADOBECOPYPIXEL</strong></dt> | |
| <dd>Internal flag, special to adobe DNG decoder.</dd> | |
| <dt><strong>LIBRAW_DECODER_LEGACY_WITH_MARGINS</strong></dt> | |
| <dd>Special flag uset for 4-channel (legacy) decoders with black/masked | |
| areas</dd> | |
| <dt><strong>LIBRAW_DECODER_3CHANNEL</strong></dt> | |
| <dd>3-component full-color data (not usual 4-component)</dd> | |
| </dl> | |
| <p><a name="progress"></a></p> | |
| <h3>enum LibRaw_progress: Current State of LibRaw Object</h3> | |
| <p>LibRaw::imgdata.progress_flags contains a bit mask describing all stages | |
| of file processing that have already been performed.</p> | |
| <p><strong> File opening and RAW data extraction phase. </strong></p> | |
| <dl> | |
| <dt><strong> LIBRAW_PROGRESS_START=0 </strong></dt> | |
| <dd>Object just created, no processing carried out.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_OPEN </strong></dt> | |
| <dd>File to be processed has been opened.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_IDENTIFY </strong></dt> | |
| <dd>Data identification performed, format recognized, metadata extracted.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_SIZE_ADJUST </strong></dt> | |
| <dd>Data sizes adjusted (for files that require such adjustment, namely, | |
| certain files from Kodak cameras).</dd> | |
| <dt><strong> LIBRAW_PROGRESS_LOAD_RAW </strong></dt> | |
| <dd>RAW data loaded.</dd> | |
| </dl> | |
| <p><strong> The following flags are set during usage of image processing | |
| that has been taken from dcraw. </strong></p> | |
| <dl> | |
| <dt><strong> LIBRAW_PROGRESS_RAW2_IMAGE </strong></dt> | |
| <dd>imgdata.image array allocated and filled with data.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_REMOVE_ZEROES </strong></dt> | |
| <dd>Zero values removed for cameras that require such removal (Panasonic | |
| cameras).</dd> | |
| <dt><strong> LIBRAW_PROGRESS_BAD_PIXELS </strong></dt> | |
| <dd>Bad (dead) pixels removed.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_DARK_FRAME </strong></dt> | |
| <dd>Dark frame subtracted from RAW data.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_FOVEON_INTERPOLATE </strong></dt> | |
| <dd>Interpolation for cameras with a Foveon sensor performed.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_SCALE_COLORS </strong></dt> | |
| <dd>White balance performed.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_PRE_INTERPOLATE </strong></dt> | |
| <dd>Image size reduction (for the half_size mode) performed, as well as | |
| copying of 2nd green channel to the 1st one in points where the second | |
| channel is present and the first one is absent.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_INTERPOLATE </strong></dt> | |
| <dd>Interpolation (debayer) performed.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_MIX_GREEN </strong></dt> | |
| <dd>Averaging of green channels performed.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_MEDIAN_FILTER </strong></dt> | |
| <dd>Median filtration performed.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_HIGHLIGHTS </strong></dt> | |
| <dd>Work with highlights performed.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_FUJI_ROTATE </strong></dt> | |
| <dd>For images from Fuji cameras, rotation performed (or | |
| adjust_sizes_info_only() called).</dd> | |
| <dt><strong> LIBRAW_PROGRESS_FLIP </strong></dt> | |
| <dd>Dimensions recalculated for images shot with a rotated camera | |
| (sizes.iwidth/sizes.iheight swapped).</dd> | |
| <dt><strong> LIBRAW_PROGRESS_CONVERT_RGB </strong></dt> | |
| <dd>Conversion into output RGB space performed.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_STRETCH </strong></dt> | |
| <dd>Image dimensions changed for cameras with non-square pixels.</dd> | |
| <dt><strong> LIBRAW_PROGRESS_STAGE17 - LIBRAW_PROGRESS_STAGE27 </strong></dt> | |
| <dd>Reserved for possible appearance of other processing stages.</dd> | |
| </dl> | |
| <p><strong> The following flags are set during loading of thumbnails. </strong></p> | |
| <p><strong> LIBRAW_PROGRESS_THUMB_LOAD </strong> Thumbnail data have been | |
| loaded (for Kodak cameras, the necessary conversions have also been made). | |
| <strong> LIBRAW_PROGRESS_TRESERVED1 - LIBRAW_PROGRESS_TRESERVED3 </strong> | |
| Reserved for possible future processing stages.</p> | |
| <p><a name="LibRaw_whitebalance_code"></a></p> | |
| <h3>enum LibRaw_whitebalance_code - names for standard light sources</h3> | |
| <p>LIBRAW_WBI_lightsource_name, where name and value are standard EXIF light | |
| sources. <a name="LibRaw_runtime_capabilities"></a></p> | |
| <h3>enum LibRaw_camera_mounts - codes for camera mounts</h3> | |
| <p>Constant name (e.g. LIBRAW_MOUNT_Leica_SL) speaks for itself</p> | |
| <h3>enum LibRaw_runtime_capabilities - libraw capabilities set at build</h3> | |
| <ul> | |
| <li><strong>LIBRAW_CAPS_RAWSPEED</strong> - compiled with RawSpeed</li> | |
| <li><strong>LIBRAW_CAPS_DNGSDK </strong>- compiled with Adobe DNG SDK</li> | |
| <li><strong>LIBRAW_CAPS_GPRSDK</strong> - compiled w/ GoPro GPR SDK</li> | |
| <li><strong>LIBRAW_CAPS_UNICODEPATHS</strong> - compiled with Windows | |
| unicode (wchar_t*) filenames support</li> | |
| <li><strong>LIBRAW_CAPS_X3FTOOLS</strong> - compiled with X3F TOOLS | |
| (-DUSE_X3FTOOLS)</li> | |
| <li><strong>LIBRAW_CAPS_RPI6BY9</strong> - compiled with RPI6BY9 | |
| support(-DUSE_6BY9RPI)</li> | |
| <li><strong>LIBRAW_CAPS_ZLIB</strong> - compiled with zlib</li> | |
| <li><strong>LIBRAW_CAPS_JPEG</strong> - compiled with libjpeg</li> | |
| <li><strong>LIBRAW_CAPS_RAWSPEED3</strong> - compiled with RawSpeed V3</li> | |
| <li><strong>LIBRAW_CAPS_RAWSPEED_BITS</strong> - compiled with fine tuned | |
| RawSpeed usage control (look into RawSpeed3/README.md for details)</li> | |
| </ul> | |
| <p><a name="LibRaw_thumbnail_formats"></a></p> | |
| <h3>enum LibRaw_thumbnail_formats: Thumbnail Data Formats</h3> | |
| <p>Thumbnail data format is written in the imgdata.thumbnail.tformat data | |
| field. <br> | |
| Presently LibRaw knows about four thumbnail formats, among which two are | |
| unpacked:</p> | |
| <dl> | |
| <dt><strong> LIBRAW_THUMBNAIL_UNKNOWN </strong></dt> | |
| <dd>Format unknown or thumbnail not yet read.</dd> | |
| <dt><strong> LIBRAW_THUMBNAIL_JPEG </strong></dt> | |
| <dd>The thumbnail buffer contains a JPEG file (read from the RAW file "as | |
| is," without any manipulations performed on it).</dd> | |
| <dt><strong> LIBRAW_THUMBNAIL_BITMAP </strong></dt> | |
| <dd>The thumbnail buffer contains the gamma-adjusted RGB bitmap (for Kodak | |
| cameras, the gamma correction is performed with allowance for maximum | |
| values and the white balance is set in accordance with the camera | |
| settings). <br> | |
| In this format, each pixel of the image is represented by a 8-bit RGB | |
| triplet.</dd> | |
| <dt><strong>LIBRAW_THUMBNAIL_BITMAP16</strong></dt> | |
| <dd>The thumbnail buffer contains the gamma-adjusted 16-bit RGB bitmap. To | |
| get this format instead of <strong> LIBRAW_THUMBNAIL_BITMAP </strong>you | |
| need to set <strong>LIBRAW_PROCESSING_USE_PPM16_THUMBS</strong> in | |
| processing options.</dd> | |
| <dt><strong> LIBRAW_THUMBNAIL_LAYER </strong></dt> | |
| <dd>Data format is presently recognized upon opening of RAW file but not | |
| supported: not unpacked into LibRaw::unpack_thumb.</dd> | |
| <dt><strong> LIBRAW_THUMBNAIL_ROLLEI </strong></dt> | |
| <dd>Data format is presently recognized upon opening of RAW file but not | |
| supported: not unpacked into LibRaw::unpack_thumb.</dd> | |
| <dt><strong>LIBRAW_THUMBNAIL_H265</strong></dt> | |
| <dd>The thumbnail buffer contains a H.265 data frame (read from RAW file | |
| as is, no manipulations performed on it).</dd> | |
| <dt><strong>LIBRAW_THUMBNAIL_JPEGXL</strong></dt> | |
| <dd>The thumbnail buffer contains a JPEG-XL data frame (read from RAW file | |
| as is, no manipulations performed on it).</dd> | |
| </dl> | |
| <p><a name="warnings"></a></p> | |
| <h3>Nonstandard Situations (Warnings) during RAW Data Processing</h3> | |
| <p>Some suspicious situations emerging during image processing are not fatal | |
| but may affect the result of data retrieval or postprocessing. Such states | |
| are indicated by setting a bit in the imgdata.process_warnings field.</p> | |
| <dl> | |
| <dt><strong> LIBRAW_WARN_BAD_CAMERA_WB </strong></dt> | |
| <dd>Postprocessing must use white balance of the camera but this balance | |
| is not suitable for use.</dd> | |
| <dt><strong> LIBRAW_WARN_NO_METADATA </strong></dt> | |
| <dd>Only for cameras where the metadata are taken from an external JPEG | |
| file: metadata extraction has failed.</dd> | |
| <dt><strong> LIBRAW_WARN_NO_JPEGLIB </strong></dt> | |
| <dd>Only for P&S Kodak cameras: data in JPEG format. At the same time, | |
| open_file() will return LIBRAW_FILE_UNSUPPORTED.</dd> | |
| <dt><strong> LIBRAW_WARN_NO_EMBEDDED_PROFILE </strong></dt> | |
| <dd>(only if LCMS support compiled in). Caller set embedded input profile | |
| use, but no such profile exists in RAW.</dd> | |
| <dt><strong> LIBRAW_WARN_NO_INPUT_PROFILE </strong></dt> | |
| <dd>(only if LCMS support compiled in). Error when opening input profile | |
| ICC file.</dd> | |
| <dt><strong> LIBRAW_WARN_BAD_OUTPUT_PROFILE </strong></dt> | |
| <dd>(only if LCMS support compiled in). Error when opening output profile | |
| ICC file.</dd> | |
| <dt><strong> LIBRAW_WARN_NO_BADPIXELMAP </strong></dt> | |
| <dd>Error when opening bad pixels map file.</dd> | |
| <dt><strong> LIBRAW_WARN_BAD_DARKFRAME_FILE </strong></dt> | |
| <dd>Error when opening dark frame file.</dd> | |
| <dt><strong> LIBRAW_WARN_BAD_DARKFRAME_DIM </strong></dt> | |
| <dd>Dark frame file either differs in dimensions from RAW-file processed, | |
| or have wrong format. Dark frame should be in 16-bit PGM format (one can | |
| generate it using simple_dcraw -4 -D).</dd> | |
| <dt><strong> LIBRAW_WARN_RAWSPEED_PROBLEM </strong></dt> | |
| <dd>Problems detected in RawSpeed decompressor. The image data processed | |
| by LibRaw own decoder.</dd> | |
| <dt><strong> LIBRAW_WARN_RAWSPEED_UNSUPPORTED </strong></dt> | |
| <dd>This file not supported by RawSpeed (although compatible decoder | |
| exists).</dd> | |
| <dt><strong> LIBRAW_WARN_RAWSPEED_PROCESSED </strong></dt> | |
| <dd>Not warning, but information. The file was decoded by RawSpeed.</dd> | |
| <dt><strong> LIBRAW_WARN_FALLBACK_TO_AHD </strong></dt> | |
| <dd>Incorrect/unsupported user_qual was set, AHD demosaic used instead.</dd> | |
| <dt><strong> LIBRAW_WARN_PARSEFUJI_PROCESSED</strong></dt> | |
| <dd>Not really a warning, but flag that fuji parser was used.</dd> | |
| <dt><strong>LIBRAW_DNGSDK_PROCESSED</strong></dt> | |
| <dd>Not really a warning: image was decoded by DNG SDK</dd> | |
| <dt><strong> LIBRAW_DNG_IMAGES_REORDERED</strong></dt> | |
| <dd>DNG sub0images was reordered </dd> | |
| <dt><strong>LIBRAW_DNG_STAGE2_APPLIED</strong></dt> | |
| <dd>DNG Stage2 conversion was performed</dd> | |
| <dt><strong> LIBRAW_DNG_STAGE3_APPLIED</strong></dt> | |
| <dd>DNG Stage3 conversion was performed</dd> | |
| <dt><strong>LIBRAW_WARN_DNG_NOT_PROCESSED</strong></dt> | |
| <dd>Image passed to Adobe DNG SDK, but refused</dd> | |
| <dt><strong>LIBRAW_WARN_DNG_NOT_PARSED</strong></dt> | |
| <dd>DNG image not parsed or refused in valid_for_dngsdk() internal call.</dd> | |
| <dt><strong>LIBRAW_WARN_VENDOR_CROP_SUGGESTED</strong></dt> | |
| <dd> If set: unknown/untested RAW image frame size passed to LibRaw, | |
| cropping may be incorrect.<br> | |
| It is suggested to use LibRaw::adjust_to_raw_inset_crop(1) for vendor | |
| specified crop. </dd> | |
| </dl> | |
| <dl> | |
| </dl> | |
| <p><a name="LibRaw_image_formats"></a></p> | |
| <h3>enum LibRaw_image_formats - possible types of data, contains in | |
| libraw_processed_image_t structure</h3> | |
| <p><strong> type </strong> field of libraw_processed_image_t structure may | |
| have one of these values:</p> | |
| <dl> | |
| <dt><strong> LIBRAW_IMAGE_BITMAP </strong></dt> | |
| <dd>The structure contains RGB-bitmap, metadata described in other fields | |
| of libraw_processed_image_t.</dd> | |
| <dt><strong> LIBRAW_IMAGE_JPEG </strong></dt> | |
| <dd>libraw_processed_image_t structure contains JPEG image. Only data_size | |
| field is meaningful.</dd> | |
| <dt><strong> LIBRAW_IMAGE_JPEGXL </strong></dt> | |
| <dd>libraw_processed_image_t structure contains JPEG-XL image. Only | |
| data_size field is meaningful.</dd> | |
| <dt><strong> LIBRAW_IMAGE_H265</strong></dt> | |
| <dd>libraw_processed_image_t structure contains Canon H265 thumbnail | |
| image. Only data_size field is meaningful.</dd> | |
| </dl> | |
| <p> <a name="LibRaw_processing_options"></a></p> | |
| <h3> enum enum LibRaw_processing_options - bit that affects RAW data | |
| extraction</h3> | |
| These flags could be OR'ed with imgdata.params.raw_processing_options: | |
| <p>Pentax 4-shot options:</p> | |
| <ul> | |
| <li><b>LIBRAW_RAWOPTIONS_PENTAX_PS_ALLFRAMES</b> - merge all frames for | |
| Pentax 4-shot files</li> | |
| </ul> | |
| <p>Floating point DNG files:</p> | |
| <ul> | |
| <li><b>LIBRAW_RAWOPTIONS_CONVERTFLOAT_TO_INT</b> - convert FP data to | |
| 16-bit integer</li> | |
| </ul> | |
| <p>Sony ARQ Files:</p> | |
| <ul> | |
| <li><b>LIBRAW_RAWOPTIONS_ARQ_SKIP_CHANNEL_SWAP</b> - do not perform Sony | |
| ARQ channel swap to RGBG channel format, but use RGGB original channel | |
| order</li> | |
| </ul> | |
| <p>DNG processing flags:</p> | |
| <ul> | |
| <li><b>LIBRAW_RAWOPTIONS_DONT_CHECK_DNG_ILLUMINANT</b> - skip DNG | |
| illuminant check when parsing DNG color data (use for compatibility w/ | |
| older LibRaw versions).</li> | |
| <li><b>LIBRAW_RAWOPTIONS_DNGSDK_ZEROCOPY</b> - do not copy data extracted | |
| by Adobe DNG SDK into separate buffer, but use DNG SDK buffer as is.</li> | |
| <li><b>LIBRAW_RAWOPTIONS_DNG_ADD_ENHANCED</b> - if set, LibRaw will add | |
| Enhanced DNG frame (NewSubfileType == 16) to the list of available | |
| frames.</li> | |
| <li><b>LIBRAW_RAWOPTIONS_DNG_ADD_PREVIEWS</b> - if set, LibRaw will add | |
| previews (NewSubfileType == 1) to the frames list.</li> | |
| <li><b>LIBRAW_RAWOPTIONS_DNG_ADD_MASK</b> - if set, LibRaw will add DNG | |
| full resolution transparency mask (NewSubfileType == 4) to the frames | |
| list.</li> | |
| <li><b>LIBRAW_RAWOPTIONS_DNG_PREFER_LARGEST_IMAGE</b>- By default, DNG | |
| frames are not reordered and are available in same order as in DNG | |
| (LibRaw traverses IFD/Sub-IFD trees in deep-first order).This bit will | |
| prioritize the largest image</li> | |
| <li><strong>LIBRAW_RAWOPTIONS_DNG_STAGE2</strong> - request DNG Stage2 | |
| processing (by DNG SDK)</li> | |
| <li><strong>LIBRAW_RAWOPTIONS_DNG_STAGE3</strong> - request DNG Stage3 | |
| processing</li> | |
| <li><strong>LIBRAW_RAWOPTIONS_DNG_STAGE2_IFPRESENT, | |
| LIBRAW_RAWOPTIONS_DNG_STAGE3_IFPRESENT</strong> - same as | |
| _STAGE2/_STAGE3 above, but Stage2/Stage3 processing is performed only if | |
| DNGOpcodeList2/List3 tag(s) exist in DNG file. </li> | |
| <li><strong>LIBRAW_RAWOPTIONS_DNG_STAGE23_IFPRESENT_JPGJX</strong> - apply | |
| Stage2/Stage3 processing only for JPEG/JPEG-XL DNG data. </li> | |
| <li><strong>LIBRAW_RAWOPTIONS_DNG_ALLOWSIZECHANGE</strong> - by default, | |
| if image size parsed by DNG SDK does not match image dimensions parsed | |
| by LibRaw, processing will stop with LIBRAW_DATA_ERROR code. This flags | |
| allows size change in LibRaw::unpack() stage.</li> | |
| <li><strong>LIBRAW_RAWOPTIONS_DNG_DISABLEWBADJUST</strong> - by default, | |
| for DNG images with different per-channel maximums WB adjustment | |
| procedure is performed. This flag disables such adjustment.</li> | |
| </ul> | |
| Other flags | |
| <ul> | |
| <li><b>LIBRAW_RAWOPTIONS_NO_ROTATE_FOR_KODAK_THUMBNAILS</b> - disable | |
| auto-rotation for Kodak PPM bitmaps</li> | |
| <li><b>LIBRAW_RAWOPTIONS_USE_PPM16_THUMBS</b> - enable 16-bit PPM | |
| thumbnails</li> | |
| <li><b>LIBRAW_RAWOPTIONS_ZEROFILTERS_FOR_MONOCHROMETIFFS</b> - by default, | |
| LibRaw assigns bayer pattern for Monochrome TIFF files (e.g. images from | |
| Kodak 760).This does not work as expected if input file is really | |
| monochrome (e.g. scan from Imacon X1 in monochrome mode).This flag will | |
| force monochrome mode for TIFF RAWs w/o bayer filter tags (so, it will | |
| break old Kodak processing). It is better to make it settable via user | |
| interaction.</li> | |
| <li><strong>LIBRAW_RAWOPTIONS_PROVIDE_NONSTANDARD_WB</strong> - If set and | |
| when applicable, color.cam_mul[] and color.WB_Coeffs/WBCT_Coeffs will | |
| contain WB settings for a non-standard workflow. Right now only Sony | |
| DSC-F828 is affected: camera-recorded white balance can't be directly | |
| applied to raw data because WB is for RGB, while raw data is RGBE.</li> | |
| <li><strong>LIBRAW_RAWOPTIONS_CAMERAWB_FALLBACK_TO_DAYLIGHT</strong> - if | |
| use_camera_wb is set, but no camera-recorded white balance present in | |
| metadata, then fallback to daylight WB (default: fallback to | |
| auto-balance).</li> | |
| <li><strong>LIBRAW_RAWOPTIONS_CHECK_THUMBNAILS_KNOWN_VENDORS</strong> - | |
| Some cameras (e.g.Ricoh) may record broken thumbnail in file:data offset | |
| plus data size is beyond filecontents. This flag enforces size+offset | |
| checks for files from known vendors (this will result into correct but | |
| smaller thumbnail selected).</li> | |
| <li><strong>LIBRAW_RAWOPTIONS_CHECK_THUMBNAILS_ALL_VENDORS</strong> - same | |
| is above, but check is performed regardless of vendor (Make tag).</li> | |
| <li><strong>LIBRAW_RAWOPTIONS_ALLOW_JPEGXL_PREVIEWS</strong> - if set, | |
| LibRaw will perceive such previews in the same way as JPEG onesgest | |
| preview is selected by default, etc). | |
| <p> tformat field for such preview is set to LIBRAW_THUMBNAIL_JPEGXL. | |
| Image metadata (width/height/channels count) is not parsed for JPEG-XL | |
| previews </p> | |
| </li> | |
| <li><strong>LIBRAW_RAWOPTIONS_CANON_IGNORE_MAKERNOTES_ROTATION</strong> - | |
| if set, LibRaw set rotation based on EXIF Orientation tag instead of | |
| Makernotes rotation field. </li> | |
| <li><strong>LIBRAW_RAWOPTIONS_CANON_CHECK_CAMERA_AUTO_ROTATION_MODE</strong> | |
| - if set, LibRaw will analyze AutoRotation makernotes tag when guessing | |
| camera rotation. Available for very limited model set. </li> | |
| </ul> | |
| <ul> | |
| </ul> | |
| <p> <a name="LibRaw_rawspecial_t"></a></p> | |
| <h3>enum LibRaw_rawspecial_t - special/non standard RAW extraction modes</h3> | |
| These flags are applied to imgdata.rawparams: | |
| <p>Sony ARW2.3 processing options: (for more details see | |
| http://www.rawdigger.com/howtouse/sony-craw-arw2-posterization-detection)</p> | |
| <ul> | |
| <li><b>LIBRAW_RAWSPECIAL_SONYARW2_BASEONLY</b> - decode only base pixels, | |
| leave delta pixels as zero;</li> | |
| <li><b>LIBRAW_RAWSPECIAL_SONYARW2_DELTAONLY</b> - decode only delta pixels | |
| with base pixels zeroed;</li> | |
| <li><b>LIBRAW_RAWSPECIAL_SONYARW2_DELTAZEROBASE</b> - decode delta pixels, | |
| do not add base value;</li> | |
| <li><b>LIBRAW_RAWSPECIAL_SONYARW2_DELTATOVALUE</b> - show possible | |
| posterization areas;</li> | |
| </ul> | |
| <p>Sigma Quattro decoding flags:</p> | |
| <ul> | |
| <li><b>LIBRAW_RAWSPECIAL_NODP2Q_INTERPOLATERG</b> - disable R/G channels | |
| interpolation</li> | |
| <li><b>LIBRAW_RAWSPECIAL_NODP2Q_INTERPOLATEAF</b> - disable data | |
| interpolation of low-sensitivity (AF or overexposure control) points on | |
| Quattro sensors.</li> | |
| </ul> | |
| <p>Canon/Nikon small RAW (YCC) decoding flags (do not use both at same | |
| time):</p> | |
| <ul> | |
| <li><b>LIBRAW_RAWSPECIAL_SRAW_NO_RGB</b> - disable YCC to RGB conversion</li> | |
| <li><b>LIBRAW_RAWSPECIAL_SRAW_NO_INTERPOLATE</b> - disable missing color | |
| values interpolation</li> | |
| </ul> | |
| <a href="index.html">[back to Index] </a> | |
| </body> | |
| </html> |