←Select platform

CommentsSupported Method

Summary
Checks whether the given file format supports comment fields.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public static bool CommentsSupported( 
   RasterImageFormat format 
) 
+ (BOOL)commentsSupported:(LTRasterImageFormat)format 
public static boolean commentsSupported(RasterImageFormat format) 
public: 
static bool CommentsSupported(  
   RasterImageFormat format 
)  
def CommentsSupported(self,format): 

Parameters

format
The RasterImageFormat to check

Return Value

true if the format supports comment fields; otherwise it is false.

Remarks

This is a helper method that can be used to detect if a certain raster file format supports comment fields. For example, ReadComment and ReadComments can be used to read the comments stored in a file. If the file format supports comments, such as JPEG or EXIF, then these methods will successfully return the comments stored.

However, if the format does not support comments, such as BMP, an exception will be thrown by the RasterCodecs objects. You can use CommentsSupported to determine whether the file supports comments and only call the read methods if the return value is true.

Note that the RasterCodecs option uses this method internally to determine whether the file supports comments when the CodecsLoadOptions.Comments is set to true and only read the file comments if the file format supports them.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
public void MetadataLoadExample() 
{ 
   // Prompt the user for an image file 
   string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "test_GeoKey.TIF"); 
 
   // 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 
      IList<RasterTagMetadata> tags = null; 
      if (RasterCodecs.TagsSupported(format)) 
         tags = codecs.ReadTags(imageFileName, 1); 
 
      // Load the comments 
      IList<RasterCommentMetadata> comments = null; 
      if (RasterCodecs.CommentsSupported(format)) 
         comments = codecs.ReadComments(imageFileName, 1); 
 
      // Load the geo keys 
      IList<RasterTagMetadata> geoKeys = null; 
      if (RasterCodecs.GeoKeysSupported(format)) 
         geoKeys = codecs.ReadGeoKeys(imageFileName, 1); 
 
      // Load the markers 
      IList<RasterMarkerMetadata> markers = null; 
      if (RasterCodecs.MarkersSupported(format)) 
         markers = codecs.ReadMarkers(imageFileName); 
 
      string txtFileName = Path.Combine( 
         Path.GetDirectoryName(imageFileName), 
         Path.GetFileNameWithoutExtension(imageFileName) + "_metadata.txt"); 
 
      using (StreamWriter writer = File.CreateText(txtFileName)) 
      { 
         // Write the tags 
         WriteTags(writer, "Tags", tags); 
 
         // Write the comments 
         WriteComments(writer, comments); 
 
         // Write the geo keys (tags and geokeys use the same data type) 
         WriteTags(writer, "GeoKeys", geoKeys); 
 
         // Write the markers 
         WriteMarkers(writer, markers); 
      } 
 
      // Show the text file we created 
      Trace.Write(File.ReadAllText(txtFileName)); 
   } 
} 
 
private static void WriteTags(StreamWriter writer, string name, IList<RasterTagMetadata> tags) 
{ 
   writer.WriteLine("{0}:", name); 
 
   if (tags != null) 
   { 
      foreach (RasterTagMetadata tag in tags) 
      { 
         writer.WriteLine("Id: 0x{0}, data length: {1}", tag.Id.ToString("X"), tag.GetData().Length); 
      } 
   } 
   else 
   { 
      writer.WriteLine("Not supported"); 
   } 
 
   writer.WriteLine(); 
} 
 
private static void WriteComments(StreamWriter writer, IList<RasterCommentMetadata> comments) 
{ 
   writer.WriteLine("Comments:"); 
 
   if (comments != null) 
   { 
      foreach (RasterCommentMetadata comment in comments) 
      { 
         writer.WriteLine("Type: {0}, data length: {1}", comment.Type, comment.GetData().Length); 
      } 
   } 
   else 
   { 
      writer.WriteLine("Not supported"); 
   } 
 
   writer.WriteLine(); 
} 
 
private static void WriteMarkers(StreamWriter writer, IList<RasterMarkerMetadata> markers) 
{ 
   writer.WriteLine("Markers:"); 
 
   if (markers != null) 
   { 
      foreach (RasterMarkerMetadata marker in markers) 
      { 
         writer.WriteLine("ID: {0}, data length: {1}", marker.Id, marker.GetData().Length); 
      } 
   } 
   else 
   { 
      writer.WriteLine("Not supported"); 
   } 
 
   writer.WriteLine(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

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

Leadtools.Codecs Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.