Extends the
RasterMetadata class to provide functionality for dealing with tag metadata stored within various image file formats.
Supported in Silverlight, Windows Phone 7
Object Model
Syntax
Example
This example will save then load some tags to/from a tif file.
Visual Basic | Copy Code |
---|
Public Sub RasterTagMetadataExample()
Dim codecs As RasterCodecs = New RasterCodecs()
codecs.ThrowExceptionsOnInvalidImages = True
Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_tags.tif")
' Load the image
Dim image As RasterImage = codecs.Load(srcFileName)
' add the tags
Const tagSoftware As Integer = &H131
Dim tag As RasterTagMetadata
' Ascii
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Ascii
tag.FromAscii("Test String")
image.Tags.Add(tag)
' Byte
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Byte
Dim byteArray As Byte() = New Byte(0) {}
byteArray(0) = 10
tag.FromByte(byteArray)
image.Tags.Add(tag)
' SByte
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.SByte
Dim sbyteArray As SByte() = New SByte(0) {}
sbyteArray(0) = -45
tag.FromSByte(sbyteArray)
image.Tags.Add(tag)
' Int16
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Int16
Dim shortArray As Short() = New Short(0) {}
shortArray(0) = 64
tag.FromInt16(shortArray)
image.Tags.Add(tag)
' Uint16
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.UInt16
Dim uint16Array As System.UInt16() = New System.UInt16(0) {}
uint16Array(0) = 50
tag.FromUInt16(uint16Array)
image.Tags.Add(tag)
' Int32
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Int32
Dim intArray As Integer() = New Integer(0) {}
intArray(0) = -1326
tag.FromInt32(intArray)
image.Tags.Add(tag)
' Uint32
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.UInt32
Dim uintArray As System.UInt32() = New System.UInt32(0) {}
uintArray(0) = 1326
tag.FromUInt32(uintArray)
image.Tags.Add(tag)
' single
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Single
Dim singleArray As Single() = New Single(0) {}
singleArray(0) = 4.53F
tag.FromSingle(singleArray)
image.Tags.Add(tag)
' Double
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Double
Dim doubleArray As Double() = New Double(0) {}
doubleArray(0) = 7.1
tag.FromDouble(doubleArray)
image.Tags.Add(tag)
' Rational
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Rational
Dim rational As RasterMetadataRational() = New RasterMetadataRational(0) {}
rational(0) = New RasterMetadataRational()
rational(0).Numerator = 3
rational(0).Denominator = 2
tag.FromRational(rational)
image.Tags.Add(tag)
' URational
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.URational
Dim urational As RasterMetadataURational() = New RasterMetadataURational(0) {}
urational(0) = New RasterMetadataURational(3, 2)
tag.FromURational(urational)
image.Tags.Add(tag)
' Save the image and its tags to the destination tiff file
codecs.Options.Save.Tags = True
codecs.Save(image, destFileName, RasterImageFormat.Tif, 1)
' Enumerate the tags from the file
AddHandler codecs.TagFound, AddressOf codecs_TagFound
codecs.EnumTags(destFileName, 1)
' clean up
image.Dispose()
End Sub
Private Sub codecs_TagFound(ByVal sender As Object, ByVal e As CodecsEnumTagsEventArgs)
Console.WriteLine("Found tag id = {0}, count = {1}, type = {2}", e.Id, e.Count, e.MetadataType)
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class |
C# | Copy Code |
---|
public void RasterTagMetadataExample()
{
RasterCodecs codecs = new RasterCodecs();
codecs.ThrowExceptionsOnInvalidImages = true;
string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_tags.tif");
// Load the image
RasterImage image = codecs.Load(srcFileName);
// add the tags
const int tagSoftware = 0x131;
RasterTagMetadata tag;
// Ascii
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Ascii;
tag.FromAscii("Test String");
image.Tags.Add(tag);
// Byte
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Byte;
byte[] byteArray = new byte[1];
byteArray[0] = 10;
tag.FromByte(byteArray);
image.Tags.Add(tag);
// SByte
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.SByte;
sbyte[] sbyteArray = new sbyte[1];
sbyteArray[0] = -45;
tag.FromSByte(sbyteArray);
image.Tags.Add(tag);
// Int16
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Int16;
short[] shortArray = new short[1];
shortArray[0] = 64;
tag.FromInt16(shortArray);
image.Tags.Add(tag);
// Uint16
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.UInt16;
ushort[] uint16Array = new ushort[1];
uint16Array[0] = 50;
tag.FromUInt16(uint16Array);
image.Tags.Add(tag);
// Int32
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Int32;
int[] intArray = new int[1];
intArray[0] = -1326;
tag.FromInt32(intArray);
image.Tags.Add(tag);
// Uint32
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.UInt32;
uint[] uintArray = new uint[1];
uintArray[0] = 1326;
tag.FromUInt32(uintArray);
image.Tags.Add(tag);
// single
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Single;
float[] singleArray = new float[1];
singleArray[0] = 4.53f;
tag.FromSingle(singleArray);
image.Tags.Add(tag);
// Double
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Double;
double[] doubleArray = new double[1];
doubleArray[0] = 7.1;
tag.FromDouble(doubleArray);
image.Tags.Add(tag);
// Rational
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Rational;
RasterMetadataRational[] rational = new RasterMetadataRational[1];
rational[0] = new RasterMetadataRational();
rational[0].Numerator = 3;
rational[0].Denominator = 2;
tag.FromRational(rational);
image.Tags.Add(tag);
// URational
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.URational;
RasterMetadataURational[] urational = new RasterMetadataURational[1];
urational[0] = new RasterMetadataURational(3, 2);
tag.FromURational(urational);
image.Tags.Add(tag);
// Save the image and its tags to the destination tiff file
codecs.Options.Save.Tags = true;
codecs.Save(image, destFileName, RasterImageFormat.Tif, 1);
// Enumerate the tags from the file
codecs.TagFound += new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound);
codecs.EnumTags(destFileName, 1);
// clean up
image.Dispose();
}
void codecs_TagFound(object sender, CodecsEnumTagsEventArgs e)
{
Console.WriteLine("Found tag id = {0}, count = {1}, type = {2}", e.Id, e.Count, e.MetadataType);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
} |
SilverlightCSharp | Copy Code |
---|
public void RasterTagMetadataExample(RasterImage image, Stream destStream)
{
RasterCodecs codecs = new RasterCodecs();
// add the tags
const int tagSoftware = 0x131;
RasterTagMetadata tag;
// Ascii
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Ascii;
tag.FromAscii("Test String");
image.Tags.Add(tag);
// Byte
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Byte;
byte[] byteArray = new byte[1];
byteArray[0] = 10;
tag.FromByte(byteArray);
image.Tags.Add(tag);
// SByte
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.SByte;
sbyte[] sbyteArray = new sbyte[1];
sbyteArray[0] = -45;
tag.FromSByte(sbyteArray);
image.Tags.Add(tag);
// Int16
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Int16;
short[] shortArray = new short[1];
shortArray[0] = 64;
tag.FromInt16(shortArray);
image.Tags.Add(tag);
// Uint16
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.UInt16;
ushort[] uint16Array = new ushort[1];
uint16Array[0] = 50;
tag.FromUInt16(uint16Array);
image.Tags.Add(tag);
// Int32
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Int32;
int[] intArray = new int[1];
intArray[0] = -1326;
tag.FromInt32(intArray);
image.Tags.Add(tag);
// Uint32
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.UInt32;
uint[] uintArray = new uint[1];
uintArray[0] = 1326;
tag.FromUInt32(uintArray);
image.Tags.Add(tag);
// single
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Single;
float[] singleArray = new float[1];
singleArray[0] = 4.53f;
tag.FromSingle(singleArray);
image.Tags.Add(tag);
// Double
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Double;
double[] doubleArray = new double[1];
doubleArray[0] = 7.1;
tag.FromDouble(doubleArray);
image.Tags.Add(tag);
// Rational
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Rational;
RasterMetadataRational[] rational = new RasterMetadataRational[1];
rational[0] = new RasterMetadataRational();
rational[0].Numerator = 3;
rational[0].Denominator = 2;
tag.FromRational(rational);
image.Tags.Add(tag);
// URational
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.URational;
RasterMetadataURational[] urational = new RasterMetadataURational[1];
urational[0] = new RasterMetadataURational(3, 2);
tag.FromURational(urational);
image.Tags.Add(tag);
// Save the image and its tags to the destination tiff file
codecs.Options.Save.Tags = true;
codecs.Save(image, destStream, RasterImageFormat.Tif, 1);
// Enumerate the tags from the file
codecs.TagFound += new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound);
codecs.EnumTags(destStream, 1);
// clean up
image.Dispose();
}
void codecs_TagFound(object sender, CodecsEnumTagsEventArgs e)
{
Debug.WriteLine("Found tag id = {0}, count = {1}, type = {2}", e.Id, e.Count, e.MetadataType);
} |
SilverlightVB | Copy Code |
---|
Public Sub RasterTagMetadataExample(ByVal image As RasterImage, ByVal destStream As Stream)
Dim codecs As RasterCodecs = New RasterCodecs()
' add the tags
Const tagSoftware As Integer = &H131
Dim tag As RasterTagMetadata
' Ascii
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Ascii
tag.FromAscii("Test String")
image.Tags.Add(tag)
' Byte
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Byte
Dim byteArray As Byte() = New Byte(0){}
byteArray(0) = 10
tag.FromByte(byteArray)
image.Tags.Add(tag)
' SByte
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.SByte
Dim sbyteArray As SByte() = New SByte(0){}
sbyteArray(0) = -45
tag.FromSByte(sbyteArray)
image.Tags.Add(tag)
' Int16
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Int16
Dim shortArray As Short() = New Short(0){}
shortArray(0) = 64
tag.FromInt16(shortArray)
image.Tags.Add(tag)
' Uint16
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.UInt16
Dim uint16Array As UShort() = New UShort(0){}
uint16Array(0) = 50
tag.FromUInt16(uint16Array)
image.Tags.Add(tag)
' Int32
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Int32
Dim intArray As Integer() = New Integer(0){}
intArray(0) = -1326
tag.FromInt32(intArray)
image.Tags.Add(tag)
' Uint32
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.UInt32
Dim uintArray As UInteger() = New UInteger(0){}
uintArray(0) = 1326
tag.FromUInt32(uintArray)
image.Tags.Add(tag)
' single
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Single
Dim singleArray As Single() = New Single(0){}
singleArray(0) = 4.53f
tag.FromSingle(singleArray)
image.Tags.Add(tag)
' Double
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Double
Dim doubleArray As Double() = New Double(0){}
doubleArray(0) = 7.1
tag.FromDouble(doubleArray)
image.Tags.Add(tag)
' Rational
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Rational
Dim rational As RasterMetadataRational() = New RasterMetadataRational(0){}
rational(0) = New RasterMetadataRational()
rational(0).Numerator = 3
rational(0).Denominator = 2
tag.FromRational(rational)
image.Tags.Add(tag)
' URational
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.URational
Dim urational As RasterMetadataURational() = New RasterMetadataURational(0){}
urational(0) = New RasterMetadataURational(3, 2)
tag.FromURational(urational)
image.Tags.Add(tag)
' Save the image and its tags to the destination tiff file
codecs.Options.Save.Tags = True
codecs.Save(image, destStream, RasterImageFormat.Tif, 1)
' Enumerate the tags from the file
AddHandler codecs.TagFound, AddressOf codecs_TagFound
codecs.EnumTags(destStream, 1)
' clean up
image.Dispose()
End Sub
Private Sub codecs_TagFound(ByVal sender As Object, ByVal e As CodecsEnumTagsEventArgs)
Debug.WriteLine("Found tag id = {0}, count = {1}, type = {2}", e.Id, e.Count, e.MetadataType)
End Sub |
Remarks
Inheritance Hierarchy
Requirements
Target Platforms: Silverlight, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only), Windows Phone 7
See Also