EDN Admin
Well-known member
Hi,
Im trying to save MetaData into a TIFF file using Framework 3.0.
Everything goes OK, but it seems MetaData is not saved.
to write
<div class=codeseg>
<div class=codecontent>
<div class=codesniptitle><span style="width:100% Code Snippet
<div style="text-align:left //must be included:
using System.Windows.Media.Imaging;
using System.Windows.Controls;
//SourceFileStream
Stream tiffStream = new System.IO.FileStream("C:\source.tiff", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
//DestinationFileStream
Stream newtiffStream = new System.IO.FileStream("C:\destination.tiff", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
//Decoder
TiffBitmapDecoder tiffDecoder = new TiffBitmapDecoder(tiffStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
//Encoder
TiffBitmapEncoder tiffEncoder = new TiffBitmapEncoder();
//Insert MetaData
BitmapFrame tiffFrame = tiffDecoder.Frames[0];
InPlaceBitmapMetadataWriter tiffInplace = tiffFrame.CreateInPlaceBitmapMetadataWriter();
if (tiffInplace.TrySave() == true)
{
tiffInplace.SetQuery("/Text/Description", "Have a nice day.");
}
//The <span style="background-color:rgb(255,255,0) tiffInplace.GetQuery told me the MetaData is inserted correctly.
//Copy from Decoder to Encoder
foreach (BitmapFrame frame in tiffDecoder.Frames)
{
tiffEncoder.Frames.Add(frame);
}
//I save to a new file, because I receive an error trying to save to the source file
tiffEncoder.Save(newtiffStream);
tiffStream.Close();
to read
<div class=codeseg>
<div class=codecontent>
<div class=codesniptitle><span style="width:100% Code Snippet
<div style="text-align:left Stream tiffStream = new System.IO.FileStream("C:\destination.tiff", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
TiffBitmapDecoder tiffDecoder = new TiffBitmapDecoder(tiffStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapFrame tiffFrame = tiffDecoder.Frames[0];
InPlaceBitmapMetadataWriter tiffInplace = tiffFrame.CreateInPlaceBitmapMetadataWriter();
TextBlock myTextBlock = new TextBlock();
myTextBlock.Text = "The Description metadata of this image is: " + tiffInplace.GetQuery("/Text/Description").ToString();
tiffStream.Close();
The destination file is correctly saved, I can open it with any program and see all pages.
<br style="background-color:rgb(255,255,0) <span style="background-color:rgb(255,255,0) Btu when I try to read MetaData, I get an error "Object not set" on tiffInplace.GetQuery
Any idea ?
View the full article
Im trying to save MetaData into a TIFF file using Framework 3.0.
Everything goes OK, but it seems MetaData is not saved.
to write
<div class=codeseg>
<div class=codecontent>
<div class=codesniptitle><span style="width:100% Code Snippet
<div style="text-align:left //must be included:
using System.Windows.Media.Imaging;
using System.Windows.Controls;
//SourceFileStream
Stream tiffStream = new System.IO.FileStream("C:\source.tiff", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
//DestinationFileStream
Stream newtiffStream = new System.IO.FileStream("C:\destination.tiff", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
//Decoder
TiffBitmapDecoder tiffDecoder = new TiffBitmapDecoder(tiffStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
//Encoder
TiffBitmapEncoder tiffEncoder = new TiffBitmapEncoder();
//Insert MetaData
BitmapFrame tiffFrame = tiffDecoder.Frames[0];
InPlaceBitmapMetadataWriter tiffInplace = tiffFrame.CreateInPlaceBitmapMetadataWriter();
if (tiffInplace.TrySave() == true)
{
tiffInplace.SetQuery("/Text/Description", "Have a nice day.");
}
//The <span style="background-color:rgb(255,255,0) tiffInplace.GetQuery told me the MetaData is inserted correctly.
//Copy from Decoder to Encoder
foreach (BitmapFrame frame in tiffDecoder.Frames)
{
tiffEncoder.Frames.Add(frame);
}
//I save to a new file, because I receive an error trying to save to the source file
tiffEncoder.Save(newtiffStream);
tiffStream.Close();
to read
<div class=codeseg>
<div class=codecontent>
<div class=codesniptitle><span style="width:100% Code Snippet
<div style="text-align:left Stream tiffStream = new System.IO.FileStream("C:\destination.tiff", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
TiffBitmapDecoder tiffDecoder = new TiffBitmapDecoder(tiffStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapFrame tiffFrame = tiffDecoder.Frames[0];
InPlaceBitmapMetadataWriter tiffInplace = tiffFrame.CreateInPlaceBitmapMetadataWriter();
TextBlock myTextBlock = new TextBlock();
myTextBlock.Text = "The Description metadata of this image is: " + tiffInplace.GetQuery("/Text/Description").ToString();
tiffStream.Close();
The destination file is correctly saved, I can open it with any program and see all pages.
<br style="background-color:rgb(255,255,0) <span style="background-color:rgb(255,255,0) Btu when I try to read MetaData, I get an error "Object not set" on tiffInplace.GetQuery
Any idea ?
View the full article