Enumerates all the GeoKeys in a Geo TIFF file.
public void EnumGeoKeys(
string fileName,
int pageNumber
)
Public Overloads Sub EnumGeoKeys( _
ByVal fileName As String, _
ByVal pageNumber As Integer _
)
public void EnumGeoKeys(
string fileName,
int pageNumber
)
- (BOOL)enumerateGeoKeysInFile:(NSString *)file
pageNumber:(NSInteger)pageNumber
callback:(void (^)(LTCodecsEnumGeoKeysEventArgs *geoKeyInfo))handler
error:(NSError **)error
function Leadtools.Codecs.RasterCodecs.EnumGeoKeys(String,Int32)(
fileName ,
pageNumber
)
public:
void EnumGeoKeys(
String^ fileName,
int pageNumber
)
fileName
A String containing the input file name.
pageNumber
1-based index of the page from which to enumerate the tags.
To enumerate all the keys stored in a stream, use EnumGeoKeys.
For multi-page Geo TIFF files, you can enumerate the GeoKeys from a particular page. Specify the page number whose GeoKeys to enumerate.
The GeoKeyFound event is called for each GeoKey value stored in the three standard Geo TIFF tags (34735, 34736 and 34737). For enumerating the other standard Geo TIFF data stored as separate tags, you can use EnumTags. Or, you can call ReadTag for each of these tags (since there are not that many of them to warrant the use of EnumTags).
For more information, refer toImplementing GeoKeys (GeoTIFF tags).
This example will show all the GeoKeys in the given file and then load them and add them to a destination file
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;
using LeadtoolsExamples.Common;
RasterCollection<RasterTagMetadata> myGeoKeys;
string geoKeyFileName;
void EnumGeoKeysExample(string srcFileName, string destFileName)
{
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();
}
void codecs_GeyKeyFound(object sender, CodecsEnumGeoKeysEventArgs e)
{
Console.Write("GeoKey: Id={0}, Count={1}, Type={2}, Data Length={3}, Data=", e.Id, e.Count, e.MetadataType, e.Buffer.Length);
// 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);
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Drawing
Imports Leadtools.Svg
Private myGeoKeys As RasterCollection(Of RasterTagMetadata)
Private geoKeyFileName As String
Private Sub EnumGeoKeysExample(ByVal srcFileName As String, ByVal destFileName As String)
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
' 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()
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.Buffer.Length)
' Load this GeoKey
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()
' Add it to our collection
myGeoKeys.Add(geoKey)
End Sub
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Examples;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Windows.Media;
RasterCollection<RasterTagMetadata> myGeoKeys;
Stream geoKeyStream;
void EnumGeoKeysExample(Stream inStreamGeyKey, Stream outStreamGeyKey)
{
RasterCodecs codecs = new RasterCodecs();
geoKeyStream = inStreamGeyKey;
myGeoKeys = new RasterCollection<RasterTagMetadata>();
codecs.GeoKeyFound += new EventHandler<CodecsEnumGeoKeysEventArgs>(codecs_GeyKeyFound);
codecs.EnumGeoKeys(inStreamGeyKey, 1);
codecs.GeoKeyFound -= new EventHandler<CodecsEnumGeoKeysEventArgs>(codecs_GeyKeyFound);
// We read all the tags now, save them to the file
Debug.WriteLine("{0} GeoKeys read, saving them to the destination file", myGeoKeys.Count);
codecs.WriteGeoKeys(outStreamGeyKey, 1, myGeoKeys);
}
void codecs_GeyKeyFound(object sender, CodecsEnumGeoKeysEventArgs e)
{
Debug.WriteLine("GeoKey: Id={0}, Count={1}, Type={2}, DataLength={3}, Data=", e.Id, e.Count, e.MetadataType, e.Buffer.Length);
// Load this GeoKey
RasterCodecs codecs = sender as RasterCodecs;
RasterTagMetadata geoKey = codecs.ReadGeoKey(geoKeyStream, 1, e.Id);
byte[] data = geoKey.GetData();
for (int i = 0; i < data.Length; i++)
Debug.WriteLine("{0:X} ", data[i]);
Debug.WriteLine("");
// Add it to our collection
myGeoKeys.Add(geoKey);
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Windows.Media
Private myGeoKeys As RasterCollection(Of RasterTagMetadata)
Private geoKeyStream As Stream
Private Sub EnumGeoKeysExample(ByVal inStreamGeyKey As Stream, ByVal outStreamGeyKey As Stream)
Dim codecs As RasterCodecs = New RasterCodecs()
geoKeyStream = inStreamGeyKey
myGeoKeys = New RasterCollection(Of RasterTagMetadata)()
AddHandler codecs.GeoKeyFound, AddressOf codecs_GeyKeyFound
codecs.EnumGeoKeys(inStreamGeyKey, 1)
RemoveHandler codecs.GeoKeyFound, AddressOf codecs_GeyKeyFound
' We read all the tags now, save them to the file
Debug.WriteLine("{0} GeoKeys read, saving them to the destination file", myGeoKeys.Count)
codecs.WriteGeoKeys(outStreamGeyKey, 1, myGeoKeys)
End Sub
Private Sub codecs_GeyKeyFound(ByVal sender As Object, ByVal e As CodecsEnumGeoKeysEventArgs)
Debug.WriteLine("GeoKey: Id={0}, Count={1}, Type={2}, DataLength={3}, Data=", e.Id, e.Count, e.MetadataType, e.Buffer.Length)
' Load this GeoKey
Dim codecs As RasterCodecs = TryCast(sender, RasterCodecs)
Dim geoKey As RasterTagMetadata = codecs.ReadGeoKey(geoKeyStream, 1, e.Id)
Dim data As Byte() = geoKey.GetData()
Dim i As Integer = 0
Do While i < data.Length
Debug.WriteLine("{0:X} ", data(i))
i += 1
Loop
Debug.WriteLine("")
' Add it to our collection
myGeoKeys.Add(geoKey)
End Sub
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET