←Select platform

WriteGeoKey(string,int,RasterTagMetadata) Method

Summary

Writes or changes a GeoKey to an existing file.

Syntax
C#
VB
Objective-C
C++
public void WriteGeoKey( 
   string fileName, 
   int pageNumber, 
   RasterTagMetadata geoKey 
) 
Public Overloads Sub WriteGeoKey( _ 
   ByVal fileName As String, _ 
   ByVal pageNumber As Integer, _ 
   ByVal geoKey As RasterTagMetadata _ 
)  
- (BOOL)writeGeoKey:(nullable LTRasterTagMetadata *)geoKey  
             toFile:(NSString *)file  
         pageNumber:(NSInteger)pageNumber  
              error:(NSError **)error 
public: 
void WriteGeoKey(  
   String^ fileName, 
   int pageNumber, 
   RasterTagMetadata^ geoKey 
)  

Parameters

fileName
A String that contains the filename.

pageNumber
1-based index of the page at which to write the GeoKey.

geoKey
GeoKey to identify the data in the Geo TIFF file.

Remarks

This method writes to or changes the GeoKeys in an existing file.

This method works only with TIFF files. If you also want to write the other TIFF tags and comments, use WriteMarkers instead.

Note: Use this method carefully. LEADTOOLS will not restrict the GeoKeys that you write. If you write bad GeoKeys, the file might become corrupted. Consult the GeoTIFF specification documentation for a list of GeoKeys.

Some restrictions apply to this function if you use an IFD to indicate to which page to write the GeoKey. See the Loading and Saving Large TIFF / BigTIFF Files topic for more information.

Example

This example will show all the GeoKeys in the given file and then load them and add them to a destination file

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
using LeadtoolsExamples.Common; 
 
 
string geoKeySrcFileName; 
string geoKeyDestFileName; 
 
void WriteGeoKeyExample(string srcFileName, string destFileName) 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   geoKeySrcFileName = srcFileName; 
   geoKeyDestFileName = destFileName; 
 
   codecs.GeoKeyFound += new EventHandler<CodecsEnumGeoKeysEventArgs>(codecs_MyGeyKeyFound); 
   codecs.EnumGeoKeys(srcFileName, 1); 
   codecs.GeoKeyFound -= new EventHandler<CodecsEnumGeoKeysEventArgs>(codecs_MyGeyKeyFound); 
 
   // Clean up 
   codecs.Dispose(); 
} 
 
void codecs_MyGeyKeyFound(object sender, CodecsEnumGeoKeysEventArgs e) 
{ 
   Console.WriteLine("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(geoKeySrcFileName, 1, e.Id); 
 
   // Write it to the destination file 
   Console.WriteLine("Writing this GeoKey to the destination file"); 
   codecs.WriteGeoKey(geoKeyDestFileName, 1, geoKey); 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Drawing 
Imports Leadtools.Svg 
 
 
Private geoKeySrcFileName As String 
Private geoKeyDestFileName As String 
 
Private Sub WriteGeoKeyExample(ByVal srcFileName As String, ByVal destFileName As String) 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   geoKeySrcFileName = srcFileName 
   geoKeyDestFileName = destFileName 
 
   AddHandler codecs.GeoKeyFound, AddressOf codecs_MyGeyKeyFound 
   codecs.EnumGeoKeys(srcFileName, 1) 
   RemoveHandler codecs.GeoKeyFound, AddressOf codecs_MyGeyKeyFound 
 
   ' Clean up 
   codecs.Dispose() 
End Sub 
 
Private Sub codecs_MyGeyKeyFound(ByVal sender As Object, ByVal e As CodecsEnumGeoKeysEventArgs) 
   Console.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(geoKeySrcFileName, 1, e.Id) 
 
   ' Write it to the destination file 
   Console.WriteLine("Writing this GeoKey to the destination file") 
   codecs.WriteGeoKey(geoKeyDestFileName, 1, geoKey) 
End Sub 
c#[Silverlight C# Example] 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Examples; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Windows.Media; 
 
Stream geoKeySrcStream; 
Stream geoKeyDestStream; 
 
void WriteGeoKeyExample(Stream inStreamGeyKey, Stream outStreamGeyKey) 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   geoKeySrcStream = inStreamGeyKey; 
   geoKeyDestStream = outStreamGeyKey; 
 
   codecs.GeoKeyFound += new EventHandler<CodecsEnumGeoKeysEventArgs>(codecs_MyGeyKeyFound); 
   codecs.EnumGeoKeys(inStreamGeyKey, 1); 
   codecs.GeoKeyFound -= new EventHandler<CodecsEnumGeoKeysEventArgs>(codecs_MyGeyKeyFound); 
} 
 
void codecs_MyGeyKeyFound(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(geoKeySrcStream, 1, e.Id); 
 
   // Write it to the destination file 
   Debug.WriteLine("Wirting this GeoKey to the destination file"); 
   codecs.WriteGeoKey(geoKeyDestStream, 1, geoKey); 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Windows.Media 
 
Private geoKeySrcStream As Stream 
Private geoKeyDestStream As Stream 
 
Private Sub WriteGeoKeyExample(ByVal inStreamGeyKey As Stream, ByVal outStreamGeyKey As Stream) 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   geoKeySrcStream = inStreamGeyKey 
   geoKeyDestStream = outStreamGeyKey 
 
   AddHandler codecs.GeoKeyFound, AddressOf codecs_MyGeyKeyFound 
   codecs.EnumGeoKeys(inStreamGeyKey, 1) 
   RemoveHandler codecs.GeoKeyFound, AddressOf codecs_MyGeyKeyFound 
End Sub 
 
Private Sub codecs_MyGeyKeyFound(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(geoKeySrcStream, 1, e.Id) 
 
   ' Write it to the destination file 
   Debug.WriteLine("Wirting this GeoKey to the destination file") 
   codecs.WriteGeoKey(geoKeyDestStream, 1, geoKey) 
End Sub 

Requirements

Target Platforms

Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Codecs Assembly