←Select platform

WriteGeoKey(Stream,int,RasterTagMetadata) Method

Summary
Writes or changes a GeoKeys to an existing stream.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public void WriteGeoKey( 
   Stream stream, 
   int pageNumber, 
   RasterTagMetadata geoKey 
) 
- (BOOL)writeGeoKey:(nullable LTRasterTagMetadata *)geoKey  
           toStream:(LTLeadStream *)stream  
         pageNumber:(NSInteger)pageNumber  
              error:(NSError **)error 
public void writeGeoKey(ILeadStream stream, int pageNumber, RasterTagMetadata geoKey) 
public: 
void WriteGeoKey(  
   Stream^ stream, 
   int pageNumber, 
   RasterTagMetadata^ geoKey 
)  
def WriteGeoKey(self,stream,pageNumber,geoKey): 

Parameters

stream
A Stream that contains the file data.

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
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
 
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) 
{ 
   Debug.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 
   Debug.WriteLine("Writing this GeoKey to the destination file"); 
   codecs.WriteGeoKey(geoKeyDestFileName, 1, geoKey); 
} 
 
import java.io.*; 
import java.net.*; 
import java.nio.file.Paths; 
import java.util.*; 
import java.time.Instant; 
import java.time.Duration; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.codecs.RasterCodecs.FeedCallbackThunk; 
import leadtools.drawing.internal.*; 
import leadtools.imageprocessing.*; 
import leadtools.imageprocessing.color.ChangeIntensityCommand; 
import leadtools.svg.*; 
 
 
 
// String geoKeySrcFileName; 
String geoKeyDestFileName; 
 
public void writeGeoKeyExample() throws IOException { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "ocr1-4.tif"); 
   RasterCodecs codecs = new RasterCodecs(); 
 
   geoKeySrcFileName = srcFileName; 
   geoKeyDestFileName = srcFileName; 
 
   codecs.addGeoKeyFoundListener(codecsGetKeyFound); 
   ILeadStream srcFileStream = LeadStreamFactory.create(srcFileName); 
   codecs.enumGeoKeys(srcFileStream, 1); 
   codecs.removeGeoKeyFoundListener(codecsGetKeyFound); 
 
   // Clean up 
   codecs.dispose(); 
   srcFileStream.close(); 
} 
 
CodecsGeoKeyFoundListener codecsmyGeyKeyFound = new CodecsGeoKeyFoundListener() { 
 
   @Override 
   public void onGeoKeyFound(CodecsEnumGeoKeysEvent e) { 
      System.out.printf("GeoKey: Id=%s, Count=%s, Type=%s, Data Length=%s, Data=%n", e.getId(), e.getCount(), 
            e.getMetadataType(), e.getBuffer().getLength()); 
 
      // Load this GeoKey 
      RasterCodecs codecs = (RasterCodecs) e.getSource(); 
      ILeadStream geoSrcStream = LeadStreamFactory.create(geoKeySrcFileName); 
      RasterTagMetadata geoKey = codecs.readGeoKey(geoSrcStream, 1, e.getId()); 
 
      // Write it to the destination file 
      System.out.println("Writing this GeoKey to the destination file"); 
      ILeadStream geoDestStream = LeadStreamFactory.create(geoKeyDestFileName); 
      codecs.writeGeoKey(geoDestStream, 1, geoKey); 
      try { 
         geoSrcStream.close(); 
      } catch (IOException e1) { 
         e1.printStackTrace(); 
      } 
      try { 
         geoDestStream.close(); 
      } catch (IOException e1) { 
         e1.printStackTrace(); 
      } 
   } 
 
}; 
Requirements

Target Platforms

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

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