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
Visual Basic | Copy Code |
---|
RasterCodecs.EnumGeoKeys
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 |
---|
RasterCodecs.EnumGeoKeys 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 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
See Also