Trying to save MetaData into TIFF file...

EDN Admin

Well-known member
Joined
Aug 7, 2010
Messages
12,794
Location
In the Machine
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
 


Write your reply...
Back
Top