←Select platform

MetadataType Property

Summary
Gets the type of GeoKey.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public RasterTagMetadataDataType MetadataType { get; } 
@property (nonatomic, assign, readonly) LTRasterTagMetadataDataType metadataType; 
public RasterTagMetadataDataType getMetadataType() 
public: 
property RasterTagMetadataDataType MetadataType { 
   RasterTagMetadataDataType get(); 
} 
MetadataType # get  (CodecsEnumGeoKeysEventArgs) 

Property Value

The type of the GeoKey This indicates whether the data pointed to by Buffer is SHORT, DOUBLE or ASCII. Possible values are:

Value Meaning
RasterTagMetadataDataType.Int16 Two bytes, unsigned.
RasterTagMetadataDataType.Double Eight bytes used as a double-precision floating-point number
RasterTagMetadataDataType.Ascii Byte in the range of 0 to 255. Null-terminated

You can also construct a new RasterTagMetadata object from the data stored in this CodecsEnumGeoKeysEventArgs using the ToRasterTagMetadata method.

Example
C#
Java
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(); 
} 
 
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.*; 
 
 
RasterCollection<RasterTagMetadata> myGeoKeys; 
String geoKeySrcFileName; 
 
public void enumGeoKeysExample() throws IOException { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "raster_image_enum_geokey.tif"); 
   String destFileName = combine(LEAD_VARS_IMAGES_DIR, "raster_image_enum_geokeys_out.tif"); 
   RasterCodecs codecs = new RasterCodecs(); 
 
   geoKeySrcFileName = srcFileName; 
   myGeoKeys = new RasterCollection<RasterTagMetadata>(); 
 
   codecs.addGeoKeyFoundListener(codecsGetKeyFound); 
   ILeadStream srcFileStream = LeadStreamFactory.create(srcFileName); 
 
   codecs.enumGeoKeys(srcFileStream, 1); 
   codecs.removeGeoKeyFoundListener(codecsGetKeyFound); 
 
   // We read all the tags now, save them to the file 
   System.out.println(myGeoKeys.getCount() + " GeoKeys read, saving them to the destination file"); 
   ILeadStream destFileStream = LeadStreamFactory.create(destFileName); 
   RasterImage srcImage = codecs.load(srcFileName); 
 
   codecs.save(srcImage, destFileStream, RasterImageFormat.TIF, 0); 
   codecs.writeGeoKeys(destFileStream, 1, myGeoKeys); 
 
   // Clean up 
   srcFileStream.close(); 
   destFileStream.close(); 
   codecs.dispose(); 
} 
 
CodecsGeoKeyFoundListener codecsGetKeyFound = new CodecsGeoKeyFoundListener() { 
 
   @Override 
   public void onGeoKeyFound(CodecsEnumGeoKeysEvent e) { 
      System.out.printf("GeoKey: Id=%s, Count=%s, Type=%s, Data Length=%s, Data=, Cancel=%s%n", e.getId(), 
            e.getCount(), e.getMetadataType(), e.getBuffer().getLength(), e.getCancel()); 
      // Load this GeoKey 
      RasterCodecs codecs = (RasterCodecs) e.getSource(); 
      ILeadStream geoStream = LeadStreamFactory.create(geoKeySrcFileName); 
      RasterTagMetadata geoKey = codecs.readGeoKey(geoStream, 1, e.getId()); 
      byte[] data = geoKey.getData(); 
      for (int i = 0; i < data.length; i++) 
         System.out.println(data[i]); 
 
      // Add it to our collection 
      myGeoKeys.add(geoKey); 
      e.toRasterTagMetadata(); 
      try { 
         geoStream.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.