public RasterNativeBuffer Buffer { get; }
@property (nonatomic, assign, readonly, nullable) const unsigned char *data
@property (nonatomic, assign, readonly) NSUInteger dataLength
public RasterNativeBuffer getBuffer()
public:
property RasterNativeBuffer Buffer {
RasterNativeBuffer get();
}
Buffer # get (CodecsEnumGeoKeysEventArgs)
A pointer to the unmanaged memory containing the GeoKey data.
The number of bytes in Buffer can be obtained by RasterNativeBuffer.Length, while the number of items can be obtained by Count.
You can also construct a new RasterTagMetadata object from the data stored in this CodecsEnumGeoKeysEventArgs using the ToRasterTagMetadata method.
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();
}
}
};
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