Error processing SSI file
LEADTOOLS Image File Support (Leadtools.Codecs assembly)

Show in webframe

WriteGeoKey(String,Int32,RasterTagMetadata) Method








A String that contains the filename.
1-based index of the page at which to write the GeoKey.
GeoKey to identify the data in the Geo TIFF file.
Writes or changes a GeoKey to an existing file.
Syntax
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
)
- (BOOL)writeGeoKey:(nullable LTRasterTagMetadata *)geoKey 
             toFile:(NSString *)file 
         pageNumber:(NSInteger)pageNumber 
              error:(NSError **)error
            
 function Leadtools.Codecs.RasterCodecs.WriteGeoKey(String,Int32,RasterTagMetadata)( 
   fileName ,
   pageNumber ,
   geoKey 
)
public:
void WriteGeoKey( 
   String^ fileName,
   int pageNumber,
   RasterTagMetadata^ geoKey
) 

Parameters

fileName
A String that contains the filename.
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

This example will show all the GeoKeys in the given file and then load them and add them to a destination file

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Drawing
Imports Leadtools.Svg

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
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)
{
   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)
            });
      }
   }
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;

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);
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Examples;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Windows.Media;

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);
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Windows.Media

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
Requirements

Target Platforms

See Also

Reference

RasterCodecs Class
RasterCodecs Members
Overload List
Implementing GeoKeys (GeoTIFF tags)
Implementing TIFF Comments and Tags
Working with Markers

Error processing SSI file