←Select platform

ReadTagsWithOffsets(Stream,int,out long[]) Method


Reads all the tags stored in a TIFF file, along with the offsets for each tag.

public IList<RasterTagMetadata> ReadTagsWithOffsets( 
   Stream stream, 
   int pageNumber, 
   out long[] offsets 
Public Overloads Function ReadTagsWithOffsets( _ 
   ByVal stream As Stream, _ 
   ByVal pageNumber As Integer, _ 
   ByRef offsets As Long() _ 
) As IList(Of RasterTagMetadata) 
- (nullable NSArray<LTRasterTagMetadata *> *)readTagsFromStream:(LTLeadStream *)stream  
                                                        offsets:(NSMutableArray<NSNumber *> *)offsets  
                                                          error:(NSError **)error 
public RasterCollection<RasterTagMetadata> readTagsWithOffsets(ILeadStream stream, int pageNumber, long[][] offsets) 
IList<RasterTagMetadata^>^ ReadTagsWithOffsets(  
   Stream^ stream, 
   int pageNumber, 
   [Out] array<int64> offsets 


A Stream containing the input image data.

1-based index of the page from which to read the tags.

An array that contains the offsets for each tag.

Return Value

A collection of RasterTagMetadata containing all the tags found in the file. If the file does not contain any tags, an empty collection will be returned. If the file format does not support tags, an exception will be thrown.


To read a specific tag stored in a file, use ReadTag and to enumerate all the tag ids (but not the data) stored in a file use EnumTags.

This method will throw an exception if the file format does not support tags. To determine whether a file format supports tags, use TagsSupported. You can also automatically load all the tags stored in a file during a load operation by setting the CodecsLoadOptions.Tags property to true. The tags data will be stored in the resulting image RasterImage.Tags collection.

To load all the tags stored in a disk file, use ReadTags.


This example will load all the tags, with their offsets, from a file.

using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
using LeadtoolsExamples.Common; 
public void ReadTagsWithOffsetsExample() 
   // Prompt the user for an image file 
   string imageFileName = PromptForFileName(); 
   // Initialize LEADTOOLS 
   using (RasterCodecs codecs = new RasterCodecs()) 
      // Get the file format 
      RasterImageFormat format; 
      using (CodecsImageInfo info = codecs.GetInformation(imageFileName, false)) 
         format = info.Format; 
      // Load the tags, with their offsets 
      IList<RasterTagMetadata> tags = null; 
      long[] offsets = null; 
      if (RasterCodecs.TagsSupported(format)) 
         tags = codecs.ReadTagsWithOffsets(imageFileName, 1, out offsets); 
      string txtFileName = Path.Combine( 
         Path.GetFileNameWithoutExtension(imageFileName) + "_metadata.txt"); 
      using (StreamWriter writer = File.CreateText(txtFileName)) 
         // Write the tags 
         WriteTags(writer, "Tags", tags, offsets); 
      // Show the text file we created 
private static void WriteTags(StreamWriter writer, string name, IList<RasterTagMetadata> tags, long[] offsets) 
   writer.WriteLine("{0}:", name); 
   if (tags != null) 
      int x = 0; 
      foreach (RasterTagMetadata tag in tags) 
         writer.WriteLine("Id: 0x{0}, offset: {1}", tag.Id.ToString("X"), offsets[x]); 
      writer.WriteLine("Not supported"); 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Drawing 
Imports Leadtools.Svg 
Private Shared Sub ReadTagsWithOffsetsExample() 
   ' Prompt the user for an image file 
   Dim imageFileName As String = PromptForFileName() 
   ' Initialize LEADTOOLS 
   Using codecs As New RasterCodecs() 
      ' Get the file format 
      Dim format As RasterImageFormat 
      Using info As CodecsImageInfo = codecs.GetInformation(imageFileName, False) 
         format = info.Format 
      End Using 
      ' Load the tags, with their offsets 
      Dim tags As IList(Of RasterTagMetadata) = Nothing 
      Dim offsets As Long() = Nothing 
      If RasterCodecs.TagsSupported(format) Then 
         tags = codecs.ReadTagsWithOffsets(imageFileName, 1, offsets) 
      End If 
      Dim txtFileName As String = Path.Combine( 
         Path.GetFileNameWithoutExtension(imageFileName) + "_metadata.txt") 
      Using writer As StreamWriter = File.CreateText(txtFileName) 
         ' Write the tags 
         WriteTags(writer, "Tags", tags, offsets) 
      End Using 
      ' Show the text file we created 
   End Using 
End Sub 
Private Shared Sub WriteTags(ByVal writer As StreamWriter, ByVal name As String, ByVal tags As IList(Of RasterTagMetadata), ByVal offsets As Long()) 
   writer.WriteLine("{0}:", name) 
   If Not IsNothing(tags) Then 
      Dim x As Integer = 0 
      For Each tag As RasterTagMetadata In tags 
         writer.WriteLine("Id: 0x{0}, offset: {1}", tag.Id.ToString("X"), offsets(x)) 
         x = x + 1 
      writer.WriteLine("Not supported") 
   End If 
End Sub 


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