←Select platform

WriteMarker(string,int,RasterMarkerMetadata) Method

Summary

Writes a marker to an existing file.

Syntax
C#
VB
Objective-C
C++
public void WriteMarker( 
   string fileName, 
   int pageNumber, 
   RasterMarkerMetadata marker 
) 
Public Overloads Sub WriteMarker( _ 
   ByVal fileName As String, _ 
   ByVal pageNumber As Integer, _ 
   ByVal marker As RasterMarkerMetadata _ 
)  
- (BOOL)writeMarker:(nullable LTRasterMarkerMetadata *)marker  
             toFile:(NSString *)file  
         pageNumber:(NSInteger)pageNumber  
              error:(NSError **)error 
public: 
void WriteMarker(  
   String^ fileName, 
   int pageNumber, 
   RasterMarkerMetadata^ marker 
)  

Parameters

fileName
A String that contains the file name.

pageNumber
1-based index of the page at which to write the marker.

marker
A RasterMarkerMetadata object that contains the marker data.

Remarks

For Exif files, this metadata collection will contain all the Exif and GPS comments, stored in APP1. It will also contain the audio information stored in APP2.

When you add or remove tags, the tags array at the end of the file is re-written. When you modify existing tags, the new tag value is added to the file and the IFD is modified as necessary. In all of these cases, there is no image recompression.

Example

This example read the markers from a source file and saving them to a destination file

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
using LeadtoolsExamples.Common; 
 
void MarkersExample(string srcFileName, string destFileName) 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Load the source image with markers 
   Console.WriteLine("Loading the source image with all markers"); 
   codecs.Options.Load.Markers = true; 
   RasterImage srcImage = codecs.Load(srcFileName); 
 
   // Show the markers loaded 
   Console.WriteLine("These markers were loaded:"); 
   foreach (RasterMarkerMetadata marker in srcImage.Markers) 
   { 
      byte[] data = marker.GetData(); 
      Console.WriteLine(" {0}, DataSize:{1}", marker.Id, data.Length); 
   } 
 
   // Create the destination image 
   RasterImage destImage = new RasterImage( 
      RasterMemoryFlags.Conventional, 
      320, 
      20, 
      24, 
      RasterByteOrder.Bgr, 
      RasterViewPerspective.TopLeft, 
      null, 
      IntPtr.Zero, 
      0); 
 
   // Save this as JPEG 
   codecs.Save(destImage, destFileName, RasterImageFormat.Jpeg, 24); 
 
   // Write the markers from the source image to this destination image 
   Console.WriteLine("Writing the markers to the destination file"); 
   codecs.WriteMarkers(destFileName, 1, srcImage.Markers); 
 
   srcImage.Dispose(); 
   destImage.Dispose(); 
 
   // Re-load the destination image with markers 
   Console.WriteLine("Loading the destination image with all markers"); 
   codecs.Options.Load.Markers = true; 
   destImage = codecs.Load(destFileName); 
 
   // Show the markers loaded 
   Console.WriteLine("These markers were loaded:"); 
   foreach (RasterMarkerMetadata marker in destImage.Markers) 
   { 
      byte[] data = marker.GetData(); 
      Console.WriteLine(" {0}, DataSize:{1}", marker.Id, data.Length); 
   } 
 
   destImage.Dispose(); 
 
   // Clean up 
   codecs.Dispose(); 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Drawing 
Imports Leadtools.Svg 
 
Private Sub MarkersExample(ByVal srcFileName As String, ByVal destFileName As String) 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   ' Load the source image with markers 
   Console.WriteLine("Loading the source image with all markers") 
   codecs.Options.Load.Markers = True 
   Dim srcImage As RasterImage = codecs.Load(srcFileName) 
 
   ' Show the markers loaded 
   Console.WriteLine("These markers were loaded:") 
   For Each marker As RasterMarkerMetadata In srcImage.Markers 
      Dim data As Byte() = marker.GetData() 
      Console.WriteLine(" {0}, DataSize:{1}", marker.Id, data.Length) 
   Next marker 
 
   ' Create the destination image 
   Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, 320, 20, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, Nothing, IntPtr.Zero, 0) 
 
   ' Save this as JPEG 
   codecs.Save(destImage, destFileName, RasterImageFormat.Jpeg, 24) 
 
   ' Write the markers from the source image to this destination image 
   Console.WriteLine("Writing the markers to the destination file") 
   codecs.WriteMarkers(destFileName, 1, srcImage.Markers) 
 
   srcImage.Dispose() 
   destImage.Dispose() 
 
   ' Re-load the destination image with markers 
   Console.WriteLine("Loading the destination image with all markers") 
   codecs.Options.Load.Markers = True 
   destImage = codecs.Load(destFileName) 
 
   ' Show the markers loaded 
   Console.WriteLine("These markers were loaded:") 
   For Each marker As RasterMarkerMetadata In destImage.Markers 
      Dim data As Byte() = marker.GetData() 
      Console.WriteLine(" {0}, DataSize:{1}", marker.Id, data.Length) 
   Next marker 
 
   destImage.Dispose() 
 
   ' Clean up 
   codecs.Dispose() 
End Sub 
c#[Silverlight C# Example] 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Examples; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Windows.Media; 
 
void MarkersExample(Stream inStreamExif, Stream outStreamJpg) 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Load the source image with markers 
   Debug.WriteLine("Loading the source image with all markers"); 
   codecs.Options.Load.Markers = true; 
   RasterImage srcImage = codecs.Load(inStreamExif); 
 
   // Show the markers loaded 
   Debug.WriteLine("These markers were loaded:"); 
   foreach (RasterMarkerMetadata marker in srcImage.Markers) 
   { 
      byte[] data = marker.GetData(); 
      Debug.WriteLine(" {0}, DataSize:{1}", marker.Id, data.Length); 
   } 
 
   // Create the destination image 
   RasterImage destImage = new RasterImage( 
      RasterMemoryFlags.Conventional, 
      320, 
      20, 
      24, 
      RasterByteOrder.Bgr, 
      RasterViewPerspective.TopLeft, 
      null, 
      null, 
      0); 
 
   // Save this as JPEG 
   codecs.Save(destImage, outStreamJpg, RasterImageFormat.Jpeg, 24); 
 
   // Write the markers from the source image to this destination image 
   Debug.WriteLine("Writing the markers to the destination file"); 
   codecs.WriteMarkers(outStreamJpg, 1, srcImage.Markers); 
 
   srcImage.Dispose(); 
   destImage.Dispose(); 
 
   // Re-load the destination image with markers 
   Debug.WriteLine("Loading the destination image with all markers"); 
   codecs.Options.Load.Markers = true; 
   destImage = codecs.Load(outStreamJpg); 
 
   // Show the markers loaded 
   Debug.WriteLine("These markers were loaded:"); 
   foreach (RasterMarkerMetadata marker in destImage.Markers) 
   { 
      byte[] data = marker.GetData(); 
      Debug.WriteLine(" {0}, DataSize:{1}", marker.Id, data.Length); 
   } 
 
   destImage.Dispose(); 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Windows.Media 
 
Private Sub MarkersExample(ByVal inStreamExif As Stream, ByVal outStreamJpg As Stream) 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   ' Load the source image with markers 
   Debug.WriteLine("Loading the source image with all markers") 
   codecs.Options.Load.Markers = True 
   Dim srcImage As RasterImage = codecs.Load(inStreamExif) 
 
   ' Show the markers loaded 
   Debug.WriteLine("These markers were loaded:") 
   For Each marker As RasterMarkerMetadata In srcImage.Markers 
      Dim data As Byte() = marker.GetData() 
      Debug.WriteLine(" {0}, DataSize:{1}", marker.Id, data.Length) 
   Next marker 
 
   ' Create the destination image 
   Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, 320, 20, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, Nothing, Nothing, 0) 
 
   ' Save this as JPEG 
   codecs.Save(destImage, outStreamJpg, RasterImageFormat.Jpeg, 24) 
 
   ' Write the markers from the source image to this destination image 
   Debug.WriteLine("Writing the markers to the destination file") 
   codecs.WriteMarkers(outStreamJpg, 1, srcImage.Markers) 
 
   srcImage.Dispose() 
   destImage.Dispose() 
 
   ' Re-load the destination image with markers 
   Debug.WriteLine("Loading the destination image with all markers") 
   codecs.Options.Load.Markers = True 
   destImage = codecs.Load(outStreamJpg) 
 
   ' Show the markers loaded 
   Debug.WriteLine("These markers were loaded:") 
   For Each marker As RasterMarkerMetadata In destImage.Markers 
      Dim data As Byte() = marker.GetData() 
      Debug.WriteLine(" {0}, DataSize:{1}", marker.Id, data.Length) 
   Next marker 
 
   destImage.Dispose() 
End Sub 

Requirements

Target Platforms

Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Codecs Assembly