←Select platform

ReadGeoKey(Stream,int,int) Method

Summary
Gets the specified GeoKey data from a TIFF stream.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public RasterTagMetadata ReadGeoKey( 
   Stream stream, 
   int pageNumber, 
   int id 
) 
- (nullable LTRasterTagMetadata *)readGeoKey:(NSUInteger)tagId  
                                  fromStream:(LTLeadStream *)stream  
                                  pageNumber:(NSInteger)pageNumber  
                                       error:(NSError **)error 
public RasterTagMetadata readGeoKey(ILeadStream stream, int pageNumber, int id) 
public: 
RasterTagMetadata^ ReadGeoKey(  
   Stream^ stream, 
   int pageNumber, 
   int id 
)  
def ReadGeoKey(self,stream,pageNumber,id): 

Parameters

stream
A Stream containing the input file data.

pageNumber
1-based index of the page from which to read the GeoKey.

id
GeoKey ID. Values of the GeoKey ID range between 0 and 65535. Possible ranges are:

Range Meaning
0..1023 Do not use; reserved for future use.
1024..2047 GeoTIFF Configuration Keys.
2048..3071 Geographic/Geocentric CS Parameter Keys.
3072..4095 Projected CS Parameter Keys.
4096..5119 Vertical CS Parameter Keys.
5120..32767 Reserved.
32768..65535 Private use - use to store your own data.

Return Value

The GeoKey data.

Remarks

You can use this method to obtain the GeoKey data from a particular file.

If no such GeoKey exists in the image, this method will return a null reference.

The most efficient way of reading the GeoKeys in a file is to enumerate them with EnumGeoKeys and then read each GeoKey with ReadGeoKey.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
 
IList<RasterTagMetadata> myGeoKeys; 
 
 
void EnumGeoKeysExample(string srcFileName, string destFileName) 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   geoKeySrcFileName = srcFileName; 
   myGeoKeys = new List<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 
   Debug.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) 
{ 
   Debug.WriteLine("GeoKey: Id={0}, Count={1}, Type={2}, Data Length={3}, Data=, Cancel={4}", e.Id, e.Count, e.MetadataType, e.Buffer.Length, e.Cancel); 
 
   // Load this GeoKey 
   RasterCodecs codecs = sender as RasterCodecs; 
   RasterTagMetadata geoKey = codecs.ReadGeoKey(geoKeySrcFileName, 1, e.Id); 
   byte[] data = geoKey.GetData(); 
   for (int i = 0; i < data.Length; i++) 
      Debug.WriteLine("{0:X} ", data[i].ToString()); 
 
   // Add it to our collection 
   myGeoKeys.Add(geoKey); 
   e.ToRasterTagMetadata(); 
} 
Requirements

Target Platforms

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

Leadtools.Codecs Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.