←Select platform

EnumTags(string,int) Method

Summary

Enumerates all the tags in a file.

Syntax
C#
VB
Objective-C
C++
public void EnumTags( 
   string fileName, 
   int pageNumber 
) 
Public Overloads Sub EnumTags( _ 
   ByVal fileName As String, _ 
   ByVal pageNumber As Integer _ 
)  
- (BOOL)enumerateTagsInFile:(NSString *)file  
                 pageNumber:(NSInteger)pageNumber  
                   callback:(void (^)(LTCodecsEnumTagsEventArgs *tagInfo))handler  
                      error:(NSError **)error 
public: 
void EnumTags(  
   String^ fileName, 
   int pageNumber 
)  

Parameters

fileName
A String containing the input file name.

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

Remarks

This method will fire the TagFound event for each tag found in the file.

Currently, only TIFF and Exif files contain tags.

For multi-page TIFF files, you can enumerate the tags from a particular page. Specify the page number which has the tags to be enumerated.

This method enumerates the standard TIFF tags and the user tags. Standard TIFF tags are less than 32767. User TIFF tags are usually between 32768 and 65535.

To enumerate the tags stored in a stream, use EnumTags.

To read a tag value, use ReadTag and to read all the tags in a file, use ReadTags.

For general information about TIFF tags, refer to Implementing TIFF Comments and Tags.

Do not attempt to use DeleteTag to delete tags from inside the TagFound event. If you want to delete tags that you enumerate, use this event to add the tags to a list. Upon returning from EnumTags, you can delete all the tags from the list.

You can use TagsSupported to determine whether a certain file format supports tags.

Example

This example will show all the tags in the give file, read them then saves them to another file

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
using LeadtoolsExamples.Common; 
 
string tagsFileName; 
IList<RasterTagMetadata> myTags; 
 
void EnumTagsExample(string srcFileName, string destFileName) 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   tagsFileName = srcFileName; 
   myTags = new List<RasterTagMetadata>(); 
 
   codecs.TagFound += new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound); 
   codecs.EnumTags(srcFileName, 1); 
   codecs.TagFound -= new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound); 
 
   // We read all the tags now, save them to the file 
   Console.WriteLine("{0} tags read, saving them to the destination file", myTags.Count); 
   codecs.WriteTags(destFileName, 1, myTags); 
 
   // Clean up 
   codecs.Dispose(); 
} 
 
void codecs_TagFound(object sender, CodecsEnumTagsEventArgs e) 
{ 
   Console.WriteLine("Tag: Id={0}, Count={1}, Type={2}", e.Id, e.Count, e.MetadataType); 
 
   // Read this tag from the file and add it to our collection 
   RasterCodecs codecs = sender as RasterCodecs; 
   RasterTagMetadata tag = codecs.ReadTag(tagsFileName, 1, e.Id); 
   myTags.Add(tag); 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Drawing 
Imports Leadtools.Svg 
 
Private tagsFileName As String 
Private myTags As IList(Of RasterTagMetadata) 
 
Private Sub EnumTagsExample(ByVal srcFileName As String, ByVal destFileName As String) 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   tagsFileName = srcFileName 
   myTags = New List(Of RasterTagMetadata)() 
 
   AddHandler codecs.TagFound, AddressOf codecs_TagFound 
   codecs.EnumTags(srcFileName, 1) 
   RemoveHandler codecs.TagFound, AddressOf codecs_TagFound 
 
   ' We read all the tags now, save them to the file 
   Console.WriteLine("{0} tags read, saving them to the destination file", myTags.Count) 
   codecs.WriteTags(destFileName, 1, myTags) 
 
   ' Clean up 
   codecs.Dispose() 
End Sub 
 
Private Sub codecs_TagFound(ByVal sender As Object, ByVal e As CodecsEnumTagsEventArgs) 
   Console.WriteLine("Tag: Id={0}, Count={1}, Type={2}", e.Id, e.Count, e.MetadataType) 
 
   ' Read this tag from the file and add it to our collection 
   Dim codecs As RasterCodecs = TryCast(sender, RasterCodecs) 
   Dim tag As RasterTagMetadata = codecs.ReadTag(tagsFileName, 1, e.Id) 
   myTags.Add(tag) 
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; 
 
Stream tagsStream; 
RasterCollection<RasterTagMetadata> myTags; 
 
void EnumTagsExample(Stream inStreamTif, Stream outStreamTif) 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   tagsStream = inStreamTif; 
   myTags = new RasterCollection<RasterTagMetadata>(); 
 
   codecs.TagFound += new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound); 
   codecs.EnumTags(inStreamTif, 1); 
   codecs.TagFound -= new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound); 
 
   // We read all the tags now, save them to the file 
   Debug.WriteLine("{0} tags read, saving them to the destination file", myTags.Count); 
   codecs.WriteTags(outStreamTif, 1, myTags); 
} 
 
void codecs_TagFound(object sender, CodecsEnumTagsEventArgs e) 
{ 
   Debug.WriteLine("Tag: Id={0}, Count={1}, Type={2}", e.Id, e.Count, e.MetadataType); 
 
   // Read this tag from the file and add it to our collection 
   RasterCodecs codecs = sender as RasterCodecs; 
   RasterTagMetadata tag = codecs.ReadTag(tagsStream, 1, e.Id); 
   myTags.Add(tag); 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Windows.Media 
 
Private tagsStream As Stream 
Private myTags As RasterCollection(Of RasterTagMetadata) 
 
Private Sub EnumTagsExample(ByVal inStreamTif As Stream, ByVal outStreamTif As Stream) 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   tagsStream = inStreamTif 
   myTags = New RasterCollection(Of RasterTagMetadata)() 
 
   AddHandler codecs.TagFound, AddressOf codecs_TagFound 
   codecs.EnumTags(inStreamTif, 1) 
   RemoveHandler codecs.TagFound, AddressOf codecs_TagFound 
 
   ' We read all the tags now, save them to the file 
   Debug.WriteLine("{0} tags read, saving them to the destination file", myTags.Count) 
   codecs.WriteTags(outStreamTif, 1, myTags) 
End Sub 
 
Private Sub codecs_TagFound(ByVal sender As Object, ByVal e As CodecsEnumTagsEventArgs) 
   Debug.WriteLine("Tag: Id={0}, Count={1}, Type={2}", e.Id, e.Count, e.MetadataType) 
 
   ' Read this tag from the file and add it to our collection 
   Dim codecs As RasterCodecs = TryCast(sender, RasterCodecs) 
   Dim tag As RasterTagMetadata = codecs.ReadTag(tagsStream, 1, e.Id) 
   myTags.Add(tag) 
End Sub 
Requirements

Target Platforms

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

Leadtools.Codecs Assembly