Browse Source

add missing documentation for enums

af/merge-core
Johannes Bildstein 9 years ago
parent
commit
ff1d466375
  1. 2
      src/ImageSharp/MetaData/Profiles/ICC/Enums/IccDeviceAttribute.cs
  2. 44
      src/ImageSharp/MetaData/Profiles/ICC/Enums/IccProfileClass.cs
  3. 4
      src/ImageSharp/MetaData/Profiles/ICC/Enums/IccProfileFlag.cs
  4. 26
      src/ImageSharp/MetaData/Profiles/ICC/Enums/IccRenderingIntent.cs
  5. 96
      src/ImageSharp/MetaData/Profiles/ICC/Enums/IccSignatureName.cs
  6. 138
      src/ImageSharp/MetaData/Profiles/ICC/Enums/IccTypeSignature.cs

2
src/ImageSharp/MetaData/Profiles/ICC/Enums/IccDeviceAttribute.cs

@ -9,6 +9,8 @@ namespace ImageSharp
/// <summary>
/// Device attributes. Can be combined with a logical OR
/// The least-significant 32 bits are defined by the ICC,
/// the rest can be used for vendor specific values
/// </summary>
[Flags]
internal enum IccDeviceAttribute : long

44
src/ImageSharp/MetaData/Profiles/ICC/Enums/IccProfileClass.cs

@ -10,12 +10,56 @@ namespace ImageSharp
/// </summary>
internal enum IccProfileClass : uint
{
/// <summary>
/// Input profiles are generally used with devices such as scanners and
/// digital cameras. The types of profiles available for use as Input
/// profiles are N-component LUT-based, Three-component matrix-based,
/// and monochrome.
/// </summary>
InputDevice = 0x73636E72, // scnr
/// <summary>
/// This class of profiles represents display devices such as monitors.
/// The types of profiles available for use as Display profiles are
/// N-component LUT-based, Three-component matrix-based, and monochrome.
/// </summary>
DisplayDevice = 0x6D6E7472, // mntr
/// <summary>
/// Output profiles are used to support devices such as printers and
/// film recorders. The types of profiles available for use as Output
/// profiles are N-component LUT-based and Monochrome.
/// </summary>
OutputDevice = 0x70727472, // prtr
/// <summary>
/// This profile contains a pre-evaluated transform that cannot be undone,
/// which represents a one-way link or connection between devices. It does
/// not represent any device model nor can it be embedded into images.
/// </summary>
DeviceLink = 0x6C696E6B, // link
/// <summary>
/// This profile provides the relevant information to perform a transformation
/// between colour encodings and the PCS. This type of profile is based on
/// modelling rather than device measurement or characterization data.
/// ColorSpace profiles may be embedded in images.
/// </summary>
ColorSpace = 0x73706163, // spac
/// <summary>
/// This profile represents abstract transforms and does not represent any
/// device model. Colour transformations using Abstract profiles are performed
/// from PCS to PCS. Abstract profiles cannot be embedded in images.
/// </summary>
Abstract = 0x61627374, // abst
/// <summary>
/// NamedColor profiles can be thought of as sibling profiles to device profiles.
/// For a given device there would be one or more device profiles to handle
/// process colour conversions and one or more named colour profiles to handle
/// named colours.
/// </summary>
NamedColor = 0x6E6D636C, // nmcl
}
}

4
src/ImageSharp/MetaData/Profiles/ICC/Enums/IccProfileFlag.cs

@ -8,7 +8,9 @@ namespace ImageSharp
using System;
/// <summary>
/// Profile flags. Can be combined with a logical OR
/// Profile flags. Can be combined with a logical OR.
/// The least-significant 16 bits are reserved for the ICC,
/// the rest can be used for vendor specific values
/// </summary>
[Flags]
internal enum IccProfileFlag : int

26
src/ImageSharp/MetaData/Profiles/ICC/Enums/IccRenderingIntent.cs

@ -10,9 +10,35 @@ namespace ImageSharp
/// </summary>
internal enum IccRenderingIntent : uint
{
/// <summary>
/// In perceptual transforms the PCS values represent hypothetical
/// measurements of a colour reproduction on the reference reflective
/// medium. By extension, for the perceptual intent, the PCS represents
/// the appearance of that reproduction as viewed in the reference viewing
/// environment by a human observer adapted to that environment. The exact
/// colour rendering of the perceptual intent is vendor specific.
/// </summary>
Perceptual = 0,
/// <summary>
/// Transformations for this intent shall re-scale the in-gamut,
/// chromatically adapted tristimulus values such that the white
/// point of the actual medium is mapped to the PCS white point
/// (for either input or output)
/// </summary>
MediaRelativeColorimetric = 1,
/// <summary>
/// The exact colour rendering of the saturation intent is vendor
/// specific and involves compromises such as trading off
/// preservation of hue in order to preserve the vividness of pure colours.
/// </summary>
Saturation = 2,
/// <summary>
/// Transformations for this intent shall leave the chromatically
/// adapted nCIEXYZ tristimulus values of the in-gamut colours unchanged.
/// </summary>
AbsoluteColorimetric = 3,
}
}

96
src/ImageSharp/MetaData/Profiles/ICC/Enums/IccSignatureName.cs

@ -15,68 +15,164 @@ namespace ImageSharp
/// </summary>
Unknown = 0,
/// <summary>
/// Scene Colorimetry Estimates
/// </summary>
SceneColorimetryEstimates = 0x73636F65, // scoe
/// <summary>
/// Scene Appearance Estimates
/// </summary>
SceneAppearanceEstimates = 0x73617065, // sape
/// <summary>
/// Focal Plane Colorimetry Estimates
/// </summary>
FocalPlaneColorimetryEstimates = 0x66706365, // fpce
/// <summary>
/// Reflection Hardcopy Original Colorimetry
/// </summary>
ReflectionHardcopyOriginalColorimetry = 0x72686F63, // rhoc
/// <summary>
/// Reflection Print Output Colorimetry
/// </summary>
ReflectionPrintOutputColorimetry = 0x72706F63, // rpoc
/// <summary>
/// Perceptual Reference Medium Gamut
/// </summary>
PerceptualReferenceMediumGamut = 0x70726D67, // prmg
/// <summary>
/// Film Scanner
/// </summary>
FilmScanner = 0x6673636E, // fscn
/// <summary>
/// Digital Camera
/// </summary>
DigitalCamera = 0x6463616D, // dcam
/// <summary>
/// Reflective Scanner
/// </summary>
ReflectiveScanner = 0x7273636E, // rscn
/// <summary>
/// InkJet Printer
/// </summary>
InkJetPrinter = 0x696A6574, // ijet
/// <summary>
/// Thermal Wax Printer
/// </summary>
ThermalWaxPrinter = 0x74776178, // twax
/// <summary>
/// Electrophotographic Printer
/// </summary>
ElectrophotographicPrinter = 0x6570686F, // epho
/// <summary>
/// Electrostatic Printer
/// </summary>
ElectrostaticPrinter = 0x65737461, // esta
/// <summary>
/// Dye Sublimation Printer
/// </summary>
DyeSublimationPrinter = 0x64737562, // dsub
/// <summary>
/// Photographic Paper Printer
/// </summary>
PhotographicPaperPrinter = 0x7270686F, // rpho
/// <summary>
/// Film Writer
/// </summary>
FilmWriter = 0x6670726E, // fprn
/// <summary>
/// Video Monitor
/// </summary>
VideoMonitor = 0x7669646D, // vidm
/// <summary>
/// Video Camera
/// </summary>
VideoCamera = 0x76696463, // vidc
/// <summary>
/// Projection Television
/// </summary>
ProjectionTelevision = 0x706A7476, // pjtv
/// <summary>
/// Cathode Ray Tube Display
/// </summary>
CathodeRayTubeDisplay = 0x43525420, // CRT
/// <summary>
/// Passive Matrix Display
/// </summary>
PassiveMatrixDisplay = 0x504D4420, // PMD
/// <summary>
/// Active Matrix Display
/// </summary>
ActiveMatrixDisplay = 0x414D4420, // AMD
/// <summary>
/// Photo CD
/// </summary>
PhotoCD = 0x4B504344, // KPCD
/// <summary>
/// Photographic Image Setter
/// </summary>
PhotographicImageSetter = 0x696D6773, // imgs
/// <summary>
/// Gravure
/// </summary>
Gravure = 0x67726176, // grav
/// <summary>
/// Offset Lithography
/// </summary>
OffsetLithography = 0x6F666673, // offs
/// <summary>
/// Silkscreen
/// </summary>
Silkscreen = 0x73696C6B, // silk
/// <summary>
/// Flexography
/// </summary>
Flexography = 0x666C6578, // flex
/// <summary>
/// Motion Picture Film Scanner
/// </summary>
MotionPictureFilmScanner = 0x6D706673, // mpfs
/// <summary>
/// Motion Picture Film Recorder
/// </summary>
MotionPictureFilmRecorder = 0x6D706672, // mpfr
/// <summary>
/// Digital Motion Picture Camera
/// </summary>
DigitalMotionPictureCamera = 0x646D7063, // dmpc
/// <summary>
/// Digital Cinema Projector
/// </summary>
DigitalCinemaProjector = 0x64636A70, // dcpj
}
}

138
src/ImageSharp/MetaData/Profiles/ICC/Enums/IccTypeSignature.cs

@ -15,52 +15,164 @@ namespace ImageSharp
/// </summary>
Unknown,
/// <summary>
/// The chromaticity tag type provides basic chromaticity data and type of
/// phosphors or colorants of a monitor to applications and utilities
/// </summary>
Chromaticity = 0x6368726D,
/// <summary>
/// This is an optional tag which specifies the laydown order in which colorants
/// will be printed on an n-colorant device. The laydown order may be the same
/// as the channel generation order listed in the colorantTableTag or the channel
/// order of a colour encoding type such as CMYK, in which case this tag is not
/// needed. When this is not the case (for example, ink-towers sometimes use
/// the order KCMY), this tag may be used to specify the laydown order of the
/// colorants
/// </summary>
ColorantOrder = 0x636c726f,
/// <summary>
/// The purpose of this tag is to identify the colorants used in the profile
/// by a unique name and set of PCSXYZ or PCSLAB values to give the colorant
/// an unambiguous value. The first colorant listed is the colorant of the
/// first device channel of a LUT tag. The second colorant listed is the
/// colorant of the second device channel of a LUT tag, and so on
/// </summary>
ColorantTable = 0x636c7274,
/// <summary>
/// The curveType embodies a one-dimensional function which maps an input
/// value in the domain of the function to an output value in the range
/// of the function
/// </summary>
Curve = 0x63757276,
/// <summary>
/// The dataType is a simple data structure that contains either 7-bit ASCII
/// or binary data
/// </summary>
Data = 0x64617461,
/// <summary>
/// Date and time defined by 6 unsigned 16bit integers (year, month, day, hour, minute, second)
/// Date and time defined by 6 unsigned 16bit integers
/// (year, month, day, hour, minute, second)
/// </summary>
DateTime = 0x6474696D,
/// <summary>
/// Lookup table with 16bit unsigned integers (ushort)
/// This structure represents a colour transform using tables with 16-bit
/// precision. This type contains four processing elements: a 3 × 3 matrix
/// (which shall be the identity matrix unless the input colour space is
/// PCSXYZ), a set of one-dimensional input tables, a multi-dimensional
/// lookup table, and a set of one-dimensional output tables
/// </summary>
Lut16 = 0x6D667432,
/// <summary>
/// Lookup table with 8bit unsigned integers (byte)
/// This structure represents a colour transform using tables of 8-bit
/// precision. This type contains four processing elements: a 3 × 3 matrix
/// (which shall be the identity matrix unless the input colour space is
/// PCSXYZ), a set of one-dimensional input tables, a multi-dimensional
/// lookup table, and a set of one-dimensional output tables.
/// </summary>
Lut8 = 0x6D667431,
/// <summary>
/// This structure represents a colour transform. The type contains up
/// to five processing elements which are stored in the AToBTag tag
/// in the following order: a set of one-dimensional curves, a 3 × 3
/// matrix with offset terms, a set of one-dimensional curves, a
/// multi-dimensional lookup table, and a set of one-dimensional
/// output curves
/// </summary>
LutAToB = 0x6D414220,
/// <summary>
/// This structure represents a colour transform. The type contains
/// up to five processing elements which are stored in the BToATag
/// in the following order: a set of one-dimensional curves, a 3 × 3
/// matrix with offset terms, a set of one-dimensional curves, a
/// multi-dimensional lookup table, and a set of one-dimensional curves.
/// </summary>
LutBToA = 0x6D424120,
/// <summary>
/// This information refers only to the internal
/// profile data and is meant to provide profile makers an alternative
/// to the default measurement specifications
/// </summary>
Measurement = 0x6D656173,
/// <summary>
/// Unicode text in one or more languages
/// This tag structure contains a set of records each referencing a
/// multilingual Unicode string associated with a profile. Each string
/// is referenced in a separate record with the information about what
/// language and region the string is for.
/// </summary>
MultiLocalizedUnicode = 0x6D6C7563,
/// <summary>
/// This structure represents a colour transform, containing a sequence
/// of processing elements. The processing elements contained in the
/// structure are defined in the structure itself, allowing for a flexible
/// structure. Currently supported processing elements are: a set of one
/// dimensional curves, a matrix with offset terms, and a multidimensional
/// lookup table (CLUT). Other processing element types may be added in
/// the future. Each type of processing element may be contained any
/// number of times in the structure.
/// </summary>
MultiProcessElements = 0x6D706574,
/// <summary>
/// This type is a count value and array of structures that provide colour
/// coordinates for colour names. For each named colour, a PCS and optional
/// device representation of the colour are given. Both representations are
/// 16-bit values and PCS values shall be relative colorimetric. The device
/// representation corresponds to the header’s "data colour space" field.
/// This representation should be consistent with the "number of device
/// coordinates" field in the namedColor2Type. If this field is 0, device
/// coordinates are not provided. The PCS representation corresponds to the
/// header's PCS field. The PCS representation is always provided. Colour
/// names are fixed-length, 32-byte fields including null termination. In
/// order to maintain maximum portability, it is strongly recommended that
/// special characters of the 7-bit ASCII set not be used.
/// </summary>
NamedColor2 = 0x6E636C32,
/// <summary>
/// This type describes a one-dimensional curve by specifying one of a
/// predefined set of functions using the parameters.
/// </summary>
ParametricCurve = 0x70617261,
/// <summary>
/// This type is an array of structures, each of which contains information
/// from the header fields and tags from the original profiles which were
/// combined to create the final profile. The order of the structures is
/// the order in which the profiles were combined and includes a structure
/// for the final profile. This provides a description of the profile
/// sequence from source to destination, typically used with the DeviceLink
/// profile.
/// </summary>
ProfileSequenceDesc = 0x70736571,
/// <summary>
/// This type is an array of structures, each of which contains information
/// for identification of a profile used in a sequence.
/// </summary>
ProfileSequenceIdentifier = 0x70736964,
/// <summary>
/// The purpose of this tag type is to provide a mechanism to relate physical
/// colorant amounts with the normalized device codes produced by lut8Type,
/// lut16Type, lutAToBType, lutBToAType or multiProcessElementsType tags
/// so that corrections can be made for variation in the device without
/// having to produce a new profile. The mechanism can be used by applications
/// to allow users with relatively inexpensive and readily available
/// instrumentation to apply corrections to individual output colour
/// channels in order to achieve consistent results.
/// </summary>
ResponseCurveSet16 = 0x72637332,
/// <summary>
@ -68,6 +180,12 @@ namespace ImageSharp
/// </summary>
S15Fixed16Array = 0x73663332,
/// <summary>
/// The signatureType contains a 4-byte sequence. Sequences of less than four
/// characters are padded at the end with spaces. Typically this type is used
/// for registered tags that can be displayed on many development systems as
/// a sequence of four characters.
/// </summary>
Signature = 0x73696720,
/// <summary>
@ -100,6 +218,9 @@ namespace ImageSharp
/// </summary>
UInt8Array = 0x75693038,
/// <summary>
/// This type represents a set of viewing condition parameters.
/// </summary>
ViewingConditions = 0x76696577,
/// <summary>
@ -107,6 +228,15 @@ namespace ImageSharp
/// </summary>
Xyz = 0x58595A20,
/// <summary>
/// The textDescriptionType is a complex structure that contains three types of
/// text description structures: 7-bit ASCII, Unicode and ScriptCode. Since no
/// single standard method for specifying localizable character sets exists across
/// the major platform vendors, including all three provides access for the major
/// operating systems. The 7-bit ASCII description is to be an invariant,
/// nonlocalizable name for consistent reference. It is preferred that both the
/// Unicode and ScriptCode structures be properly localized.
/// </summary>
TextDescription = 0x64657363,
}
}

Loading…
Cancel
Save