public class CodecsEnumGeoKeysEventArgs : EventArgs @interface LTCodecsEnumGeoKeysEventArgs : NSObject public class CodecsEnumGeoKeysEvent extends LeadEvent public ref class CodecsEnumGeoKeysEventArgs : public System.EventArgs class CodecsEnumGeoKeysEventArgs(EventArgs): 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 fileDebug.WriteLine("{0} GeoKeys read, saving them to the destination file", myGeoKeys.Count);codecs.WriteGeoKeys(destFileName, 1, myGeoKeys);// Clean upcodecs.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 GeoKeyRasterCodecs 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 collectionmyGeoKeys.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 fileSystem.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 upsrcFileStream.close();destFileStream.close();codecs.dispose();}CodecsGeoKeyFoundListener codecsGetKeyFound = new CodecsGeoKeyFoundListener() {@Overridepublic 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 GeoKeyRasterCodecs 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 collectionmyGeoKeys.add(geoKey);e.toRasterTagMetadata();try {geoStream.close();} catch (IOException e1) {e1.printStackTrace();}}};
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
