LEADTOOLS (Leadtools assembly)
LEAD Technologies, Inc

Comments Property

Example 





The collection of comment data used when reading and writing certain file formats (including GIF). .NET support Silverlight support
Syntax
'Declaration
 
Public ReadOnly Property Comments As RasterCollection(Of RasterCommentMetadata)
'Usage
 
Dim instance As RasterImage
Dim value As RasterCollection(Of RasterCommentMetadata)
 
value = instance.Comments
 get_Comments(); 

Property Value

A collection of RasterCommentMetadata used when reading and writing certain file formats (including GIF).
Remarks

Several formats allow you to store non-image data such as comments, tags, and markers.

You can manipulate the comments of an image by adding/removing RasterCommentMetadata objects to this collection.

By setting the CodecsSaveOptions.Comments property to true before calling RasterCodecs.Save, you can save the comments in this collection when the image is saved into a file.

By setting the CodecsLoadOptions.Markers property to true before calling RasterCodecs.Load, you can load all the markers (if any) into this collection when an image is loaded from a file.

You can use the RasterCodecs.WriteMarkers method to save the markers directly to an existing file.

For more information, refer to Non Image Data and Types of File Comments.

Example
 
Private Sub DisplayComment(ByVal comment As RasterCommentMetadata)
      Select Case comment.DataType
         Case RasterCommentMetadataDataType.Ascii
            MessageBox.Show("Comment of type " & comment.Type.ToString() & " = " & comment.ToAscii())
      End Select
   End Sub
   Public Sub CommentsExample()
      Dim codecs As RasterCodecs = New RasterCodecs()
      Dim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.CMP"))

      'Ascii
      Dim commentDataAscii As RasterCommentMetadata = New RasterCommentMetadata()
      ' set the artist comment
      commentDataAscii.Type = RasterCommentMetadataType.Artist
      commentDataAscii.FromAscii("Test String")
      image.Comments.Add(commentDataAscii)

      codecs.Options.Save.Comments = True
      codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1_COMMENTS.TIF"), RasterImageFormat.Tif, 0)
      ' load the comment together with the image

      Dim comment As RasterCommentMetadata = codecs.ReadComment(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1_COMMENTS.TIF"), 1, RasterCommentMetadataType.Artist)
      DisplayComment(comment)

      codecs.Dispose()
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
private void DisplayComment(RasterCommentMetadata comment)
   {
      switch(comment.DataType)
      {
         case RasterCommentMetadataDataType.Ascii:
            MessageBox.Show("Comment of type " + comment.Type.ToString() + " = " + comment.ToAscii());
            break;
      }
   }
   public void CommentsExample()
   {
      RasterCodecs codecs = new RasterCodecs();
      RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.CMP"));

      //Ascii
      RasterCommentMetadata commentDataAscii = new RasterCommentMetadata();
      // set the artist comment
      commentDataAscii.Type = RasterCommentMetadataType.Artist;
      commentDataAscii.FromAscii("Test String");
      image.Comments.Add(commentDataAscii);

      codecs.Options.Save.Comments = true;
      codecs.Save(image,Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1_COMMENTS.TIF"), RasterImageFormat.Tif, 0);
      // load the comment together with the image

      RasterCommentMetadata comment = codecs.ReadComment(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1_COMMENTS.TIF"), 1, RasterCommentMetadataType.Artist);
      DisplayComment(comment);

      codecs.Dispose();
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
function DisplayComment(comment)
{
   switch (comment.dataType)
   {
      case Leadtools.RasterCommentMetadataDataType.ascii:
         console.info("Comment of type " + comment.type.toString() + " = " + comment.toAscii());
         break;
   }
}


RasterImageExamples.prototype.CommentsExample = function () {
   Tools.SetLicense();
   with (Leadtools) {
      with (Leadtools.Codecs) {
         var codecs = new RasterCodecs();
         var srcFileName = "Assets\\Image1.cmp";
         var image;

         return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {
            return codecs.loadAsync(LeadStreamFactory.create(loadFile))
         })
               .then(function (img) {
                  image = img;

                  //Ascii
                  var commentDataAscii = new RasterCommentMetadata();
                  // set the artist comment
                  commentDataAscii.type = RasterCommentMetadataType.artist;
                  commentDataAscii.fromAscii("Test String");
                  image.comments.append(commentDataAscii);

                  codecs.options.save.comments = true;
                  return Tools.AppLocalFolder().createFileAsync("IMAGE1_COMMENTS.TIF")
               })
               .then(function (saveFile) {
                  var saveStream = LeadStreamFactory.create(saveFile);
                  return codecs.saveAsync(image, saveStream, RasterImageFormat.tif, 0)
               })
               .then(function () {

                  // load the comment together with the image
                  return Tools.AppLocalFolder().getFileAsync("IMAGE1_COMMENTS.TIF")
               })
               .then(function (loadFile) {
                  return codecs.readCommentAsync(LeadStreamFactory.create(loadFile), 1, RasterCommentMetadataType.artist)
               })
               .then(function (comment) {
                  DisplayComment(comment);
                  image.close();
                  codecs.close();
               });
      }
   }
}
private void DisplayComment(RasterCommentMetadata comment)
{
   switch (comment.DataType)
   {
      case RasterCommentMetadataDataType.Ascii:
         Debug.WriteLine("Comment of type " + comment.Type.ToString() + " = " + comment.ToAscii());
         break;
   }
}
[TestMethod]
public async Task CommentsExample()
{
   RasterCodecs codecs = new RasterCodecs();
   string srcFileName = @"Assets\Image1.cmp";
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
   RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile));
   //Ascii
   RasterCommentMetadata commentDataAscii = new RasterCommentMetadata();
   // set the artist comment
   commentDataAscii.Type = RasterCommentMetadataType.Artist;
   commentDataAscii.FromAscii("Test String");
   image.Comments.Add(commentDataAscii);

   codecs.Options.Save.Comments = true;
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync("IMAGE1_COMMENTS.TIF");
   ILeadStream saveStream = LeadStreamFactory.Create(saveFile);
   await codecs.SaveAsync(image, saveStream, RasterImageFormat.Tif, 0);

   // load the comment together with the image
   loadFile = await Tools.AppLocalFolder.GetFileAsync("IMAGE1_COMMENTS.TIF");
   RasterCommentMetadata comment = await codecs.ReadCommentAsync(LeadStreamFactory.Create(loadFile), 1, RasterCommentMetadataType.Artist);
   DisplayComment(comment);

   codecs.Dispose();
}
private void DisplayComment(RasterCommentMetadata comment)
{
   switch (comment.DataType)
   {
      case RasterCommentMetadataDataType.Ascii:
         Debug.WriteLine("Comment of type " + comment.Type.ToString() + " = " + comment.ToAscii());
         break;
   }
}
public void CommentsExample(RasterImage image, Stream destStream)
{
   //Ascii
   RasterCommentMetadata commentDataAscii = new RasterCommentMetadata();
   // set the artist comment
   commentDataAscii.Type = RasterCommentMetadataType.Artist;
   commentDataAscii.FromAscii("Test String");
   image.Comments.Add(commentDataAscii);
   RasterCodecs codecs = new RasterCodecs();
   codecs.Options.Save.Comments = true;
   codecs.Save(image, destStream, RasterImageFormat.Tif, 0);
   // load the comment together with the image

   RasterCommentMetadata comment = codecs.ReadComment(destStream, 1, RasterCommentMetadataType.Artist);
   DisplayComment(comment);
}
Private Sub DisplayComment(ByVal comment As RasterCommentMetadata)
   Select Case comment.DataType
      Case RasterCommentMetadataDataType.Ascii
         Debug.WriteLine("Comment of type " & comment.Type.ToString() & " = " & comment.ToAscii())
   End Select
End Sub
Public Sub CommentsExample(ByVal image As RasterImage, ByVal destStream As Stream)
   'Ascii
   Dim commentDataAscii As RasterCommentMetadata = New RasterCommentMetadata()
   ' set the artist comment
   commentDataAscii.Type = RasterCommentMetadataType.Artist
   commentDataAscii.FromAscii("Test String")
   image.Comments.Add(commentDataAscii)
   Dim codecs As RasterCodecs = New RasterCodecs()
   codecs.Options.Save.Comments = True
   codecs.Save(image, destStream, RasterImageFormat.Tif, 0)
   ' load the comment together with the image

   Dim comment As RasterCommentMetadata = codecs.ReadComment(destStream, 1, RasterCommentMetadataType.Artist)
   DisplayComment(comment)
End Sub
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

RasterImage Class
RasterImage Members

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.