Leadtools.Codecs Namespace > RasterCodecs Class > WriteGeoKey Method : WriteGeoKey(String,Int32,RasterTagMetadata) Method |
public void WriteGeoKey( string fileName, int pageNumber, RasterTagMetadata geoKey )
'Declaration Public Overloads Sub WriteGeoKey( _ ByVal fileName As String, _ ByVal pageNumber As Integer, _ ByVal geoKey As RasterTagMetadata _ )
'Usage Dim instance As RasterCodecs Dim fileName As String Dim pageNumber As Integer Dim geoKey As RasterTagMetadata instance.WriteGeoKey(fileName, pageNumber, geoKey)
public void WriteGeoKey( string fileName, int pageNumber, RasterTagMetadata geoKey )
function Leadtools.Codecs.RasterCodecs.WriteGeoKey(String,Int32,RasterTagMetadata)( fileName , pageNumber , geoKey )
public: void WriteGeoKey( String^ fileName, int pageNumber, RasterTagMetadata^ geoKey )
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 Files topic for more information.
Private geoKeySrcFileName As String Private geoKeyDestFileName As String Private Sub WriteGeoKeyExample(ByVal srcFileName As String, ByVal destFileName As String) Dim codecs As RasterCodecs = New RasterCodecs() geoKeySrcFileName = srcFileName geoKeyDestFileName = destFileName AddHandler codecs.GeoKeyFound, AddressOf codecs_MyGeyKeyFound codecs.EnumGeoKeys(srcFileName, 1) RemoveHandler codecs.GeoKeyFound, AddressOf codecs_MyGeyKeyFound ' Clean up codecs.Dispose() End Sub Private Sub codecs_MyGeyKeyFound(ByVal sender As Object, ByVal e As CodecsEnumGeoKeysEventArgs) Console.WriteLine("GeoKey: Id={0}, Count={1}, Type={2}, DataLength={3}, Data=", e.Id, e.Count, e.MetadataType, e.Buffer.Length) ' Load this GeoKey Dim codecs As RasterCodecs = TryCast(sender, RasterCodecs) Dim geoKey As RasterTagMetadata = codecs.ReadGeoKey(geoKeySrcFileName, 1, e.Id) ' Write it to the destination file Console.WriteLine("Wirting this GeoKey to the destination file") codecs.WriteGeoKey(geoKeyDestFileName, 1, geoKey) End Sub
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) { Console.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 Console.WriteLine("Wirting this GeoKey to the destination file"); codecs.WriteGeoKey(geoKeyDestFileName, 1, geoKey); }
var geoKeySrcFileName; var geoKeyDestFileName; RasterCodecsExamples.prototype.WriteGeoKeyExample = function () { Tools.SetLicense(); with (Leadtools) { with (Leadtools.Codecs) { var srcFileName = "Assets\\Utm2gtif.tif"; var destFileName = "WriteGeoKey.tif"; var codecs = new RasterCodecs(); Leadtools.RasterSupport.initialize(); codecs.eventsDispatchMode = Leadtools.LeadEventsDispatchMode.useCoreDispatcher; geoKeySrcFileName = srcFileName; geoKeyDestFileName = destFileName; return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) { codecs.addEventListener("geokeyfound", codecs_MyGeyKeyFound); return codecs.enumGeoKeysAsync(LeadStreamFactory.create(loadFile), 1) }) .then(function () { codecs.removeEventListener("geokeyfound", codecs_MyGeyKeyFound); // Clean up codecs.close(); }); } } } function codecs_MyGeyKeyFound(e) { Tools.SetLicense(); with (Leadtools) { with (Leadtools.Codecs) { console.info("GeoKey: Id=", e.id, ", Count=", e.count, ", Type=", e.metadataType, ", Data Length=", e.buffer.length, ", Data="); var codecs = e.target; var geoKey; // Load this GeoKey return Tools.AppInstallFolder().getFileAsync(geoKeySrcFileName).then(function (loadFile) { return codecs.readGeoKeyAsync(LeadStreamFactory.create(loadFile), 1, e.id) }) .then(function (geoKeyX) { geoKey = geoKeyX; // Write it to the destination file console.info("Writing this GeoKey to the destination file"); return Tools.AppLocalFolder().createFileAsync(geoKeyDestFileName) }) .then(function (saveFile) { return codecs.writeGeoKeyAsync(LeadStreamFactory.create(saveFile), 1, geoKey) }); } } }
string geoKeySrcFileName; string geoKeyDestFileName; async Task WriteGeoKeyExample(string srcFileName, string destFileName) { RasterCodecs codecs = new RasterCodecs(); geoKeySrcFileName = srcFileName; geoKeyDestFileName = destFileName; StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName); codecs.GeoKeyFound += new EventHandler<CodecsEnumGeoKeysEventArgs>(codecs_MyGeyKeyFound); await codecs.EnumGeoKeysAsync(LeadStreamFactory.Create(loadFile), 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}", e.Id, e.Count, e.MetadataType, e.Buffer.Length); }
Stream geoKeySrcStream; Stream geoKeyDestStream; void WriteGeoKeyExample(Stream inStreamGeyKey, Stream outStreamGeyKey) { RasterCodecs codecs = new RasterCodecs(); geoKeySrcStream = inStreamGeyKey; geoKeyDestStream = outStreamGeyKey; codecs.GeoKeyFound += new EventHandler<CodecsEnumGeoKeysEventArgs>(codecs_MyGeyKeyFound); codecs.EnumGeoKeys(inStreamGeyKey, 1); codecs.GeoKeyFound -= new EventHandler<CodecsEnumGeoKeysEventArgs>(codecs_MyGeyKeyFound); } void codecs_MyGeyKeyFound(object sender, CodecsEnumGeoKeysEventArgs e) { Debug.WriteLine("GeoKey: Id={0}, Count={1}, Type={2}, DataLength={3}, Data=", e.Id, e.Count, e.MetadataType, e.Buffer.Length); // Load this GeoKey RasterCodecs codecs = sender as RasterCodecs; RasterTagMetadata geoKey = codecs.ReadGeoKey(geoKeySrcStream, 1, e.Id); // Write it to the destination file Debug.WriteLine("Wirting this GeoKey to the destination file"); codecs.WriteGeoKey(geoKeyDestStream, 1, geoKey); }
Private geoKeySrcStream As Stream Private geoKeyDestStream As Stream Private Sub WriteGeoKeyExample(ByVal inStreamGeyKey As Stream, ByVal outStreamGeyKey As Stream) Dim codecs As RasterCodecs = New RasterCodecs() geoKeySrcStream = inStreamGeyKey geoKeyDestStream = outStreamGeyKey AddHandler codecs.GeoKeyFound, AddressOf codecs_MyGeyKeyFound codecs.EnumGeoKeys(inStreamGeyKey, 1) RemoveHandler codecs.GeoKeyFound, AddressOf codecs_MyGeyKeyFound End Sub Private Sub codecs_MyGeyKeyFound(ByVal sender As Object, ByVal e As CodecsEnumGeoKeysEventArgs) Debug.WriteLine("GeoKey: Id={0}, Count={1}, Type={2}, DataLength={3}, Data=", e.Id, e.Count, e.MetadataType, e.Buffer.Length) ' Load this GeoKey Dim codecs As RasterCodecs = TryCast(sender, RasterCodecs) Dim geoKey As RasterTagMetadata = codecs.ReadGeoKey(geoKeySrcStream, 1, e.Id) ' Write it to the destination file Debug.WriteLine("Wirting this GeoKey to the destination file") codecs.WriteGeoKey(geoKeyDestStream, 1, geoKey) End Sub
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2