Update JPEG metadata losslessly
JPG Lossless JPEG Read Write Metadata Filesystem
Updates metadata of JPEG image without recompression.
Сode Snippet
using (var losslessJpeg = new LosslessJpeg("Chicago.jpg"))
{
// IPTC
if (losslessJpeg.Iptc == null)
{
losslessJpeg.Iptc = new IptcDictionary();
}
losslessJpeg.Iptc[IptcDictionary.Caption] = "Mountain";
// EXIF
if (losslessJpeg.Exif == null)
{
losslessJpeg.Exif = new ExifDictionary();
}
losslessJpeg.Exif[ExifDictionary.Software] = "Aurigma Graphics Mill";
// XMP
var xmp = new XmpData();
if (losslessJpeg.Xmp != null)
{
xmp.Load(losslessJpeg.Xmp);
}
var node = new XmpValueNode(XmpNodeType.SimpleProperty, "John Doe", XmpTagNames.DCContributor);
xmp.AddNode(node);
losslessJpeg.Xmp = xmp.Save();
// Adobe image resource blocks
if (losslessJpeg.AdobeResources == null)
{
losslessJpeg.AdobeResources = new AdobeResourceDictionary();
}
const int copyrightFlag = 0x040A;
var arBlock = new AdobeResourceBlock("Copyright", new byte[] { 1 });
losslessJpeg.AdobeResources[copyrightFlag] = arBlock;
losslessJpeg.Write("UpdateJpegMetadataLosslessly.jpg");
}
Input
Chicago.jpg
Output
UpdateJpegMetadataLosslessly.jpg
For AI-assisted development: Download Graphics Mill Code Samples XML Catalog