|
|
// ==========================================================
|
|
|
// FreeImage 3 .NET wrapper
|
|
|
// Original FreeImage 3 functions and .NET compatible derived functions
|
|
|
//
|
|
|
// Design and implementation by
|
|
|
// - Jean-Philippe Goerke (jpgoerke@users.sourceforge.net)
|
|
|
// - Carsten Klein (cklein05@users.sourceforge.net)
|
|
|
//
|
|
|
// Contributors:
|
|
|
// - David Boland (davidboland@vodafone.ie)
|
|
|
//
|
|
|
// Main reference : MSDN Knowlede Base
|
|
|
//
|
|
|
// This file is part of FreeImage 3
|
|
|
//
|
|
|
// COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY
|
|
|
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
|
|
|
// THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE
|
|
|
// OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED
|
|
|
// CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT
|
|
|
// THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
|
|
|
// SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL
|
|
|
// PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
|
|
// THIS DISCLAIMER.
|
|
|
//
|
|
|
// Use at your own risk!
|
|
|
// ==========================================================
|
|
|
|
|
|
// ==========================================================
|
|
|
// CVS
|
|
|
// $Revision: 1.6 $
|
|
|
// $Date: 2009/09/15 11:49:24 $
|
|
|
// $Id: MetadataModels.cs,v 1.6 2009/09/15 11:49:24 cklein05 Exp $
|
|
|
// ==========================================================
|
|
|
|
|
|
using System;
|
|
|
using System.Xml;
|
|
|
using System.IO;
|
|
|
using System.Text;
|
|
|
|
|
|
namespace FreeImageAPI.Metadata
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_ANIMATION"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_ANIMATION : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_ANIMATION(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_ANIMATION; }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the width of the entire canvas area, that each page is displayed in.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? LogicalWidth
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("LogicalWidth");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("LogicalWidth", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the height of the entire canvas area, that each page is displayed in.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? LogicalHeight
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("LogicalHeight");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("LogicalHeight", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the global palette of the GIF image.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public Palette GlobalPalette
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
MetadataTag mdtag = GetTag("GlobalPalette");
|
|
|
return (mdtag == null) ? null : new Palette(mdtag);
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GlobalPalette", (value != null) ? null : value.Data);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the number of replays for the animation.
|
|
|
/// Use 0 (zero) to specify an infinte number of replays.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public uint? LoopCount
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<uint>("Loop");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Loop", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the horizontal offset within the logical canvas area, this frame is to be displayed at.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? FrameLeft
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("FrameLeft");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("FrameLeft", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the vertical offset within the logical canvas area, this frame is to be displayed at.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? FrameTop
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("FrameTop");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("FrameTop", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a flag to supress saving the dib's attached palette
|
|
|
/// (making it use the global palette). The local palette is the palette used by a page.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public bool? NoLocalPalette
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
byte? useGlobalPalette = GetTagValue<byte>("NoLocalPalette");
|
|
|
return useGlobalPalette.HasValue ? (useGlobalPalette.Value != 0) : default(bool?);
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
byte? val = null;
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
val = (byte)(value.Value ? 1 : 0);
|
|
|
}
|
|
|
SetTagValue("NoLocalPalette", val);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value indicating whether the image is interlaced.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public bool? Interlaced
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
byte? useGlobalPalette = GetTagValue<byte>("Interlaced");
|
|
|
return useGlobalPalette.HasValue ? (useGlobalPalette.Value != 0) : default(bool?);
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
byte? val = null;
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
val = (byte)(value.Value ? 1 : 0);
|
|
|
}
|
|
|
SetTagValue("Interlaced", val);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the amout of time in milliseconds this frame is to be displayed.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public uint? FrameTime
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<uint>("FrameTime");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("FrameTime", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets this frame's disposal method. Generally, this method defines, how to
|
|
|
/// remove or replace a frame when the next frame has to be drawn.<para/>
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public DisposalMethodType? DisposalMethod
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<DisposalMethodType>("DisposalMethod");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("DisposalMethod", value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_COMMENTS"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_COMMENTS : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_COMMENTS(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_COMMENTS; }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the comment of the image.
|
|
|
/// Supported formats are JPEG, PNG and GIF.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Comment
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("Comment");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Comment", value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_CUSTOM"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_CUSTOM : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_CUSTOM(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_CUSTOM; }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_EXIF_EXIF"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_EXIF_EXIF : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_EXIF_EXIF(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_EXIF_EXIF; }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the version of this standard supported.
|
|
|
/// Constant length or 4.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] ExifVersion
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("ExifVersion");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 4);
|
|
|
SetTagValueUndefined("ExifVersion", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the Flashpix format version supported by a FPXR file.
|
|
|
/// Constant length or 4.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] FlashpixVersion
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("FlashpixVersion");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 4);
|
|
|
SetTagValueUndefined("FlashpixVersion", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the color space information tag.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are defined:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>sRGB (default)</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>0xFFFF</term>
|
|
|
/// <description>uncalibrated</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? ColorSpace
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("ColorSpace");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ColorSpace", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the valid width of a compressed image.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public uint? PixelXDimension
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetUInt32Value("PixelXDimension");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
RemoveTag("PixelXDimension");
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
SetTagValue("PixelXDimension", value.Value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the valid height of a compressed image.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public uint? PixelYDimension
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetUInt32Value("PixelYDimension");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
RemoveTag("PixelYDimension");
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
SetTagValue("PixelYDimension", value.Value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets components configuration. See remarks for further information.
|
|
|
/// Constant length of 4.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The channels of each component are arranged in order from the 1st component to the 4th.
|
|
|
/// For uncompressed data the data arrangement is given in the PhotometricInterpretation tag.
|
|
|
/// However, since PhotometricInterpretation can only express the order of Y,Cb and Cr,
|
|
|
/// this tag is provided for cases when compressed data uses components other than Y, Cb,
|
|
|
/// and Cr and to enable support of other sequences.<para/>
|
|
|
/// Default = 4 5 6 0 (if RGB uncompressed)<para/>
|
|
|
/// The following values are defined:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>does not exist</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>Y</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>Cb</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>3</term>
|
|
|
/// <description>Cr</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>4</term>
|
|
|
/// <description>R</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>5</term>
|
|
|
/// <description>R</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>6</term>
|
|
|
/// <description>R</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] ComponentsConfiguration
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("ComponentsConfiguration");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 4);
|
|
|
SetTagValueUndefined("ComponentsConfiguration", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets compression mode used for a compressed image is indicated
|
|
|
/// in unit bits per pixel.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? CompressedBitsPerPixel
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("CompressedBitsPerPixel");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("CompressedBitsPerPixel", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a tag for manufacturers of Exif writers to record any desired information.
|
|
|
/// The contents are up to the manufacturer, but this tag should not be used for any other
|
|
|
/// than its intended purpose.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] MakerNote
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("FlashpixVersion");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValueUndefined("FlashpixVersion", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a tag for Exif users to write keywords or comments on the image besides
|
|
|
/// those in ImageDescription, and without the character code limitations of the ImageDescription tag.
|
|
|
/// Minimum length of 8. See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The character code used in the UserComment tag is identified based on an ID code in a fixed 8-byte
|
|
|
/// area at the start of the tag data area. The unused portion of the area is padded with NULL.
|
|
|
/// The ID code for the UserComment area may be a Defined code such as JIS or ASCII, or may be Undefined.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] UserComment
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("UserComment");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 8, int.MaxValue);
|
|
|
SetTagValueUndefined("UserComment", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the name of an audio file related to the image data.
|
|
|
/// The format is 8.3.
|
|
|
/// Constant length of 12
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string RelatedSoundFile
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string text = GetTagText("RelatedSoundFile");
|
|
|
if (!string.IsNullOrEmpty(text))
|
|
|
{
|
|
|
text = text.Substring(0, text.Length - 1);
|
|
|
}
|
|
|
return text;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 12);
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("RelatedSoundFile", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the date and time when the original image data was generated.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public DateTime? DateTimeOriginal
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
DateTime? result = null;
|
|
|
string text = GetTagText("DateTimeOriginal");
|
|
|
if (text != null)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
result = System.DateTime.ParseExact(text, "yyyy:MM:dd HH:mm:ss\0", null);
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
string val = null;
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
val = value.Value.ToString("yyyy:MM:dd HH:mm:ss\0");
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
SetTagValue("DateTimeOriginal", val);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the date and time when the image was stored as digital data.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public DateTime? DateTimeDigitized
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
DateTime? result = null;
|
|
|
string text = GetTagText("DateTimeDigitized");
|
|
|
if (text != null)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
result = System.DateTime.ParseExact(text, "yyyy:MM:dd HH:mm:ss\0", null);
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
string val = null;
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
val = value.Value.ToString("yyyy:MM:dd HH:mm:ss\0");
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
SetTagValue("DateTimeDigitized", val);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a tag used to record fractions of seconds for the DateTime tag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string SubsecTime
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string text = GetTagText("SubsecTime");
|
|
|
if (!string.IsNullOrEmpty(text))
|
|
|
{
|
|
|
text = text.Substring(0, text.Length - 1);
|
|
|
}
|
|
|
return text;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("SubsecTime", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a tag used to record fractions of seconds for the DateTimeOriginal tag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string SubsecTimeOriginal
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string text = GetTagText("SubsecTimeOriginal");
|
|
|
if (!string.IsNullOrEmpty(text))
|
|
|
{
|
|
|
text = text.Substring(0, text.Length - 1);
|
|
|
}
|
|
|
return text;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("SubsecTimeOriginal", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a tag used to record fractions of seconds for the DateTimeDigitized tag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string SubsecTimeDigitized
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string text = GetTagText("SubsecTimeDigitized");
|
|
|
if (!string.IsNullOrEmpty(text))
|
|
|
{
|
|
|
text = text.Substring(0, text.Length - 1);
|
|
|
}
|
|
|
return text;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("SubsecTimeDigitized", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or the exposure time, given in seconds (sec).
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? ExposureTime
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("ExposureTime");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ExposureTime", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or the F number.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? FNumber
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("FNumber");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("FNumber", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the class of the program used by the camera to set exposure when the
|
|
|
/// picture is taken.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are defined:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>not defined</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>manual</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>normal program</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>3</term>
|
|
|
/// <description>aperture priority</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>4</term>
|
|
|
/// <description>shutter priority</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>5</term>
|
|
|
/// <description>create program</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>6</term>
|
|
|
/// <description>action program</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>7</term>
|
|
|
/// <description>portrait mode</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>8</term>
|
|
|
/// <description>landscape mode</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>others</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? ExposureProgram
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("ExposureProgram");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ExposureProgram", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the spectral sensitivity of each channel of the camera used.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string SpectralSensitivity
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string text = GetTagText("SpectralSensitivity");
|
|
|
if (!string.IsNullOrEmpty(text))
|
|
|
{
|
|
|
text = text.Substring(0, text.Length - 1);
|
|
|
}
|
|
|
return text;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("SpectralSensitivity", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the the ISO Speed and ISO Latitude of the camera or input device as
|
|
|
/// specified in ISO 12232.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort[] ISOSpeedRatings
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<ushort>("ISOSpeedRatings");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ISOSpeedRatings", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the Opto-Electric Conversion Function (OECF) specified in ISO 14524.
|
|
|
/// OECF is the relationship between the camera optical input and the image values.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] OECF
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("OECF");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValueUndefined("OECF", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the shutter speed. The unit is the APEX (Additive System of Photographic Exposure).
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIRational? ShutterSpeedValue
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIRational>("ShutterSpeedValue");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ShutterSpeedValue", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the lens aperture. The unit is the APEX value.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? ApertureValue
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("ApertureValue");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ApertureValue", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of brightness. The unit is the APEX value.
|
|
|
/// Ordinarily it is given in the range of -99.99 to 99.99.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIRational? BrightnessValue
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIRational>("BrightnessValue");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("BrightnessValue", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the exposure bias. The unit is the APEX value.
|
|
|
/// Ordinarily it is given in the range of <20>99.99 to 99.99.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIRational? ExposureBiasValue
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIRational>("ExposureBiasValue");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ExposureBiasValue", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the smallest F number of the lens. The unit is the APEX value.
|
|
|
/// Ordinarily it is given in the range of 00.00 to 99.99,
|
|
|
/// but it is not limited to this range.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? MaxApertureValue
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("MaxApertureValue");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("MaxApertureValue", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets distance to the subject, given in meters.
|
|
|
/// Note that if the numerator of the recorded value is FFFFFFFF, infinity shall be indicated;
|
|
|
/// and if the numerator is 0, distance unknown shall be indicated.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? SubjectDistance
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("SubjectDistance");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("SubjectDistance", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the metering mode. See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are defined:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>unknown</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>average</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>center-weighted-average</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>3</term>
|
|
|
/// <description>spot</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>4</term>
|
|
|
/// <description>multi-spot</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>5</term>
|
|
|
/// <description>pattern</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>6</term>
|
|
|
/// <description>partial</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>255</term>
|
|
|
/// <description>other</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? MeteringMode
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("MeteringMode");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("MeteringMode", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the kind of light source.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are defined:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>unknown</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>daylight</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>fluorescent</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>3</term>
|
|
|
/// <description>tungsten</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>4</term>
|
|
|
/// <description>flash</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>9</term>
|
|
|
/// <description>fine weather</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>10</term>
|
|
|
/// <description>cloudy weather</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>11</term>
|
|
|
/// <description>shade</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>12</term>
|
|
|
/// <description>daylight fluorecent (D 5700 - 7100K)</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>13</term>
|
|
|
/// <description>day white fluorescent (N 4600 - 5400K)</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>14</term>
|
|
|
/// <description>cool white fluorescent (W 3900 - 4500K)</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>15</term>
|
|
|
/// <description>white fluorescent (WW 3200 - 3700K)</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>17</term>
|
|
|
/// <description>standard light A</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>18</term>
|
|
|
/// <description>standard light B</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>19</term>
|
|
|
/// <description>standard light C</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>20</term>
|
|
|
/// <description>D55</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>21</term>
|
|
|
/// <description>D65</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>22</term>
|
|
|
/// <description>D75</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>23</term>
|
|
|
/// <description>D50</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>24</term>
|
|
|
/// <description>ISO studio tungsten</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>255</term>
|
|
|
/// <description>other light source</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? LightSource
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("LightSource");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("LightSource", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value indicating the status of flash when the image was shot.
|
|
|
/// Bit 0 indicates the flash firing status, bits 1 and 2 indicate the flash return
|
|
|
/// status, bits 3 and 4 indicate the flash mode, bit 5 indicates whether the flash
|
|
|
/// function is present, and bit 6 indicates "red eye" mode.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? Flash
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("Flash");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Flash", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value indicating the location and area of the main subject in
|
|
|
/// the overall scene. Variable length between 2 and 4.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort[] SubjectArea
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<ushort>("SubjectArea");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 2, 4);
|
|
|
SetTagValue("SubjectArea", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the actual focal length of the lens, in mm.
|
|
|
/// Conversion is not made to the focal length of a 35 mm film camera.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? FocalLength
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("FocalLength");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("FocalLength", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the strobe energy at the time the image is captured,
|
|
|
/// as measured in Beam Candle Power Seconds (BCPS).
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? FlashEnergy
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("FlashEnergy");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("FlashEnergy", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the camera or input device spatial frequency table and SFR values
|
|
|
/// in the direction of image width, image height, and diagonal direction,
|
|
|
/// as specified in ISO 12233.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] SpatialFrequencyResponse
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("SpatialFrequencyResponse");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValueUndefined("SpatialFrequencyResponse", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the number of pixels in the image width (X) direction per
|
|
|
/// FocalPlaneResolutionUnit on the camera focal plane.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? FocalPlaneXResolution
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("FocalPlaneXResolution");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("FocalPlaneXResolution", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the number of pixels in the image height (Y) direction per
|
|
|
/// FocalPlaneResolutionUnit on the camera focal plane.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? FocalPlaneYResolution
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("FocalPlaneYResolution");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("FocalPlaneYResolution", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the unit for measuring FocalPlaneXResolution and FocalPlaneYResolution.
|
|
|
/// This value is the same as the ResolutionUnit.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? FocalPlaneResolutionUnit
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("FocalPlaneResolutionUnit");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("FocalPlaneResolutionUnit", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the location of the main subject in the scene.
|
|
|
/// The value of this tag represents the pixel at the center of the main subject
|
|
|
/// relative to the left edge, prior to rotation processing as per the Rotation tag.
|
|
|
/// The first value indicates the X column number and second indicates the Y row number.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? SubjectLocation
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("SubjectLocation");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("SubjectLocation", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the exposure index selected on the camera or input device at the
|
|
|
/// time the image was captured.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? ExposureIndex
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("ExposureIndex");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ExposureIndex", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the image sensor type on the camera or input device.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are defined:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>not defined</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>one-chip color area sensor</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>3</term>
|
|
|
/// <description>two-chip color area sensor</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>4</term>
|
|
|
/// <description>three-chip color area sensor</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>5</term>
|
|
|
/// <description>color sequential area sensor</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>7</term>
|
|
|
/// <description>trilinear sensor</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>8</term>
|
|
|
/// <description>color sequential linear sensor</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? SensingMethod
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("SensingMethod");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("SensingMethod", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the image source. If a DSC recorded the image, this tag value of this
|
|
|
/// tag always be set to 3, indicating that the image was recorded on a DSC.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte? FileSource
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<byte>("FileSource");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValueUndefined("FileSource", value.HasValue ? new byte[] { value.Value } : null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the type of scene. If a DSC recorded the image, this tag value shall
|
|
|
/// always be set to 1, indicating that the image was directly photographed.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte? SceneType
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<byte>("SceneType");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValueUndefined("SceneType", value.HasValue ? new byte[] { value.Value } : null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the color filter array (CFA) geometric pattern of the image sensor
|
|
|
/// when a one-chip color area sensor is used. It does not apply to all sensing methods.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] CFAPattern
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("CFAPattern");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValueUndefined("CFAPattern", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the use of special processing on image data, such as rendering geared to output.
|
|
|
/// When special processing is performed, the reader is expected to disable or minimize any
|
|
|
/// further processing. See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>normal process</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>custom process</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? CustomRendered
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("CustomRendered");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("CustomRendered", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the exposure mode set when the image was shot.
|
|
|
/// In auto-bracketing mode, the camera shoots a series of frames of the same scene
|
|
|
/// at different exposure settings. See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>auto exposure</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>manual exposure</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>auto bracket</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? ExposureMode
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("ExposureMode");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ExposureMode", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the white balance mode set when the image was shot.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>auto white balance</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>manual white balance</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? WhiteBalance
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("WhiteBalance");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("WhiteBalance", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the digital zoom ratio when the image was shot.
|
|
|
/// If the numerator of the recorded value is 0, this indicates that digital zoom was not used.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? DigitalZoomRatio
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("DigitalZoomRatio");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("DigitalZoomRatio", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the equivalent focal length assuming a 35mm film camera, in mm.
|
|
|
/// A value of 0 means the focal length is unknown. Note that this tag differs
|
|
|
/// from the FocalLength tag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? FocalLengthIn35mmFilm
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("DigitalZoomRatio");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("DigitalZoomRatio", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the type of scene that was shot.
|
|
|
/// It can also be used to record the mode in which the image was shot.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>standard</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>landscape</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>portrait</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>3</term>
|
|
|
/// <description>night scene</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? SceneCaptureType
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("SceneCaptureType");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("SceneCaptureType", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the degree of overall image gain adjustment.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>none</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>low gain up</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>high gain up</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>3</term>
|
|
|
/// <description>low gain down</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>4</term>
|
|
|
/// <description>high gain down</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? GainControl
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("GainControl");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GainControl", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the direction of contrast processing applied by the camera
|
|
|
/// when the image was shot.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>normal</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>soft</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>hard</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? Contrast
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("Contrast");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Contrast", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the direction of saturation processing applied by the camera
|
|
|
/// when the image was shot.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>normal</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>low saturation</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>high saturation</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? Saturation
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("Saturation");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Saturation", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the direction of sharpness processing applied by the camera
|
|
|
/// when the image was shot.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>normal</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>soft</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>hard</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? Sharpness
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("Sharpness");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Sharpness", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets information on the picture-taking conditions of a particular camera model.
|
|
|
/// The tag is used only to indicate the picture-taking conditions in the reader.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] DeviceSettingDescription
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("DeviceSettingDescription");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValueUndefined("DeviceSettingDescription", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the distance to the subject.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>0</term>
|
|
|
/// <description>unknown</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>macro</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>close view</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>3</term>
|
|
|
/// <description>distant view</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? SubjectDistanceRange
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("SubjectDistanceRange");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("SubjectDistanceRange", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets an identifier assigned uniquely to each image.
|
|
|
/// It is recorded as an ASCII string equivalent to hexadecimal notation and 128-bit fixed length.
|
|
|
/// Constant length of 32.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ImageUniqueID
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string text = GetTagText("ImageUniqueID");
|
|
|
if (!string.IsNullOrEmpty(text))
|
|
|
{
|
|
|
text = text.Substring(0, text.Length - 1);
|
|
|
}
|
|
|
return text;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 32);
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("ImageUniqueID", value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_EXIF_GPS"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_EXIF_GPS : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_EXIF_GPS(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_EXIF_GPS; }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the GPS version ID. Constant length of 4.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] VersionID
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("GPSVersionID");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 4);
|
|
|
SetTagValue("GPSVersionID", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value indicating whether the <see cref="Latitude"/>
|
|
|
/// is north or south latitude.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public LatitudeType? LatitudeDirection
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return ToLatitudeType(GetTagText("GPSLatitudeRef"));
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSLatitudeRef", ToString(value) + '\0');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the latitude of the image. The latitude is expressed as three rational
|
|
|
/// values giving the degrees, minutes, and seconds, respectively. Constant length of 3.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="LatitudeDirection"/>
|
|
|
public FIURational[] Latitude
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<FIURational>("GPSLatitude");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 3);
|
|
|
SetTagValue("GPSLatitude", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value indicating whether <see cref="Longitude"/>
|
|
|
/// is east or west longitude.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public LongitudeType? LongitudeDirection
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return ToLongitudeType(GetTagText("GPSLongitudeRef"));
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSLongitudeRef", ToString(value) + '\0');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the longitude of the image. The longitude is expressed as three rational
|
|
|
/// values giving the degrees, minutes, and seconds, respectively. Constant length of 3.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="LongitudeDirection"/>
|
|
|
public FIURational[] Longitude
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<FIURational>("GPSLongitude");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 3);
|
|
|
SetTagValue("GPSLongitude", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets a value indicating whether <see cref="Altitude"/> is sea level and the altitude
|
|
|
/// is above sea level. If the altitude is below sea level <see cref="Altitude"/> is
|
|
|
/// indicated as an absolute value.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public AltitudeType? AltitudeDirection
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
byte? flag = GetTagValue<byte>("GPSAltitudeRef");
|
|
|
if (flag.HasValue)
|
|
|
{
|
|
|
switch (flag.Value)
|
|
|
{
|
|
|
case 0:
|
|
|
return AltitudeType.AboveSeaLevel;
|
|
|
case 1:
|
|
|
return AltitudeType.BelowSeaLevel;
|
|
|
default:
|
|
|
return AltitudeType.Undefined;
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
byte? val = null;
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
switch (value.Value)
|
|
|
{
|
|
|
case AltitudeType.AboveSeaLevel:
|
|
|
val = 0;
|
|
|
break;
|
|
|
|
|
|
case AltitudeType.BelowSeaLevel:
|
|
|
val = 1;
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
val = 2;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
SetTagValue("GPSAltitudeRef", val);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the altitude based on the reference in <see cref="AltitudeDirection"/>.
|
|
|
/// Altitude is expressed as one rational value. The reference unit is meters.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? Altitude
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("GPSAltitude");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSAltitude", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the sign of the <see cref="SignedAltitude"/>.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// This is a derived property. There is no metadata tag directly associated
|
|
|
/// with this property value.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public int? AltitudeSign
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
AltitudeType? seaLevel = AltitudeDirection;
|
|
|
if (seaLevel.HasValue)
|
|
|
{
|
|
|
return (seaLevel.Value == AltitudeType.BelowSeaLevel) ? -1 : 1;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
AltitudeDirection = value.Value >= 0 ? AltitudeType.AboveSeaLevel : AltitudeType.BelowSeaLevel;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
AltitudeDirection = null;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the signed altitude.
|
|
|
/// Altitude is expressed as one rational value. The reference unit is meters.
|
|
|
/// </summary>
|
|
|
/// <exception cref="OverflowException">
|
|
|
/// Altitude is too large to fit into a FIRational.
|
|
|
/// </exception>
|
|
|
/// <remarks>
|
|
|
/// This is a derived property. There is no metadata tag directly associated
|
|
|
/// with this property value.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIRational? SignedAltitude
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
FIRational? result = null;
|
|
|
FIURational? altitude = Altitude;
|
|
|
if (altitude.HasValue)
|
|
|
{
|
|
|
int sign = AltitudeSign ?? 1;
|
|
|
if (((int)altitude.Value.Numerator < 0) || ((int)altitude.Value.Denominator < 0))
|
|
|
throw new OverflowException();
|
|
|
result = new FIRational((int)altitude.Value.Numerator * sign, (int)altitude.Value.Denominator);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FIURational? val = null;
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
if (value.Value < 0)
|
|
|
{
|
|
|
AltitudeSign = -1;
|
|
|
value = -value.Value;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
AltitudeSign = 1;
|
|
|
}
|
|
|
val = new FIURational((uint)value.Value.Numerator, (uint)value.Value.Denominator);
|
|
|
}
|
|
|
Altitude = val;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the time as UTC (Coordinated Universal Time). Constant length of 3.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public TimeSpan? TimeStamp
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
FIURational[] stamp = GetTagArray<FIURational>("GPSTimeStamp");
|
|
|
if ((stamp == null) || stamp.Length != 3)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return new TimeSpan((int)stamp[0], (int)stamp[1], (int)stamp[2]);
|
|
|
}
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FIURational[] stamp = null;
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
TimeSpan span = value.Value;
|
|
|
stamp = new FIURational[3];
|
|
|
stamp[0] = span.Hours;
|
|
|
stamp[1] = span.Minutes;
|
|
|
stamp[2] = span.Seconds;
|
|
|
}
|
|
|
SetTagValue("GPSTimeStamp", stamp);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the GPS satellites used for measurements. This tag can be used to describe
|
|
|
/// the number of satellites, their ID number, angle of elevation, azimuth, SNR and other
|
|
|
/// information in ASCII notation. The format is not specified.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Satellites
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string result = GetTagText("GPSSatellites");
|
|
|
if (!string.IsNullOrEmpty(result))
|
|
|
{
|
|
|
result = result.Substring(0, result.Length - 1);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("GPSTimeStamp", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value indicating the status of the GPS receiver when the image was recorded.
|
|
|
/// <b>true</b> indicates measurement was in progress;
|
|
|
/// <b>false</b> indicates measurement was Interoperability.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public bool? Status
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string text = GetTagText("GPSStatus");
|
|
|
return string.IsNullOrEmpty(text) ? default(bool?) : text[0] == 'A';
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSStatus", value.HasValue ? (value.Value ? "A\0" : "V\0") : null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value indicating the GPS measurement mode.
|
|
|
/// <b>true</b> indicates three-dimensional measurement;
|
|
|
/// <b>false</b> indicated two-dimensional measurement was in progress.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public bool? MeasureMode3D
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string text = GetTagText("GPSMeasureMode");
|
|
|
return string.IsNullOrEmpty(text) ? default(bool?) : text[0] == '3';
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSMeasureMode", value.HasValue ? (value.Value ? "3\0" : "2\0") : null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the GPS DOP (data degree of precision). An HDOP value is written during
|
|
|
/// two-dimensional measurement, and PDOP during three-dimensional measurement.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? DOP
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("GPSDOP");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSDOP", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the unit used to express the GPS receiver <see cref="Speed"/> of movement.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="Speed"/>
|
|
|
public VelocityUnit? SpeedUnit
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return ToUnitType(GetTagText("GPSSpeedRef"));
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSSpeedRef", ToString(value) + '\0');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the speed of GPS receiver movement.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="SpeedUnit"/>
|
|
|
public FIURational? Speed
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("GPSSpeed");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSSpeed", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the reference for giving the direction of GPS receiver movement.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="Track"/>
|
|
|
public DirectionReference? TrackDirectionReference
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return ToDirectionType(GetTagText("GPSTrackRef"));
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSTrackRef", ToString(value) + '\0');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the direction of GPS receiver movement.
|
|
|
/// The range of values is from 0.00 to 359.99.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="TrackDirectionReference"/>
|
|
|
public FIURational? Track
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("GPSTrack");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSTrack", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the reference for giving the direction of GPS receiver movement.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="ImageDirection"/>
|
|
|
public DirectionReference? ImageDirectionReference
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return ToDirectionType(GetTagText("GPSImgDirectionRef"));
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSImgDirectionRef", ToString(value) + '\0');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the direction of the image when it was captured.
|
|
|
/// The range of values is from 0.00 to 359.99.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="ImageDirectionReference"/>
|
|
|
public FIURational? ImageDirection
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("GPSImgDirection");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSImgDirection", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the geodetic survey data used by the GPS receiver. If the survey data
|
|
|
/// is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string MapDatum
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string result = GetTagText("GPSMapDatum");
|
|
|
if (!string.IsNullOrEmpty(result))
|
|
|
{
|
|
|
result = result.Substring(0, result.Length - 1);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSMapDatum", value + '\0');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value indicating whether the destination point
|
|
|
/// is north or south latitude.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="Latitude"/>
|
|
|
public LatitudeType? DestinationLatitudeDirection
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return ToLatitudeType(GetTagText("GPSDestLatitudeRef"));
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSDestLatitudeRef", ToString(value) + '\0');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the latitude of the destination point. The latitude is expressed as three rational
|
|
|
/// values giving the degrees, minutes, and seconds, respectively. Constant length of 3.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="DestinationLatitudeDirection"/>
|
|
|
public FIURational[] DestinationLatitude
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<FIURational>("GPSDestLatitude");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 3);
|
|
|
SetTagValue("GPSDestLatitude", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value indicating whether the destination point
|
|
|
/// is east or west longitude.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="Latitude"/>
|
|
|
public LongitudeType? DestinationLongitudeDirection
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return ToLongitudeType(GetTagText("GPSDestLongitudeRef"));
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSDestLongitudeRef", ToString(value) + '\0');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the longitude of the destination point. The longitude is expressed as three rational
|
|
|
/// values giving the degrees, minutes, and seconds, respectively. Constant length of 3.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational[] DestinationLongitude
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<FIURational>("GPSDestLongitude");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 3);
|
|
|
SetTagValue("GPSDestLongitude", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the reference used for giving the bearing to the destination point.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="DestinationBearing"/>
|
|
|
public DirectionReference? DestinationDirectionReference
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return ToDirectionType(GetTagText("GPSDestBearingRef"));
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSDestBearingRef", ToString(value) + '\0');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the bearing to the destination point.
|
|
|
/// The range of values is from 0.00 to 359.99.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="DestinationDirectionReference"/>
|
|
|
public FIURational? DestinationBearing
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("GPSDestBearing");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSDestBearing", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the unit used to express the distance to the destination point.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="DestinationBearing"/>
|
|
|
public VelocityUnit? DestinationUnit
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return ToUnitType(GetTagText("GPSDestDistanceRef"));
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSDestDistanceRef", ToString(value) + '\0');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a character string recording the name of the method used
|
|
|
/// for location finding. The first byte indicates the character code used,
|
|
|
/// and this is followed by the name of the method. Since the Type is not ASCII,
|
|
|
/// NULL termination is not necessary.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] ProcessingMethod
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("GPSProcessingMethod");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSProcessingMethod", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a character string recording the name of the GPS area.
|
|
|
/// The first byte indicates the character code used, and this is followed by
|
|
|
/// the name of the GPS area. Since the Type is not ASCII, NULL termination is
|
|
|
/// not necessary.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public byte[] AreaInformation
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<byte>("GPSAreaInformation");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSAreaInformation", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets date and time information relative to UTC (Coordinated Universal Time).
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// This is a derived property. There is no metadata tag directly associated
|
|
|
/// with this property value.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public DateTime? DateTimeStamp
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
DateTime? date = DateStamp;
|
|
|
TimeSpan? time = TimeStamp;
|
|
|
if ((date == null) && (time == null))
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (date == null)
|
|
|
{
|
|
|
date = DateTime.MinValue;
|
|
|
}
|
|
|
if (time == null)
|
|
|
{
|
|
|
time = TimeSpan.MinValue;
|
|
|
}
|
|
|
return date.Value.Add(time.Value);
|
|
|
}
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
DateStamp = value.Value.Date;
|
|
|
TimeStamp = value.Value.TimeOfDay;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
DateStamp = null;
|
|
|
TimeStamp = null;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets date information relative to UTC (Coordinated Universal Time).
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public DateTime? DateStamp
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string stamp = GetTagText("GPSDateStamp");
|
|
|
if (stamp != null)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
return DateTime.ParseExact(stamp, "yyyy:MM:dd\0", null);
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
string val = null;
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
val = value.Value.ToString("yyyy:MM:dd\0");
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
SetTagValue("GPSDateStamp", val);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value indicating whether differential correction was applied to
|
|
|
/// the GPS receiver.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public bool? IsDifferential
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
ushort? value = GetTagValue<ushort>("GPSDifferential");
|
|
|
return value.HasValue ? (value != 0) : (default(bool?));
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GPSDifferential", value.HasValue ? (object)(value.Value ? (ushort)1 : (ushort)0) : (null));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_EXIF_INTEROP"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_INTEROP : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_INTEROP(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_EXIF_INTEROP; }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the identification of the Interoperability rule.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public InteroperabilityMode? Identification
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return ToInteroperabilityType(GetTagText("InteroperabilityIndex"));
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("InteroperabilityIndex", ToString(value) + '\0');
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_EXIF_MAIN"/>.
|
|
|
/// <para/>
|
|
|
/// <b>This class is obsolete. Use class <see cref="MDM_EXIF_MAIN"/> instead.</b>
|
|
|
/// </summary>
|
|
|
[Obsolete("To be removed in future releases. Use MDM_EXIF_MAIN instead.")]
|
|
|
public class MDM_MAIN : MDM_EXIF_MAIN
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_MAIN(FIBITMAP dib) : base(dib) { }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_EXIF_MAIN"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_EXIF_MAIN : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_EXIF_MAIN(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_EXIF_MAIN; }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the number of columns of image data, equal to the number
|
|
|
/// of pixels per row. In JPEG compressed data a JPEG marker is used
|
|
|
/// instead of this tag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public uint? ImageWidth
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetUInt32Value("ImageWidth");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
RemoveTag("ImageWidth");
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
SetTagValue("ImageWidth", value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets number of rows of image data. In JPEG compressed data a JPEG marker
|
|
|
/// is used instead of this tag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public uint? ImageHeight
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetUInt32Value("ImageLength");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
RemoveTag("ImageLength");
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
SetTagValue("ImageLength", value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets number of bits per image component. In this standard
|
|
|
/// each component of the image is 8 bits, so the value for this tag is 8.
|
|
|
/// Constant length of 3.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort[] BitsPerSample
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<ushort>("BitsPerSample");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 3);
|
|
|
SetTagValue("BitsPerSample", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets compression scheme used for the image data. When a primary image
|
|
|
/// is JPEG compressed, this designation is not necessary and is omitted.
|
|
|
/// When thumbnails use JPEG compression, this tag value is set to 6.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? Compression
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("Compression");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Compression", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets pixel composition. In JPEG compressed data a JPEG marker is
|
|
|
/// used instead of this tag. See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>RGB</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>6</term>
|
|
|
/// <description>YCbCr</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? PhotometricInterpretation
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("PhotometricInterpretation");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("PhotometricInterpretation", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the image orientation viewed in terms of rows and columns.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ExifImageOrientation? Orientation
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return (ExifImageOrientation?)GetTagValue<ushort>("Orientation");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Orientation", (ushort?)value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the number of components per pixel. Since this standard applies
|
|
|
/// to RGB and YCbCr images, the value set for this tag is 3. In JPEG compressed
|
|
|
/// data a JPEG marker is used instead of this tag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? SamplesPerPixel
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("SamplesPerPixel");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("SamplesPerPixel", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a value that indicates whether pixel components are recorded in
|
|
|
/// chunky or planar format. In JPEG compressed files a JPEG marker is used instead
|
|
|
/// of this tag. If this field does not exist, the TIFF default of 1 (chunky) is assumed.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>chunky format</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>planar format</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? PlanarConfiguration
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("PlanarConfiguration");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("PlanarConfiguration", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the sampling ratio of chrominance components in relation to
|
|
|
/// the luminance component. In JPEG compressed dat a JPEG marker is used
|
|
|
/// instead of this tag.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>[2,1]</term>
|
|
|
/// <description>YCbCr4:2:2</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>[2,2]</term>
|
|
|
/// <description>YCbCr4:2:0</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort[] YCbCrSubSampling
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<ushort>("YCbCrSubSampling");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 2);
|
|
|
SetTagValue("YCbCrSubSampling", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets position of chrominance components in relation to the luminance component.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// This field is designated only for JPEG compressed data or uncompressed YCbCr data.
|
|
|
/// The TIFF default is 1 (centered); but when Y:Cb:Cr = 4:2:2 it is recommended in
|
|
|
/// this standard that 2 (co-sited) be used to record data, in order to improve the
|
|
|
/// image quality when viewed on TV systems.
|
|
|
/// <para/>
|
|
|
/// When this field does not exist, the reader shall assume the TIFF default.
|
|
|
/// In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is recommended.
|
|
|
/// If the reader does not have the capability of supporting both kinds of YCbCrPositioning,
|
|
|
/// it shall follow the TIFF default regardless of the value in this field.
|
|
|
/// It is preferable that readers be able to support both centered and co-sited positioning.
|
|
|
/// <para/>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>1</term>
|
|
|
/// <description>centered</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>co-sited</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>reserved</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? YCbCrPositioning
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("YCbCrPositioning");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("YCbCrPositioning", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the number of pixels per <see cref="ResolutionUnit"/>
|
|
|
/// in the <see cref="ImageWidth"/> direction. When the image resolution is unknown,
|
|
|
/// 72 [dpi] is designated.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? XResolution
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("XResolution");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("XResolution", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the number of pixels per <see cref="ResolutionUnit"/>
|
|
|
/// in the <see cref="ImageHeight"/> direction. When the image resolution is unknown,
|
|
|
/// 72 [dpi] is designated.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational? YResolution
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<FIURational>("YResolution");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("YResolution", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the unit for measuring <see cref="XResolution"/> and <see cref="YResolution"/>.
|
|
|
/// The same unit is used for both <see cref="XResolution"/> and <see cref="YResolution"/>.
|
|
|
/// If the image resolution in unknown, 2 (inches) is designated.
|
|
|
/// See remarks for further information.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The following values are definied:<para/>
|
|
|
/// <list type="table">
|
|
|
/// <listheader>
|
|
|
/// <term>ID</term>
|
|
|
/// <description>Description</description>
|
|
|
/// </listheader>
|
|
|
/// <item>
|
|
|
/// <term>2</term>
|
|
|
/// <description>inches</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>3</term>
|
|
|
/// <description>YCbCr4:2:0</description>
|
|
|
/// </item>
|
|
|
/// <item>
|
|
|
/// <term>other</term>
|
|
|
/// <description>centimeters</description>
|
|
|
/// </item>
|
|
|
/// </list>
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort? ResolutionUnit
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<ushort>("ResolutionUnit");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ResolutionUnit", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the byte offset of that strip.
|
|
|
/// It is recommended that this be selected so the number of strip bytes
|
|
|
/// does not exceed 64 Kbytes.
|
|
|
/// With JPEG compressed data this designation is not needed and is omitted.
|
|
|
/// Constant length of <see cref="SamplesPerPixel"/> * StripsPerImage.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="RowsPerStrip"/>
|
|
|
/// <see cref="StripByteCounts"/>
|
|
|
public uint[] StripOffsets
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetUInt32Array("StripOffsets");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
RemoveTag("StripOffsets");
|
|
|
if (value != null)
|
|
|
{
|
|
|
SetTagValue("StripOffsets", value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets number of rows per strip. This is the number of rows in the image of
|
|
|
/// one strip when an image is divided into strips. With JPEG compressed data this
|
|
|
/// designation is not needed and is omitted.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
/// <seealso cref="StripByteCounts"/>
|
|
|
public uint? RowsPerStrip
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetUInt32Value("RowsPerStrip");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
RemoveTag("RowsPerStrip");
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
SetTagValue("RowsPerStrip", value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the total number of bytes in each strip.
|
|
|
/// With JPEG compressed data this designation is not needed and is omitted.
|
|
|
/// Constant length of <see cref="SamplesPerPixel"/> * StripsPerImage.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public uint[] StripByteCounts
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetUInt32Array("StripByteCounts");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
RemoveTag("StripByteCounts");
|
|
|
if (value != null)
|
|
|
{
|
|
|
SetTagValue("StripByteCounts", value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the offset to the start byte (SOI) of JPEG compressed thumbnail data.
|
|
|
/// This is not used for primary image JPEG data.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public uint? JPEGInterchangeFormat
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<uint>("JPEGInterchangeFormat");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("JPEGInterchangeFormat", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the number of bytes of JPEG compressed thumbnail data.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// This is not used for primary image JPEG data.
|
|
|
/// JPEG thumbnails are not divided but are recorded as a continuous
|
|
|
/// JPEG bitstream from SOI to EOI. APPn and COM markers should not be recorded.
|
|
|
/// Compressed thumbnails shall be recorded in no more than 64 Kbytes,
|
|
|
/// including all other data to be recorded in APP1.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public uint? JPEGInterchangeFormatLength
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<uint>("JPEGInterchangeFormatLength");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("JPEGInterchangeFormatLength", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a transfer function for the image, described in tabular style.
|
|
|
/// Constant length of 3 * 256.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort[] TransferFunction
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<ushort>("TransferFunction");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 3 * 256);
|
|
|
SetTagValue("TransferFunction", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the chromaticity of the white point of the image.
|
|
|
/// Constant length of 2.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational[] WhitePoint
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<FIURational>("WhitePoint");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 2);
|
|
|
SetTagValue("WhitePoint", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the chromaticity of the three primary colors of the image.
|
|
|
/// Constant length of 6.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational[] PrimaryChromaticities
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<FIURational>("PrimaryChromaticities");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 6);
|
|
|
SetTagValue("PrimaryChromaticities", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the matrix coefficients for transformation from RGB to YCbCr image data.
|
|
|
/// Constant length of 3.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational[] YCbCrCoefficients
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<FIURational>("YCbCrCoefficients");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 3);
|
|
|
SetTagValue("PrimaryChromaticities", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the reference black point value and reference white point value.
|
|
|
/// Constant length of 6.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public FIURational[] ReferenceBlackWhite
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<FIURational>("ReferenceBlackWhite");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
FreeImage.Resize(ref value, 6);
|
|
|
SetTagValue("ReferenceBlackWhite", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the date and time of image creation.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public DateTime? DateTime
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
DateTime? result = null;
|
|
|
string text = GetTagText("DateTime");
|
|
|
if (text != null)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
result = System.DateTime.ParseExact(text, "yyyy:MM:dd HH:mm:ss\0", null);
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
string val = null;
|
|
|
if (value.HasValue)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
val = value.Value.ToString("yyyy:MM:dd HH:mm:ss\0");
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
SetTagValue("DateTime", val);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets a string giving the title of the image.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ImageDescription
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string result = GetTagText("ImageDescription");
|
|
|
if (!string.IsNullOrEmpty(result))
|
|
|
{
|
|
|
result = result.Substring(0, result.Length - 1);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("ImageDescription", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the manufacturer of the recording equipment.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Make
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string result = GetTagText("Make");
|
|
|
if (!string.IsNullOrEmpty(result))
|
|
|
{
|
|
|
result = result.Substring(0, result.Length - 1);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("Make", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the model name or model number of the equipment.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string EquipmentModel
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string result = GetTagText("Model");
|
|
|
if (!string.IsNullOrEmpty(result))
|
|
|
{
|
|
|
result = result.Substring(0, result.Length - 1);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("Model", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the name and version of the software or firmware of the camera
|
|
|
/// or image input device used to generate the image.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Software
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string result = GetTagText("Software");
|
|
|
if (!string.IsNullOrEmpty(result))
|
|
|
{
|
|
|
result = result.Substring(0, result.Length - 1);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("Software", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the name of the camera owner, photographer or image creator.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Artist
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string result = GetTagText("Artist");
|
|
|
if (!string.IsNullOrEmpty(result))
|
|
|
{
|
|
|
result = result.Substring(0, result.Length - 1);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("Artist", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the photographer and editor copyrights.
|
|
|
/// Constant length of 1-2.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string[] Copyright
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string[] result = null;
|
|
|
string text = GetTagText("Copyright");
|
|
|
if (!string.IsNullOrEmpty(text))
|
|
|
{
|
|
|
result = text.Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
string val = null;
|
|
|
if (value != null)
|
|
|
{
|
|
|
if (value.Length == 1)
|
|
|
{
|
|
|
if (value[0] != null)
|
|
|
{
|
|
|
val = value[0] + '\0';
|
|
|
}
|
|
|
}
|
|
|
else if (value.Length == 2)
|
|
|
{
|
|
|
if ((value[0] != null) && (value[1] != null))
|
|
|
{
|
|
|
val = value[0] + '\0' + value[1] + '\0';
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
SetTagValue("Copyright", val);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_EXIF_MAKERNOTE"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_MAKERNOTE : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_MAKERNOTE(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_EXIF_MAKERNOTE; }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_GEOTIFF"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_GEOTIFF : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_GEOTIFF(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_GEOTIFF; }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the GeoTIFF GeoASCIIParamsTag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The GeoASCIIParamsTag is used to store all of the <see cref="String"/> valued
|
|
|
/// GeoKeys, referenced by the <see cref="GeoKeyDirectory"/> property. Since keys
|
|
|
/// defined in the GeoKeyDirectoryTag use offsets into this tag, any special
|
|
|
/// comments may be placed at the beginning of this tag.
|
|
|
/// For the most part, the only keys that are <see cref="String"/> valued are
|
|
|
/// <i>Citation</i> keys, giving documentation and references for obscure
|
|
|
/// projections, datums, etc.
|
|
|
/// <para/>
|
|
|
/// Special handling is required for <see cref="String"/>-valued keys. While it
|
|
|
/// is true that TIFF 6.0 permits multiple NULL-delimited strings within a single
|
|
|
/// ASCII tag, the secondary strings might not appear in the output of naive
|
|
|
/// <i>tiffdump</i> programs. For this reason, the NULL delimiter of each ASCII key
|
|
|
/// value shall be converted to a "|" (pipe) character before being installed
|
|
|
/// back into the <see cref="String"/> holding tag, so that a dump of the tag
|
|
|
/// will look like this.
|
|
|
/// <para/>
|
|
|
/// AsciiTag="first_value|second_value|etc...last_value|"
|
|
|
/// <para/>
|
|
|
/// A baseline GeoTIFF-reader must check for and convert the final "|" pipe
|
|
|
/// character of a key back into a NULL before returning it to the client
|
|
|
/// software.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string GeoASCIIParams
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string text = GetTagText("GeoASCIIParams");
|
|
|
if (!string.IsNullOrEmpty(text))
|
|
|
{
|
|
|
text = text.Substring(0, text.Length - 1);
|
|
|
}
|
|
|
return text;
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
if (value != null)
|
|
|
{
|
|
|
value += '\0';
|
|
|
}
|
|
|
SetTagValue("GeoASCIIParams", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the GeoTIFF GeoDoubleParamsTag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The GeoDoubleParamsTag is used to store all of the <see cref="Double"/> valued
|
|
|
/// GeoKeys, referenced by the <see cref="GeoKeyDirectory"/> property. The meaning of
|
|
|
/// any value of this double array is determined from the GeoKeyDirectoryTag reference
|
|
|
/// pointing to it. <see cref="Single"/> values should first be converted to
|
|
|
/// <see cref="Double"/> and stored here.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public double[] GeoDoubleParams
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<double>("GeoDoubleParams");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GeoDoubleParams", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the GeoTIFF GeoKeyDirectoryTag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The GeoKeyDirectoryTag may be used to store the GeoKey Directory, which defines and
|
|
|
/// references the <i>GeoKeys</i>.
|
|
|
/// <para/>
|
|
|
/// The tag is an array of unsigned <see cref="UInt16"/> values, which are primarily
|
|
|
/// grouped into blocks of 4. The first 4 values are special, and contain GeoKey directory
|
|
|
/// header information. The header values consist of the following information, in order:
|
|
|
/// <para/>
|
|
|
/// Header={KeyDirectoryVersion, KeyRevision, MinorRevision, NumberOfKeys}
|
|
|
/// <para/>
|
|
|
/// where
|
|
|
/// <para/>
|
|
|
/// <i>KeyDirectoryVersion</i> indicates the current version of Key implementation, and will
|
|
|
/// only change if this Tag's Key structure is changed. (Similar to the TIFFVersion (42)).
|
|
|
/// The current DirectoryVersion number is 1. This value will most likely never change,
|
|
|
/// and may be used to ensure that this is a valid Key-implementation.
|
|
|
/// <para/>
|
|
|
/// <i>KeyRevision</i> indicates what revision of Key-Sets are used.
|
|
|
/// <para/>
|
|
|
/// <i>MinorRevision</i> indicates what set of Key-Codes are used. The complete revision number
|
|
|
/// is denoted <KeyRevision>.<MinorRevision>.
|
|
|
/// <para/>
|
|
|
/// <i>NumberOfKeys</i> indicates how many Keys are defined by the rest of this Tag.
|
|
|
/// <para/>
|
|
|
/// This header is immediately followed by a collection of <NumberOfKeys> KeyEntry
|
|
|
/// sets, each of which is also 4-<see cref="UInt16"/> long. Each KeyEntry is modeled on the
|
|
|
/// <i>TIFFEntry</i> format of the TIFF directory header, and is of the form:
|
|
|
/// <para/>
|
|
|
/// KeyEntry = { KeyID, TIFFTagLocation, Count, Value_Offset }
|
|
|
/// <para/>
|
|
|
/// where
|
|
|
/// <para/>
|
|
|
/// <i>KeyID</i> gives the Key-ID value of the Key (identical in function to TIFF tag ID,
|
|
|
/// but completely independent of TIFF tag-space),
|
|
|
/// <para/>
|
|
|
/// <i>TIFFTagLocation</i> indicates which TIFF tag contains the value(s) of the Key: if
|
|
|
/// TIFFTagLocation is 0, then the value is <see cref="UInt16"/>, and is contained in the
|
|
|
/// <i>Value_Offset</i> entry. Otherwise, the type (format) of the value is implied by the
|
|
|
/// TIFF-Type of the tag containing the value.
|
|
|
/// <para/>
|
|
|
/// <i>Count</i> indicates the number of values in this key.
|
|
|
/// <para/>
|
|
|
/// <i>Value_Offset</i> Value_Offset indicates the index-offset into the TagArray indicated
|
|
|
/// by TIFFTagLocation, if it is nonzero. If TIFFTagLocation is 0 (zero) , then Value_Offset
|
|
|
/// contains the actual (<see cref="UInt16"/>) value of the Key, and Count=1 is implied.
|
|
|
/// Note that the offset is not a byte-offset, but rather an index based on the natural data
|
|
|
/// type of the specified tag array.
|
|
|
/// <para/>
|
|
|
/// Following the KeyEntry definitions, the KeyDirectory tag may also contain additional
|
|
|
/// values. For example, if a key requires multiple <see cref="UInt16"/> values, they shall
|
|
|
/// be placed at the end of this tag, and the KeyEntry will set
|
|
|
/// TIFFTagLocation=GeoKeyDirectoryTag, with the Value_Offset pointing to the location of the
|
|
|
/// value(s).
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public ushort[] GeoKeyDirectory
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<ushort>("GeoKeyDirectory");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GeoKeyDirectory", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the GeoTIFF ModelPixelScaleTag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The ModelPixelScaleTag tag may be used to specify the size of raster pixel spacing
|
|
|
/// in the model space units, when the raster space can be embedded in the model space
|
|
|
/// coordinate system without rotation, and consists of the following 3 values:
|
|
|
/// <para/>
|
|
|
/// ModelPixelScaleTag = (ScaleX, ScaleY, ScaleZ)
|
|
|
/// <para/>
|
|
|
/// where <i>ScaleX</i> and <i>ScaleY</i> give the horizontal and vertical spacing of
|
|
|
/// raster pixels. The <i>ScaleZ</i> is primarily used to map the pixel value of a
|
|
|
/// digital elevation model into the correct Z-scale, and so for most other purposes
|
|
|
/// this value should be zero (since most model spaces are 2-D, with Z=0).
|
|
|
/// <para/>
|
|
|
/// A single tiepoint in the <see cref="ModelTiePoints"/> tag, together with this tag,
|
|
|
/// completely determine the relationship between raster and model space; thus they
|
|
|
/// comprise the two tags which Baseline GeoTIFF files most often will use to place a
|
|
|
/// raster image into a "standard position" in model space.
|
|
|
/// <para/>
|
|
|
/// Like the <see cref="ModelTiePoints"/> tag, this tag information is independent of the
|
|
|
/// XPosition, YPosition, Resolution and Orientation tags of the standard TIFF 6.0 spec.
|
|
|
/// However, simple reversals of orientation between raster and model space
|
|
|
/// (e.g. horizontal or vertical flips) may be indicated by reversal of sign in the
|
|
|
/// corresponding component of the ModelPixelScaleTag. GeoTIFF compliant readers must
|
|
|
/// honor this signreversal convention.
|
|
|
/// <para/>
|
|
|
/// This tag must not be used if the raster image requires rotation or shearing to place
|
|
|
/// it into the standard model space. In such cases the transformation shall be defined
|
|
|
/// with the more general <see cref="ModelTransformationMatrix"/>.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Naming differences</b><para/>
|
|
|
/// In the native FreeImage library and thus, in the FreeImage API documentation, this
|
|
|
/// property's key is named <i>GeoPixelScale</i>. Since the GeoTIFF specification
|
|
|
/// as well as Java's <c>EXIFTIFFTagSet</c> class call this tag
|
|
|
/// <see cref="ModelPixelScale"/>, this property was renamed accordingly.
|
|
|
/// However, when accessing this property's tag by its <see cref="MetadataTag"/> object,
|
|
|
/// the native FreeImage tag key <i>GeoPixelScale</i> must be used.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public double[] ModelPixelScale
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<double>("GeoPixelScale");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GeoPixelScale", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the GeoTIFF GeoTiePointsTag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The GeoTiePointsTag stores raster -> model tiepoint pairs in the order
|
|
|
/// <para/>
|
|
|
/// ModelTiePoints = (...,I,J,K, X,Y,Z...),
|
|
|
/// <para/>
|
|
|
/// where <i>(I,J,K)</i> is the point at location <i>(I,J)</i> in raster space with
|
|
|
/// pixel-value <i>K</i>, and <i>(X,Y,Z)</i> is a vector in model space. In most cases
|
|
|
/// the model space is only two-dimensional, in which case both K and Z should be set
|
|
|
/// to zero; this third dimension is provided in anticipation of future support for 3D
|
|
|
/// digital elevation models and vertical coordinate systems.
|
|
|
/// <para/>
|
|
|
/// A raster image may be georeferenced simply by specifying its location, size and
|
|
|
/// orientation in the model coordinate space M. This may be done by specifying the
|
|
|
/// location of three of the four bounding corner points. However, tiepoints are only
|
|
|
/// to be considered exact at the points specified; thus defining such a set of
|
|
|
/// bounding tiepoints does not imply that the model space locations of the interior
|
|
|
/// of the image may be exactly computed by a linear interpolation of these tiepoints.
|
|
|
/// <para/>
|
|
|
/// However, since the relationship between the Raster space and the model space will
|
|
|
/// often be an exact, affine transformation, this relationship can be defined using
|
|
|
/// one set of tiepoints and the <see cref="ModelPixelScale"/>, described below, which
|
|
|
/// gives the vertical and horizontal raster grid cell size, specified in model units.
|
|
|
/// <para/>
|
|
|
/// If possible, the first tiepoint placed in this tag shall be the one establishing
|
|
|
/// the location of the point (0,0) in raster space. However, if this is not possible
|
|
|
/// (for example, if (0,0) is goes to a part of model space in which the projection is
|
|
|
/// ill-defined), then there is no particular order in which the tiepoints need be
|
|
|
/// listed.
|
|
|
/// <para/>
|
|
|
/// For orthorectification or mosaicking applications a large number of tiepoints may
|
|
|
/// be specified on a mesh over the raster image. However, the definition of associated
|
|
|
/// grid interpolation methods is not in the scope of the current GeoTIFF spec.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Naming differences</b><para/>
|
|
|
/// In the native FreeImage library and thus, in the FreeImage API documentation, this
|
|
|
/// property's key is named <i>GeoTiePoints</i>. Since the GeoTIFF specification
|
|
|
/// as well as Java's <c>EXIFTIFFTagSet</c> class call this tag
|
|
|
/// <see cref="ModelTiePoints"/>, this property was renamed accordingly.
|
|
|
/// However, when accessing this property's tag by its <see cref="MetadataTag"/> object,
|
|
|
/// the native FreeImage tag key <i>GeoTiePoints</i> must be used.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public double[] ModelTiePoints
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<double>("GeoTiePoints");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GeoTiePoints", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the GeoTIFF ModelTransformationMatrixTag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// This tag may be used to specify the transformation matrix between the raster space
|
|
|
/// (and its dependent pixel-value space) and the (possibly 3D) model space.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Naming differences</b><para/>
|
|
|
/// In the native FreeImage library and thus, in the FreeImage API documentation, this
|
|
|
/// property's key is named <i>GeoTransformationMatrix</i>. Since the GeoTIFF specification
|
|
|
/// as well as Java's <c>EXIFTIFFTagSet</c> class call this tag
|
|
|
/// <see cref="ModelTransformationMatrix"/>, this property was renamed accordingly.
|
|
|
/// However, when accessing this property's tag by its <see cref="MetadataTag"/> object,
|
|
|
/// the native FreeImage tag key <i>GeoTransformationMatrix</i> must be used.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public double[] ModelTransformationMatrix
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<double>("GeoTransformationMatrix");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("GeoTransformationMatrix", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the GeoTIFF IntergraphTransformationMatrixTag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// The IntergraphTransformationMatrixTag conflicts with an internal software implementation
|
|
|
/// at Intergraph, and so its use is no longer encouraged. A GeoTIFF reader should look first
|
|
|
/// for the new tag, and only if it is not found should it check for this older tag. If found,
|
|
|
/// it should only consider it to be contain valid GeoTIFF matrix information if the tag-count
|
|
|
/// is 16; the Intergraph version uses 17 values.
|
|
|
/// <para/>
|
|
|
/// <br/><b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public double[] IntergraphTransformationMatrix
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagArray<double>("Intergraph TransformationMatrix");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Intergraph TransformationMatrix", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the GeoTIFF JPLCartoIFDOffsetTag.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public uint? JPLCartoIFDOffset
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<uint>("JPL Carto IFD offset");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("JPL Carto IFD offset", value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_IPTC"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_IPTC : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_IPTC(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_IPTC; }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets the Application Record Version.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public short? ApplicationRecordVersion
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagValue<short>("ApplicationRecordVersion");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Object Type Reference.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ObjectTypeReference
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ObjectTypeReference");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ObjectTypeReference", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Object Attribute Reference.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ObjectAttributeReference
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ObjectAttributeReference");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ObjectAttributeReference", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Object Name.
|
|
|
/// This is also referred to as Title.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ObjectName
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ObjectName");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ObjectName", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Edit Status.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string EditStatus
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("EditStatus");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("EditStatus", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Editorial Update.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string EditorialUpdate
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("EditorialUpdate");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("EditorialUpdate", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Urgency.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Urgency
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("Urgency");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Urgency", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Subject Reference.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string SubjectReference
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("SubjectReference");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("SubjectReference", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Category.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Category
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("Category");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Category", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Supplemental Categories.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string SupplementalCategories
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("SupplementalCategories");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("SupplementalCategories", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Fixture Identifier.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string FixtureIdentifier
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("FixtureIdentifier");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("FixtureIdentifier", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Keywords.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Keywords
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("Keywords");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Keywords", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Content Location Code.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ContentLocationCode
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ContentLocationCode");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ContentLocationCode", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Content Location Name.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ContentLocationName
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ContentLocationName");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ContentLocationName", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Release Date.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ReleaseDate
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ReleaseDate");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ReleaseDate", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Release Time.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ReleaseTime
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ReleaseTime");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ReleaseTime", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Expiration Date.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ExpirationDate
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ExpirationDate");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ExpirationDate", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Expiration Time.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ExpirationTime
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ExpirationTime");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ExpirationTime", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Special Instructions.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string SpecialInstructions
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("SpecialInstructions");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("SpecialInstructions", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Action Advised.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ActionAdvised
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ActionAdvised");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ActionAdvised", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Reference Service.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ReferenceService
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ReferenceService");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ReferenceService", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Reference Date.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ReferenceDate
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ReferenceDate");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ReferenceDate", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Reference Number.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ReferenceNumber
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ReferenceNumber");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ReferenceNumber", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Date Created.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string DateCreated
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("DateCreated");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("DateCreated", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Time Created.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string TimeCreated
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("TimeCreated");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("TimeCreated", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Digital Creation Date.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string DigitalCreationDate
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("DigitalCreationDate");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("DigitalCreationDate", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Digital Creation Time.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string DigitalCreationTime
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("DigitalCreationTime");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("DigitalCreationTime", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Originating Program.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string OriginatingProgram
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("OriginatingProgram");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("OriginatingProgram", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Program Version.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ProgramVersion
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ProgramVersion");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ProgramVersion", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Object Cycle.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ObjectCycle
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ObjectCycle");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ObjectCycle", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag By Line.
|
|
|
/// This is the author's name.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ByLine
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("By-line");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("By-line", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag By Line Title.
|
|
|
/// This is the author's position.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ByLineTitle
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("By-lineTitle");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("By-lineTitle", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag City.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string City
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("City");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("City", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Sub Location.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string SubLocation
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("SubLocation");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("SubLocation", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Province State.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ProvinceState
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ProvinceState");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ProvinceState", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Country Primary Location Code.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string CountryPrimaryLocationCode
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("Country-PrimaryLocationCode");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Country-PrimaryLocationCode", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Country Primary Location Name.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string CountryPrimaryLocationName
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("Country-PrimaryLocationName");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Country-PrimaryLocationName", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Original Transmission Reference.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string OriginalTransmissionReference
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("OriginalTransmissionReference");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("OriginalTransmissionReference", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Headline.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Headline
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("Headline");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Headline", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Credit.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Credit
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("Credit");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Credit", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Source.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Source
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("Source");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Source", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Copyright Notice.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string CopyrightNotice
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("CopyrightNotice");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("CopyrightNotice", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Contact.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Contact
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("Contact");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Contact", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Caption Abstract.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string CaptionAbstract
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("CaptionAbstract");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("CaptionAbstract", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Writer Editor.
|
|
|
/// This is also referred to as Caption Writer.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string WriterEditor
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("WriterEditor");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("WriterEditor", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Rasterized Caption.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string RasterizedCaption
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("RasterizedCaption");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("RasterizedCaption", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Image Type.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ImageType
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ImageType");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ImageType", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Image Orientation.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ImageOrientation
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ImageOrientation");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ImageOrientation", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Language Identifier.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string LanguageIdentifier
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("LanguageIdentifier");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("LanguageIdentifier", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Audio Type.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string AudioType
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("AudioType");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("AudioType", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Audio Sampling Rate.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string AudioSamplingRate
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("AudioSamplingRate");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("AudioSamplingRate", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Audio Sampling Resolution.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string AudioSamplingResolution
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("AudioSamplingResolution");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("AudioSamplingResolution", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Audio Duration.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string AudioDuration
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("AudioDuration");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("AudioDuration", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Audio Outcue.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string AudioOutcue
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("AudioOutcue");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("AudioOutcue", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Job I D.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string JobID
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("JobID");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("JobID", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Master Document I D.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string MasterDocumentID
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("MasterDocumentID");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("MasterDocumentID", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Short Document I D.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ShortDocumentID
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ShortDocumentID");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ShortDocumentID", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Unique Document I D.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string UniqueDocumentID
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("UniqueDocumentID");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("UniqueDocumentID", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Owner I D.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string OwnerID
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("OwnerID");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("OwnerID", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Object Preview File Format.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ObjectPreviewFileFormat
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ObjectPreviewFileFormat");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ObjectPreviewFileFormat", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Object Preview File Version.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ObjectPreviewFileVersion
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ObjectPreviewFileVersion");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ObjectPreviewFileVersion", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Object Preview Data.
|
|
|
/// This is also referred to as Audio Outcue.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ObjectPreviewData
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ObjectPreviewData");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ObjectPreviewData", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Prefs.
|
|
|
/// This is also referred to as photo-mechanic preferences.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Prefs
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("Prefs");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("Prefs", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Classify State.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ClassifyState
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ClassifyState");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ClassifyState", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Similarity Index.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string SimilarityIndex
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("SimilarityIndex");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("SimilarityIndex", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Document Notes.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string DocumentNotes
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("DocumentNotes");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("DocumentNotes", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Document History.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string DocumentHistory
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("DocumentHistory");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("DocumentHistory", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the value of the IPTC/NAA tag Exif Camera Info.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string ExifCameraInfo
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("ExifCameraInfo");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("ExifCameraInfo", value);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_NODATA"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_NODATA : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_NODATA(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_NODATA; }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Represents a collection of all tags contained in the metadata model
|
|
|
/// <see cref="FREE_IMAGE_MDMODEL.FIMD_XMP"/>.
|
|
|
/// </summary>
|
|
|
public class MDM_XMP : MetadataModel
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of this class.
|
|
|
/// </summary>
|
|
|
/// <param name="dib">Handle to a FreeImage bitmap.</param>
|
|
|
public MDM_XMP(FIBITMAP dib) : base(dib) { }
|
|
|
|
|
|
/// <summary>
|
|
|
/// Retrieves the datamodel that this instance represents.
|
|
|
/// </summary>
|
|
|
public override FREE_IMAGE_MDMODEL Model
|
|
|
{
|
|
|
get { return FREE_IMAGE_MDMODEL.FIMD_XMP; }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the XMP XML content.
|
|
|
/// </summary>
|
|
|
/// <remarks>
|
|
|
/// <b>Handling of null values</b><para/>
|
|
|
/// A null value indicates, that the corresponding metadata tag is not
|
|
|
/// present in the metadata model.
|
|
|
/// Setting this property's value to a non-null reference creates the
|
|
|
/// metadata tag if necessary.
|
|
|
/// Setting this property's value to a null reference deletes the
|
|
|
/// metadata tag from the metadata model.
|
|
|
/// </remarks>
|
|
|
public string Xml
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return GetTagText("XMLPacket");
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
SetTagValue("XMLPacket", value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets an <see cref="XmlReader"/> initialized to read the XMP XML content.
|
|
|
/// Returns null, if the metadata tag <i>XMLPacket</i> is not present in
|
|
|
/// this model.
|
|
|
/// </summary>
|
|
|
public XmlReader XmlReader
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
string xmlString = Xml;
|
|
|
if (xmlString == null)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MemoryStream stream = new MemoryStream();
|
|
|
StreamWriter writer = new StreamWriter(stream);
|
|
|
writer.Write(xmlString);
|
|
|
return XmlReader.Create(stream);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} |