←Select platform

ReadComment(string,int,RasterCommentMetadataType) Method

Summary
Gets a comment field from a file.
Syntax
C#
VB
Objective-C
C++
Public Overloads Function ReadComment( _ 
   ByVal fileName As String, _ 
   ByVal pageNumber As Integer, _ 
   ByVal type As RasterCommentMetadataType _ 
) As RasterCommentMetadata 
- (nullable LTRasterCommentMetadata *)readCommentFromFile:(NSString *)file  
                                               pageNumber:(NSInteger)pageNumber  
                                                     type:(LTRasterCommentMetadataType)type  
                                                    error:(NSError **)error 

Parameters

fileName
A String containing the input file name.

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

type
The type of comment. Refer to Types of File Comments.

Return Value

A RasterCommentMetadata object containing the comment field information. If no such comment is found in the file, this method will return a null reference.

Remarks

Some file formats can contain comments, and some cannot, and each file format has its own set of comment types. When you save a file, the comments in the RasterImage object can be saved in the file. The index into the array (specified using a constant) determines the type of comment.

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

To read all the comments stored in a file, use ReadComments.

Example

This example demonstrates all of the methods related to comments for TIFF files. It saves a few comments to a file before loading them back

C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
public void CommentsExample() 
{ 
	RasterCodecs codecs = new RasterCodecs(); 
 
	string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
	string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Comments.tif"); 
 
	// Convert the source file to TIF 
	Console.WriteLine("Converting the source file to TIF"); 
	codecs.Convert(srcFileName, destFileName, RasterImageFormat.Tif, 0, 0, 24, null); 
 
	// Add the artist comment 
	RasterCommentMetadata writeComment = new RasterCommentMetadata(); 
	writeComment.Type = RasterCommentMetadataType.Artist; 
	writeComment.FromAscii("LEADTOOLS"); 
 
	Console.WriteLine("Writing the following comment:"); 
	Console.WriteLine(" Type:{0}, Data:{1}", writeComment.Type, writeComment.ToAscii()); 
 
	codecs.WriteComment(destFileName, 1, writeComment); 
 
	// Read the comment back 
	RasterCommentMetadata readComment = codecs.ReadComment(destFileName, 1, RasterCommentMetadataType.Artist); 
	Console.WriteLine("The following comment has been read:"); 
	Console.WriteLine(" Type:{0}, Data:{1}", readComment.Type, readComment.ToAscii()); 
 
	// Write a few comments to the file in one pass 
	IList<RasterCommentMetadata> comments = new List<RasterCommentMetadata>(); 
	writeComment = new RasterCommentMetadata(); 
	writeComment.Type = RasterCommentMetadataType.Artist; 
	writeComment.FromAscii("LEADTOOLS Again"); 
	comments.Add(writeComment); 
 
	writeComment = new RasterCommentMetadata(); 
	writeComment.Type = RasterCommentMetadataType.Copyright; 
	writeComment.FromAscii("(c) 2006"); 
	comments.Add(writeComment); 
 
	Console.WriteLine("Writing the following comments to the file:"); 
	foreach (RasterCommentMetadata comment in comments) 
		Console.WriteLine(" Type:{0}, Data:{1}", comment.Type, comment.ToAscii()); 
 
	codecs.WriteComments(destFileName, 1, comments); 
 
	// Now get all the comments in the file and show them: 
	Console.WriteLine("Reading all comments from the file:"); 
 
	RasterCommentMetadataType[] tifComments = 
	{ 
	RasterCommentMetadataType.Artist, 
	RasterCommentMetadataType.Copyright, 
	RasterCommentMetadataType.DateTime, 
	RasterCommentMetadataType.Description, 
	RasterCommentMetadataType.HostComputer, 
	RasterCommentMetadataType.Make, 
	RasterCommentMetadataType.Model, 
	RasterCommentMetadataType.NameOfDocument, 
	RasterCommentMetadataType.NameOfPage, 
	RasterCommentMetadataType.Software, 
 }; 
 
	foreach (RasterCommentMetadataType tifComment in tifComments) 
	{ 
		RasterCommentMetadata comment = codecs.ReadComment(destFileName, 1, tifComment); 
		if (comment != null) 
		{ 
			Console.Write("Found comment, Type:{0}, Data:", comment.Type); 
 
			RasterCommentMetadataDataType dataType = RasterCommentMetadata.GetDataType(comment.Type); 
 
			byte[] byteData; 
			short[] shortData; 
			RasterMetadataRational[] rationalData; 
			RasterMetadataURational[] urationalData; 
 
			switch (dataType) 
			{ 
				case RasterCommentMetadataDataType.Ascii: 
					Console.WriteLine(comment.ToAscii()); 
					break; 
 
				case RasterCommentMetadataDataType.Byte: 
					byteData = comment.ToByte(); 
					for (int i = 0; i < byteData.Length; i++) 
						Console.Write("{0:X} ", byteData[i]); 
					Console.WriteLine(); 
					break; 
 
				case RasterCommentMetadataDataType.Int16: 
					shortData = comment.ToInt16(); 
					for (int i = 0; i < shortData.Length; i++) 
						Console.Write("{0:X} ", shortData[i]); 
					Console.WriteLine(); 
					break; 
 
				case RasterCommentMetadataDataType.Rational: 
					rationalData = comment.ToRational(); 
					for (int i = 0; i < rationalData.Length; i++) 
						Console.Write(@"{0}/{1) ", rationalData[i].Numerator, rationalData[i].Denominator); 
					Console.WriteLine(); 
					break; 
 
				case RasterCommentMetadataDataType.URational: 
					urationalData = comment.ToURational(); 
					for (int i = 0; i < urationalData.Length; i++) 
						Console.Write(@"{0}/{1) ", urationalData[i].Numerator, urationalData[i].Denominator); 
					Console.WriteLine(); 
					break; 
			} 
		} 
	} 
 
	// Clean up 
	codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images"; 
} 
Requirements

Target Platforms

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

Leadtools.Codecs Assembly