RasterCommentMetadata Class (original) (raw)
Summary
Extends the RasterMetadata class to provide functionality for dealing with comment metadata stored within various image file formats.
Syntax
C#
Objective-C
C++/CLI
Java
Python
[SerializableAttribute()]
public class RasterCommentMetadata : [RasterMetadata](rastermetadata.html)
@interface LTRasterCommentMetadata : LTRasterMetadata
public class RasterCommentMetadata
extends [RasterMetadata](rastermetadata.html)
implements java.io.Serializable
[SerializableAttribute()]
public ref class RasterCommentMetadata : public [RasterMetadata](rastermetadata.html)
class RasterCommentMetadata(RasterMetadata):
Example
This example will write comments of different data types to an existing tif file then read them as a test.
using Leadtools;
using Leadtools.Codecs;
public void RasterCommentMetadataExample()
{
RasterCodecs codecs = new RasterCodecs();
codecs.ThrowExceptionsOnInvalidImages = true;
string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_comments.tif");
// Load the image
RasterImage image = codecs.Load(srcFileName);
codecs.Save(image, destFileName, RasterImageFormat.Tif, 24);
image.Dispose();
// Write some comments to the existing tif file
RasterCommentMetadata comment = new RasterCommentMetadata();
comment.Type = RasterCommentMetadataType.Artist;
string artistNameWrite = "Artist name";
comment.FromAscii(artistNameWrite);
Console.WriteLine("Writing Artist");
codecs.WriteComment(destFileName, 1, comment);
comment.Type = RasterCommentMetadataType.GpsLatitude;
RasterMetadataRational[] rationalsWrite = new RasterMetadataRational[3];
for (int i = 0; i < rationalsWrite.Length; i++)
rationalsWrite[i] = new RasterMetadataRational(i + 3, i + 2);
comment.FromRational(rationalsWrite);
Console.WriteLine("Writing GpsLatitude");
codecs.WriteComment(destFileName, 1, comment);
// Now read the comments from the tif file
// read ASCII
comment = codecs.ReadComment(destFileName, 1, RasterCommentMetadataType.Artist);
string artistNameRead = comment.ToAscii();
Console.WriteLine("Artist: {0}", artistNameRead);
Assert.IsTrue(artistNameRead == artistNameWrite);
// read rationals
comment = codecs.ReadComment(destFileName, 1, RasterCommentMetadataType.GpsLatitude);
RasterMetadataRational[] rationalsRead = comment.ToRational();
int size = rationalsRead.Length;
Console.WriteLine("GpsLatitude: size = {0} ", size);
for (int i = 0; i < size; i++)
Console.WriteLine("{0}/{1}", rationalsRead[i].Numerator, rationalsRead[i].Denominator);
Assert.IsTrue(rationalsRead.Length == rationalsWrite.Length);
for (int i = 0; i < rationalsRead.Length; i++)
{
Assert.IsTrue(rationalsRead[i].Numerator == rationalsWrite[i].Numerator);
Assert.IsTrue(rationalsRead[i].Denominator == rationalsWrite[i].Denominator);
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}
Leadtools Assembly