- fileName
- A System.String containing the input file name.
- pageNumber
- 1-based index of the page from which to enumerate the tags.
Visual Basic (Declaration) | |
---|---|
Overloads Public Sub EnumTags( _ ByVal fileName As String, _ ByVal pageNumber As Integer _ ) |
Visual Basic (Usage) | ![]() |
---|---|
Dim instance As RasterCodecs Dim fileName As String Dim pageNumber As Integer instance.EnumTags(fileName, pageNumber) |
C# | |
---|---|
public void EnumTags( string fileName, int pageNumber ) |
C++/CLI | |
---|---|
public: void EnumTags( String^ fileName, int pageNumber ) |
Parameters
- fileName
- A System.String containing the input file name.
- pageNumber
- 1-based index of the page from which to enumerate the tags.
This example will show all the tags in the give file, read them then saves them to another file
Visual Basic | ![]() |
---|---|
Private tagsFileName As String Private myTags As RasterCollection(Of RasterTagMetadata) Private Sub EnumTagsExample(ByVal srcFileName As String, ByVal destFileName As String) Dim codecs As RasterCodecs = New RasterCodecs() tagsFileName = srcFileName myTags = New RasterCollection(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# | ![]() |
---|---|
string tagsFileName; RasterCollection<RasterTagMetadata> myTags; void EnumTagsExample(string srcFileName, string destFileName) { RasterCodecs codecs = new RasterCodecs(); tagsFileName = srcFileName; myTags = new RasterCollection<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); } |
SilverlightCSharp | ![]() |
---|---|
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); } |
SilverlightVB | ![]() |
---|---|
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 |
This method will fire the TagFound event for each tag found in the file.
Currently, only TIFF and Exif files contain tags.
For multipage TIFF files, you can enumerate the tags from a particular page. Specify the page number whose tags to enumerate.
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(Stream,Int32).
To read a tag value, use ReadTag(String,Int32,Int32) and to read all the tags in a file, use RasterCodecs.ReadTags.
For general information about TIFF tags, refer to Implementing TIFF Comments and Tags.
Do not attempt to use DeleteTag(String,Int32,Int32) 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(String,Int32), you can delete all the tags from the list.
You can use RasterCodecs.TagsSupported to check if a certain file format supports tags.
Target Platforms: Silverlight, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)