Enumerates all the GeoKeys in a Geo TIFF file.
Syntax
Visual Basic (Usage) | Copy Code |
---|
Dim instance As RasterCodecs
Dim fileName As String
Dim pageNumber As Integer
instance.EnumGeoKeys(fileName, pageNumber)
|
Parameters
- fileName
- A String containing the input file name.
- pageNumber
- 1-based index of the page from which to enumerate the tags.
Example
This example will show all the geo keys in the given file then loads them and adds them to a destination file
Visual Basic | Copy Code |
---|
Private myGeoKeys As RasterCollection(Of RasterTagMetadata)
Private geoKeyFileName As String
Private Sub EnumGeoKeysExample(ByVal srcFileName As String, ByVal destFileName As String)
RasterCodecs.Startup()
Dim codecs As RasterCodecs = New RasterCodecs()
geoKeyFileName = srcFileName
myGeoKeys = New RasterCollection(Of RasterTagMetadata)()
AddHandler codecs.GeoKeyFound, AddressOf codecs_GeyKeyFound
codecs.EnumGeoKeys(srcFileName, 1)
RemoveHandler codecs.GeoKeyFound, AddressOf codecs_GeyKeyFound
Console.WriteLine("{0} GeoKeys read, saving them to the destination file", myGeoKeys.Count)
codecs.WriteGeoKeys(destFileName, 1, myGeoKeys)
codecs.Dispose()
RasterCodecs.Shutdown()
End Sub
Private Sub codecs_GeyKeyFound(ByVal sender As Object, ByVal e As CodecsEnumGeoKeysEventArgs)
Console.Write("GeoKey: Id={0}, Count={1}, Type={2}, DataLength={3}, Data=", e.Id, e.Count, e.MetadataType, e.DataLength)
Dim codecs As RasterCodecs = TryCast(sender, RasterCodecs)
Dim geoKey As RasterTagMetadata = codecs.ReadGeoKey(geoKeyFileName, 1, e.Id)
Dim data As Byte() = geoKey.GetData()
Dim i As Integer = 0
Do While i < data.Length
Console.Write("{0:X} ", data(i))
i += 1
Loop
Console.WriteLine()
myGeoKeys.Add(geoKey)
End Sub |
C# | Copy Code |
---|
RasterCollection<RasterTagMetadata> myGeoKeys; string geoKeyFileName; void EnumGeoKeysExample(string srcFileName, string destFileName) { RasterCodecs.Startup(); RasterCodecs codecs = new RasterCodecs(); geoKeyFileName = srcFileName; myGeoKeys = new RasterCollection<RasterTagMetadata>(); codecs.GeoKeyFound += new EventHandler<CodecsEnumGeoKeysEventArgs>(codecs_GeyKeyFound); codecs.EnumGeoKeys(srcFileName, 1); codecs.GeoKeyFound -= new EventHandler<CodecsEnumGeoKeysEventArgs>(codecs_GeyKeyFound); // We read all the tags now, save them to the file Console.WriteLine("{0} GeoKeys read, saving them to the destination file", myGeoKeys.Count); codecs.WriteGeoKeys(destFileName, 1, myGeoKeys); // Clean up codecs.Dispose(); RasterCodecs.Shutdown(); } void codecs_GeyKeyFound(object sender, CodecsEnumGeoKeysEventArgs e) { Console.Write("GeoKey: Id={0}, Count={1}, Type={2}, DataLength={3}, Data=", e.Id, e.Count, e.MetadataType, e.DataLength); // Load this GeoKey RasterCodecs codecs = sender as RasterCodecs; RasterTagMetadata geoKey = codecs.ReadGeoKey(geoKeyFileName, 1, e.Id); byte[] data = geoKey.GetData(); for(int i = 0; i < data.Length; i++) Console.Write("{0:X} ", data[i]); Console.WriteLine(); // Add it to our collection myGeoKeys.Add(geoKey); } |
Remarks
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also