Extends the
RasterMetadata class to provide functionality for dealing with tag metadata stored within various image file formats.
Syntax
Example
This example will save then load some tags to/from a tif file.
Visual Basic | Copy Code |
---|
Public Sub RasterTagMetadataExample()
RasterCodecs.Startup()
Dim codecs As RasterCodecs = New RasterCodecs()
codecs.ThrowExceptionsOnInvalidImages = True
Dim srcFileName As String = LeadtoolsExamples.Common.ImagesPath.Path
Dim destFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_tags.tif"
Dim image As RasterImage = codecs.Load(srcFileName)
Const tagSoftware As Integer = &H131
Dim tag As RasterTagMetadata
tag = New RasterTagMetadata()
tag.Id = tagSoftware
tag.DataType = RasterTagMetadataDataType.Ascii
tag.FromAscii("Test String")
image.Tags.Add(tag)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
codecs.Options.Save.Tags = True
codecs.Save(image, destFileName, RasterImageFormat.Tif, 1)
AddHandler codecs.TagFound, AddressOf codecs_TagFound
codecs.EnumTags(destFileName, 1)
image.Dispose()
RasterCodecs.Shutdown()
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 |
C# | Copy Code |
---|
public void RasterTagMetadataExample() { RasterCodecs.Startup(); RasterCodecs codecs = new RasterCodecs(); codecs.ThrowExceptionsOnInvalidImages = true; string srcFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"; string destFileName = LeadtoolsExamples.Common.ImagesPath.Path + "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(); RasterCodecs.Shutdown(); } void codecs_TagFound(object sender, CodecsEnumTagsEventArgs e) { Console.WriteLine("Found tag id = {0}, count = {1}, type = {2}", e.Id, e.Count, e.MetadataType); } |
Remarks
Inheritance Hierarchy
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also