Forum Moderators: open
if (File.Exists(pngPath))
{
using (Stream pngStream = File.Open(pngPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
{
PngBitmapDecoder pngDecoder = new PngBitmapDecoder(pngStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad);
BitmapFrame pngFrame = pngDecoder.Frames[0];
InPlaceBitmapMetadataWriter pngInplace = pngFrame.CreateInPlaceBitmapMetadataWriter();
if (pngInplace.TrySave() == true)
{
pngInplace.SetQuery("/Text/Description", "Testing");
}
pngStream.Close();
}
}
Please help!
Thanks
-c
/// <summary>
/// Adds meta data to a jpeg file
/// </summary>
/// <param name="fileIn">The full path (including file name) to the source file.</param>
/// <param name="fileOut">The full path (including file name) of the output file.</param>
/// <example>ModifyJpegMetadata(@"C:\temp\image.jpg", @"C:\temp\newImage.jpg");</example>
public void ModifyJpegMetadata(string fileIn, string fileOut)
{
BitmapDecoder decoder = null;
if (File.Exists(fileIn))
{
using (Stream streamIn = File.Open(fileIn, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
decoder = new JpegBitmapDecoder(streamIn, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad);
}
BitmapFrame frame = decoder.Frames[0];
if (frame != null)
{
InPlaceBitmapMetadataWriter writer = frame.CreateInPlaceBitmapMetadataWriter();
writer.Title = "test";
if (!writer.TrySave() == true)
{
BitmapMetadata metaData = (BitmapMetadata)frame.Metadata.Clone();
if (metaData != null)
{
metaData.SetQuery("/app1/ifd/PaddingSchema:Padding", (UInt32)4096);metaData.Title = "My Shiny new Title";
metaData.Subject = "Subject lorem ipsum";
metaData.DateTaken = "01-01-2001";
metaData.Copyright = "me ;)";if (metaData != null)
{
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(frame, frame.Thumbnail, metaData, frame.ColorContexts));
using (Stream jpegStreamOut = File.Open(fileOut, FileMode.Create, FileAccess.ReadWrite))
{
encoder.Save(jpegStreamOut);
}
}
}
}
}
}
}