[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:39:43 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=02c24f4

The following commit has been merged in the master branch:
commit 02c24f4a2d7dd4d4eeaed612bafb245509fda331
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Sun Aug 17 15:18:33 2008 +0000

    Added DNG tags and a few TIFF tags.
---
 src/tags.cpp | 368 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/tags.hpp |   2 +-
 2 files changed, 369 insertions(+), 1 deletion(-)

diff --git a/src/tags.cpp b/src/tags.cpp
index b7690a7..21b153b 100644
--- a/src/tags.cpp
+++ b/src/tags.cpp
@@ -130,6 +130,7 @@ namespace Exiv2 {
         { gpsTags,         "GPS",                  N_("GPS information")              },
         { iopTags,         "Interoperability",     N_("Interoperability information") },
         { makerTags,       "Makernote",            N_("Vendor specific information")  },
+        { dngTags,         "DngTags",              N_("Adobe DNG tags")               },
         { lastSectionId,   "(LastSection)",        N_("Last section")                 }
     };
 
@@ -237,6 +238,15 @@ namespace Exiv2 {
         { 2, N_("Co-sited") }
     };
 
+    //! CFALayout, tag 0xc617
+    extern const TagDetails exifCfaLayout[] = {
+        { 1, N_("Rectangular (or square) layout") },
+        { 2, N_("Staggered layout A: even columns are offset down by 1/2 row")  },
+        { 3, N_("Staggered layout B: even columns are offset up by 1/2 row")    },
+        { 4, N_("Staggered layout C: even rows are offset right by 1/2 column") },
+        { 5, N_("Staggered layout D: even rows are offset left by 1/2 column")  }
+    };
+
     //! Base IFD Tags (IFD0 and IFD1)
     static const TagInfo ifdTagInfo[] = {
         TagInfo(0x000b, "ProcessingSoftware", N_("Processing Software"),
@@ -378,6 +388,22 @@ namespace Exiv2 {
                 "Normally this tag is not necessary, since colorspace is "
                 "specified in the colorspace information tag (<ColorSpace>)."),
                 ifd0Id, imgCharacter, unsignedRational, printValue),
+        TagInfo(0x0142, "TileWidth", N_("Tile Width"),
+                N_("The tile width in pixels. This is the number of columns in each tile."),
+                ifd0Id, recOffset, unsignedShort, printValue), // TIFF tag
+        TagInfo(0x0143, "TileLength", N_("Tile Length"),
+                N_("The tile length (height) in pixels. This is the number of rows in each tile."),
+                ifd0Id, recOffset, unsignedShort, printValue), // TIFF tag
+        TagInfo(0x0144, "TileOffsets", N_("Tile Offsets"),
+                N_("For each tile, the byte offset of that tile, as compressed and "
+                   "stored on disk. The offset is specified with respect to the "
+                   "beginning of the TIFF file. Note that this implies that each "
+                   "tile has a location independent of the locations of other tiles."),
+                ifd0Id, recOffset, unsignedShort, printValue), // TIFF tag
+        TagInfo(0x0145, "TileByteCounts", N_("Tile Byte Counts"),
+                N_("For each tile, the number of (compressed) bytes in that tile. See "
+                   "TileOffsets for a description of how the byte counts are ordered."),
+                ifd0Id, recOffset, unsignedShort, printValue), // TIFF tag
         TagInfo(0x014a, "SubIFDs", N_("SubIFD Offsets"),
                 N_("Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."),
                 ifd0Id, otherTags, unsignedLong, printValue),
@@ -519,6 +545,348 @@ namespace Exiv2 {
         TagInfo(0xc4a5, "PrintImageMatching", N_("Print Image Matching"),
                 N_("Print Image Matching, descriptiont needed."),
                 ifd0Id, otherTags, undefined, printValue),
+        TagInfo(0xc612, "DNGVersion", N_("DNG version"),
+                N_("This tag encodes the DNG four-tier version number. For files "
+                   "compliant with version 1.1.0.0 of the DNG specification, this "
+                   "tag should contain the bytes: 1, 1, 0, 0."),
+                ifd0Id, dngTags, unsignedByte, printValue), // DNG tag
+        TagInfo(0xc613, "DNGBackwardVersion", N_("DNG backward version"),
+                N_("This tag specifies the oldest version of the Digital Negative "
+                   "specification for which a file is compatible. Readers should"
+                   "not attempt to read a file if this tag specifies a version "
+                   "number that is higher than the version number of the specification "
+                   "the reader was based on.  In addition to checking the version tags, "
+                   "readers should, for all tags, check the types, counts, and values, "
+                   "to verify it is able to correctly read the file."),
+                ifd0Id, dngTags, unsignedByte, printValue), // DNG tag
+        TagInfo(0xc614, "UniqueCameraModel", N_("Unique Camera Model"),
+                N_("Defines a unique, non-localized name for the camera model that "
+                   "created the image in the raw file. This name should include the "
+                   "manufacturer's name to avoid conflicts, and should not be localized, "
+                   "even if the camera name itself is localized for different markets "
+                   "(see LocalizedCameraModel). This string may be used by reader "
+                   "software to index into per-model preferences and replacement profiles."),
+                ifd0Id, dngTags, asciiString, printValue), // DNG tag
+        TagInfo(0xc615, "LocalizedCameraModel", N_("Localized Camera Model"),
+                N_("Similar to the UniqueCameraModel field, except the name can be "
+                   "localized for different markets to match the localization of the "
+                   "camera name."),
+                ifd0Id, dngTags, unsignedByte, printValue), // DNG tag
+        TagInfo(0xc616, "CFAPlaneColor", N_("CFA Plane Color"),
+                N_("Provides a mapping between the values in the CFAPattern tag and the "
+                   "plane numbers in LinearRaw space. This is a required tag for non-RGB "
+                   "CFA images."),
+                ifd0Id, dngTags, unsignedByte, printValue), // DNG tag
+        TagInfo(0xc617, "CFALayout", N_("CFA Layout"),
+                N_("Describes the spatial layout of the CFA."),
+                ifd0Id, dngTags, unsignedShort, EXV_PRINT_TAG(exifCfaLayout)), // DNG tag
+        TagInfo(0xc618, "LinearizationTable", N_("Linearization Table"),
+                N_("Describes a lookup table that maps stored values into linear values. "
+                   "This tag is typically used to increase compression ratios by storing "
+                   "the raw data in a non-linear, more visually uniform space with fewer "
+                   "total encoding levels. If SamplesPerPixel is not equal to one, this "
+                   "single table applies to all the samples for each pixel."),
+                ifd0Id, dngTags, unsignedShort, printValue), // DNG tag
+        TagInfo(0xc619, "BlackLevelRepeatDim", N_("Black Level Repeat Dim"),
+                N_("Specifies repeat pattern size for the BlackLevel tag."),
+                ifd0Id, dngTags, unsignedShort, printValue), // DNG tag
+        TagInfo(0xc61a, "BlackLevel", N_("Black Level"),
+                N_("Specifies the zero light (a.k.a. thermal black or black current) "
+                   "encoding level, as a repeating pattern. The origin of this pattern "
+                   "is the top-left corner of the ActiveArea rectangle. The values are "
+                   "stored in row-column-sample scan order."),
+                ifd0Id, dngTags, unsignedRational, printValue), // DNG tag
+        TagInfo(0xc61b, "BlackLevelDeltaH", N_("Black Level Delta H"),
+                N_("If the zero light encoding level is a function of the image column, "
+                   "BlackLevelDeltaH specifies the difference between the zero light "
+                   "encoding level for each column and the baseline zero light encoding "
+                   "level. If SamplesPerPixel is not equal to one, this single table "
+                   "applies to all the samples for each pixel."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
+        TagInfo(0xc61c, "BlackLevelDeltaV", N_("Black Level Delta V"),
+                N_("If the zero light encoding level is a function of the image row, "
+                   "this tag specifies the difference between the zero light encoding "
+                   "level for each row and the baseline zero light encoding level. If "
+                   "SamplesPerPixel is not equal to one, this single table applies to "
+                   "all the samples for each pixel."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
+        TagInfo(0xc61d, "WhiteLevel", N_("White Level"),
+                N_("This tag specifies the fully saturated encoding level for the raw "
+                   "sample values. Saturation is caused either by the sensor itself "
+                   "becoming highly non-linear in response, or by the camera's analog "
+                   "to digital converter clipping."),
+                ifd0Id, dngTags, unsignedShort, printValue), // DNG tag
+        TagInfo(0xc61e, "DefaultScale", N_("Default Scale"),
+                N_("DefaultScale is required for cameras with non-square pixels. It "
+                   "specifies the default scale factors for each direction to convert "
+                   "the image to square pixels. Typically these factors are selected "
+                   "to approximately preserve total pixel count. For CFA images that "
+                   "use CFALayout equal to 2, 3, 4, or 5, such as the Fujifilm SuperCCD, "
+                   "these two values should usually differ by a factor of 2.0."),
+                ifd0Id, dngTags, unsignedRational, printValue), // DNG tag
+        TagInfo(0xc61f, "DefaultCropOrigin", N_("Default Crop Origin"),
+                N_("Raw images often store extra pixels around the edges of the final "
+                   "image. These extra pixels help prevent interpolation artifacts near "
+                   "the edges of the final image. DefaultCropOrigin specifies the origin "
+                   "of the final image area, in raw image coordinates (i.e., before the "
+                   "DefaultScale has been applied), relative to the top-left corner of "
+                   "the ActiveArea rectangle."),
+                ifd0Id, dngTags, unsignedShort, printValue), // DNG tag
+        TagInfo(0xc620, "DefaultCropSize", N_("Default Crop Size"),
+                N_("Raw images often store extra pixels around the edges of the final "
+                   "image. These extra pixels help prevent interpolation artifacts near "
+                   "the edges of the final image. DefaultCropSize specifies the size of "
+                   "the final image area, in raw image coordinates (i.e., before the "
+                   "DefaultScale has been applied)."),
+                ifd0Id, dngTags, unsignedShort, printValue), // DNG tag
+        TagInfo(0xc621, "ColorMatrix1", N_("Color Matrix 1"),
+                N_("ColorMatrix1 defines a transformation matrix that converts XYZ "
+                   "values to reference camera native color space values, under the "
+                   "first calibration illuminant. The matrix values are stored in row "
+                   "scan order. The ColorMatrix1 tag is required for all non-monochrome "
+                   "DNG files."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
+        TagInfo(0xc622, "ColorMatrix2", N_("Color Matrix 2"),
+                N_("ColorMatrix2 defines a transformation matrix that converts XYZ "
+                   "values to reference camera native color space values, under the "
+                   "second calibration illuminant. The matrix values are stored in row "
+                   "scan order."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
+        TagInfo(0xc623, "CameraCalibration1", N_("Camera Calibration 1"),
+                N_("CameraClalibration1 defines a calibration matrix that transforms "
+                   "reference camera native space values to individual camera native "
+                   "space values under the first calibration illuminant. The matrix is "
+                   "stored in row scan order. This matrix is stored separately from the "
+                   "matrix specified by the ColorMatrix1 tag to allow raw converters to "
+                   "swap in replacement color matrices based on UniqueCameraModel tag, "
+                   "while still taking advantage of any per-individual camera calibration "
+                   "performed by the camera manufacturer."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
+        TagInfo(0xc624, "CameraCalibration2", N_("Camera Calibration 2"),
+                N_("CameraCalibration2 defines a calibration matrix that transforms "
+                   "reference camera native space values to individual camera native "
+                   "space values under the second calibration illuminant. The matrix is "
+                   "stored in row scan order. This matrix is stored separately from the "
+                   "matrix specified by the ColorMatrix2 tag to allow raw converters to "
+                   "swap in replacement color matrices based on UniqueCameraModel tag, "
+                   "while still taking advantage of any per-individual camera calibration "
+                   "performed by the camera manufacturer."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
+        TagInfo(0xc625, "ReductionMatrix1", N_("Reduction Matrix 1"),
+                N_("ReductionMatrix1 defines a dimensionality reduction matrix for use as "
+                   "the first stage in converting color camera native space values to XYZ "
+                   "values, under the first calibration illuminant. This tag may only be "
+                   "used if ColorPlanes is greater than 3. The matrix is stored in row "
+                   "scan order."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
+        TagInfo(0xc626, "ReductionMatrix2", N_("Reduction Matrix 2"),
+                N_("ReductionMatrix2 defines a dimensionality reduction matrix for use as "
+                   "the first stage in converting color camera native space values to XYZ "
+                   "values, under the second calibration illuminant. This tag may only be "
+                   "used if ColorPlanes is greater than 3. The matrix is stored in row "
+                   "scan order."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
+        TagInfo(0xc627, "AnalogBalance", N_("Analog Balance"),
+                N_("Normally the stored raw values are not white balanced, since any "
+                   "digital white balancing will reduce the dynamic range of the final "
+                   "image if the user decides to later adjust the white balance; "
+                   "however, if camera hardware is capable of white balancing the color "
+                   "channels before the signal is digitized, it can improve the dynamic "
+                   "range of the final image. AnalogBalance defines the gain, either "
+                   "analog (recommended) or digital (not recommended) that has been "
+                   "applied the stored raw values."),
+                ifd0Id, dngTags, unsignedRational, printValue), // DNG tag
+        TagInfo(0xc628, "AsShotNeutral", N_("As Shot Neutral"),
+                N_("Specifies the selected white balance at time of capture, encoded as "
+                   "the coordinates of a perfectly neutral color in linear reference "
+                   "space values. The inclusion of this tag precludes the inclusion of "
+                   "the AsShotWhiteXY tag."),
+                ifd0Id, dngTags, unsignedShort, printValue), // DNG tag
+        TagInfo(0xc629, "AsShotWhiteXY", N_("As Shot White XY"),
+                N_("Specifies the selected white balance at time of capture, encoded as "
+                   "x-y chromaticity coordinates. The inclusion of this tag precludes "
+                   "the inclusion of the AsShotNeutral tag."),
+                ifd0Id, dngTags, unsignedRational, printValue), // DNG tag
+        TagInfo(0xc62a, "BaselineExposure", N_("Baseline Exposure"),
+                N_("Camera models vary in the trade-off they make between highlight "
+                   "headroom and shadow noise. Some leave a significant amount of "
+                   "highlight headroom during a normal exposure. This allows significant "
+                   "negative exposure compensation to be applied during raw conversion, "
+                   "but also means normal exposures will contain more shadow noise. Other "
+                   "models leave less headroom during normal exposures. This allows for "
+                   "less negative exposure compensation, but results in lower shadow "
+                   "noise for normal exposures. Because of these differences, a raw "
+                   "converter needs to vary the zero point of its exposure compensation "
+                   "control from model to model. BaselineExposure specifies by how much "
+                   "(in EV units) to move the zero point. Positive values result in "
+                   "brighter default results, while negative values result in darker "
+                   "default results."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
+        TagInfo(0xc62b, "BaselineNoise", N_("Baseline Noise"),
+                N_("Specifies the relative noise level of the camera model at a baseline "
+                   "ISO value of 100, compared to a reference camera model. Since noise "
+                   "levels tend to vary approximately with the square root of the ISO "
+                   "value, a raw converter can use this value, combined with the current "
+                   "ISO, to estimate the relative noise level of the current image."),
+                ifd0Id, dngTags, unsignedRational, printValue), // DNG tag
+        TagInfo(0xc62c, "BaselineSharpness", N_("Baseline Sharpness"),
+                N_("Specifies the relative amount of sharpening required for this camera "
+                   "model, compared to a reference camera model. Camera models vary in "
+                   "the strengths of their anti-aliasing filters. Cameras with weak or "
+                   "no filters require less sharpening than cameras with strong "
+                   "anti-aliasing filters."),
+                ifd0Id, dngTags, unsignedRational, printValue), // DNG tag
+        TagInfo(0xc62d, "BayerGreenSplit", N_("Bayer Green Split"),
+                N_("Only applies to CFA images using a Bayer pattern filter array. This "
+                   "tag specifies, in arbitrary units, how closely the values of the "
+                   "green pixels in the blue/green rows track the values of the green "
+                   "pixels in the red/green rows. A value of zero means the two kinds "
+                   "of green pixels track closely, while a non-zero value means they "
+                   "sometimes diverge. The useful range for this tag is from 0 (no "
+                   "divergence) to about 5000 (quite large divergence)."),
+                ifd0Id, dngTags, unsignedLong, printValue), // DNG tag
+        TagInfo(0xc62e, "LinearResponseLimit", N_("Linear Response Limit"),
+                N_("Some sensors have an unpredictable non-linearity in their response "
+                   "as they near the upper limit of their encoding range. This "
+                   "non-linearity results in color shifts in the highlight areas of the "
+                   "resulting image unless the raw converter compensates for this effect. "
+                   "LinearResponseLimit specifies the fraction of the encoding range "
+                   "above which the response may become significantly non-linear."),
+                ifd0Id, dngTags, unsignedRational, printValue), // DNG tag
+        TagInfo(0xc62f, "CameraSerialNumber", N_("Camera Serial Number"),
+                N_("CameraSerialNumber contains the serial number of the camera or camera "
+                   "body that captured the image."),
+                ifd0Id, dngTags, asciiString, printValue), // DNG tag
+        TagInfo(0xc630, "LensInfo", N_("Lens Info"),
+                N_("Contains information about the lens that captured the image. If the "
+                   "minimum f-stops are unknown, they should be encoded as 0/0."),
+                ifd0Id, dngTags, unsignedRational, printValue), // DNG tag
+        TagInfo(0xc631, "ChromaBlurRadius", N_("Chroma Blur Radius"),
+                N_("ChromaBlurRadius provides a hint to the DNG reader about how much "
+                   "chroma blur should be applied to the image. If this tag is omitted, "
+                   "the reader will use its default amount of chroma blurring. "
+                   "Normally this tag is only included for non-CFA images, since the "
+                   "amount of chroma blur required for mosaic images is highly dependent "
+                   "on the de-mosaic algorithm, in which case the DNG reader's default "
+                   "value is likely optimized for its particular de-mosaic algorithm."),
+                ifd0Id, dngTags, unsignedRational, printValue), // DNG tag
+        TagInfo(0xc632, "AntiAliasStrength", N_("Anti Alias Strength"),
+                N_("Provides a hint to the DNG reader about how strong the camera's "
+                   "anti-alias filter is. A value of 0.0 means no anti-alias filter "
+                   "(i.e., the camera is prone to aliasing artifacts with some subjects), "
+                   "while a value of 1.0 means a strong anti-alias filter (i.e., the "
+                   "camera almost never has aliasing artifacts)."),
+                ifd0Id, dngTags, unsignedRational, printValue), // DNG tag
+        TagInfo(0xc633, "ShadowScale", N_("Shadow Scale"),
+                N_("This tag is used by Adobe Camera Raw to control the sensitivity of "
+                   "its 'Shadows' slider."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
+        TagInfo(0xc634, "DNGPrivateData", N_("DNG Private Data"),
+                N_("Provides a way for camera manufacturers to store private data in the "
+                   "DNG file for use by their own raw converters, and to have that data "
+                   "preserved by programs that edit DNG files."),
+                ifd0Id, dngTags, unsignedByte, printValue), // DNG tag
+        TagInfo(0xc635, "MakerNoteSafety", N_("MakerNote Safety"),
+                N_("MakerNoteSafety lets the DNG reader know whether the EXIF MakerNote "
+                   "tag is safe to preserve along with the rest of the EXIF data. File "
+                   "browsers and other image management software processing an image "
+                   "with a preserved MakerNote should be aware that any thumbnail "
+                   "image embedded in the MakerNote may be stale, and may not reflect "
+                   "the current state of the full size image."),
+                ifd0Id, dngTags, unsignedShort, printValue), // DNG tag
+        TagInfo(0xc65a, "CalibrationIlluminant1", N_("Calibration Illuminant 1"),
+                N_("The illuminant used for the first set of color calibration tags "
+                   "(ColorMatrix1, CameraCalibration1, ReductionMatrix1). The legal "
+                   "values for this tag are the same as the legal values for the "
+                   "LightSource EXIF tag."),
+                ifd0Id, dngTags, unsignedShort, printValue), // DNG tag
+        TagInfo(0xc65b, "CalibrationIlluminant2", N_("Calibration Illuminant 2"),
+                N_("The illuminant used for an optional second set of color calibration "
+                   "tags (ColorMatrix2, CameraCalibration2, ReductionMatrix2). The legal "
+                   "values for this tag are the same as the legal values for the "
+                   "CalibrationIlluminant1 tag; however, if both are included, neither "
+                   "is allowed to have a value of 0 (unknown)."),
+                ifd0Id, dngTags, unsignedShort, printValue), // DNG tag
+        TagInfo(0xc65c, "BestQualityScale", N_("Best Quality Scale"),
+                N_("For some cameras, the best possible image quality is not achieved "
+                   "by preserving the total pixel count during conversion. For example, "
+                   "Fujifilm SuperCCD images have maximum detail when their total pixel "
+                   "count is doubled. This tag specifies the amount by which the values "
+                   "of the DefaultScale tag need to be multiplied to achieve the best "
+                   "quality image size."),
+                ifd0Id, dngTags, unsignedRational, printValue), // DNG tag
+        TagInfo(0xc65d, "RawDataUniqueID", N_("Raw Data Unique ID"),
+                N_("This tag contains a 16-byte unique identifier for the raw image data "
+                   "in the DNG file. DNG readers can use this tag to recognize a "
+                   "particular raw image, even if the file's name or the metadata "
+                   "contained in the file has been changed. If a DNG writer creates such "
+                   "an identifier, it should do so using an algorithm that will ensure "
+                   "that it is very unlikely two different images will end up having the "
+                   "same identifier."),
+                ifd0Id, dngTags, unsignedByte, printValue), // DNG tag
+        TagInfo(0xc68b, "OriginalRawFileName", N_("Original Raw File Name"),
+                N_("If the DNG file was converted from a non-DNG raw file, then this tag "
+                   "contains the file name of that original raw file."),
+                ifd0Id, dngTags, unsignedByte, printValue), // DNG tag
+        TagInfo(0xc68c, "OriginalRawFileData", N_("Original Raw File Data"),
+                N_("If the DNG file was converted from a non-DNG raw file, then this tag "
+                   "contains the compressed contents of that original raw file. The "
+                   "contents of this tag always use the big-endian byte order. The tag "
+                   "contains a sequence of data blocks. Future versions of the DNG "
+                   "specification may define additional data blocks, so DNG readers "
+                   "should ignore extra bytes when parsing this tag. DNG readers should "
+                   "also detect the case where data blocks are missing from the end of "
+                   "the sequence, and should assume a default value for all the missing "
+                   "blocks. There are no padding or alignment bytes between data blocks."),
+                ifd0Id, dngTags, undefined, printValue), // DNG tag
+        TagInfo(0xc68d, "ActiveArea", N_("Active Area"),
+                N_("This rectangle defines the active (non-masked) pixels of the sensor. "
+                   "The order of the rectangle coordinates is: top, left, bottom, right."),
+                ifd0Id, dngTags, unsignedShort, printValue), // DNG tag
+        TagInfo(0xc68e, "MaskedAreas", N_("Masked Areas"),
+                N_("This tag contains a list of non-overlapping rectangle coordinates of "
+                   "fully masked pixels, which can be optionally used by DNG readers "
+                   "to measure the black encoding level. The order of each rectangle's "
+                   "coordinates is: top, left, bottom, right. If the raw image data has "
+                   "already had its black encoding level subtracted, then this tag should "
+                   "not be used, since the masked pixels are no longer useful."),
+                ifd0Id, dngTags, unsignedShort, printValue), // DNG tag
+        TagInfo(0xc68f, "AsShotICCProfile", N_("As-Shot ICC Profile"),
+                N_("This tag contains an ICC profile that, in conjunction with the "
+                   "AsShotPreProfileMatrix tag, provides the camera manufacturer with a "
+                   "way to specify a default color rendering from camera color space "
+                   "coordinates (linear reference values) into the ICC profile connection "
+                   "space. The ICC profile connection space is an output referred "
+                   "colorimetric space, whereas the other color calibration tags in DNG "
+                   "specify a conversion into a scene referred colorimetric space. This "
+                   "means that the rendering in this profile should include any desired "
+                   "tone and gamut mapping needed to convert between scene referred "
+                   "values and output referred values."),
+                ifd0Id, dngTags, undefined, printValue), // DNG tag
+        TagInfo(0xc690, "AsShotPreProfileMatrix", N_("As-Shot Pre-Profile Matrix"),
+                N_("This tag is used in conjunction with the AsShotICCProfile tag. It "
+                   "specifies a matrix that should be applied to the camera color space "
+                   "coordinates before processing the values through the ICC profile "
+                   "specified in the AsShotICCProfile tag. The matrix is stored in the "
+                   "row scan order. If ColorPlanes is greater than three, then this "
+                   "matrix can (but is not required to) reduce the dimensionality of the "
+                   "color data down to three components, in which case the AsShotICCProfile "
+                   "should have three rather than ColorPlanes input components."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
+        TagInfo(0xc691, "CurrentICCProfile", N_("Current ICC Profile"),
+                N_("This tag is used in conjunction with the CurrentPreProfileMatrix tag. "
+                   "The CurrentICCProfile and CurrentPreProfileMatrix tags have the same "
+                   "purpose and usage as the AsShotICCProfile and AsShotPreProfileMatrix "
+                   "tag pair, except they are for use by raw file editors rather than "
+                   "camera manufacturers."),
+                ifd0Id, dngTags, undefined, printValue), // DNG tag
+        TagInfo(0xc692, "CurrentPreProfileMatrix", N_("Current Pre-Profile Matrix"),
+                N_("This tag is used in conjunction with the CurrentICCProfile tag. "
+                   "The CurrentICCProfile and CurrentPreProfileMatrix tags have the same "
+                   "purpose and usage as the AsShotICCProfile and AsShotPreProfileMatrix "
+                   "tag pair, except they are for use by raw file editors rather than "
+                   "camera manufacturers."),
+                ifd0Id, dngTags, signedRational, printValue), // DNG tag
         // End of list marker
         TagInfo(0xffff, "(UnknownIfdTag)", N_("Unknown IFD tag"),
                 N_("Unknown IFD tag"),
diff --git a/src/tags.hpp b/src/tags.hpp
index 9f39bbc..fefd5b4 100644
--- a/src/tags.hpp
+++ b/src/tags.hpp
@@ -66,7 +66,7 @@ namespace Exiv2 {
     enum SectionId { sectionIdNotSet,
                      imgStruct, recOffset, imgCharacter, otherTags, exifFormat,
                      exifVersion, imgConfig, userInfo, relatedFile, dateTime,
-                     captureCond, gpsTags, iopTags, makerTags,
+                     captureCond, gpsTags, iopTags, makerTags, dngTags,
                      lastSectionId };
 
 // *****************************************************************************

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list