This sample demonstrates how to use EXIF macros to add extended information about photo as annotation using Bytescout.Watermarking SDK for .NET

EXIF macros are available for use with all presets. In this example we will use Annotation preset. Full list of supported EXIF and file information macros is available here

Download source code: (170 KB)

Output image:

sample input image

using System;
using System.Diagnostics;
using System.Drawing;
using System.Collections.Generic;
using Bytescout.Watermarking;
using Bytescout.Watermarking.Presets;

namespace Sample
class Program
static void Main(string[] args)
// Create Watermarker instance
Watermarker waterMarker = new Watermarker();

// Initialize library
waterMarker.InitLibrary(“demo”, “demo”);

// Set input file name
string inputFilePath = “my_sample_image.jpg”;
// Set output file title
string outputFilePath = “my_sample_output.jpg”;

// Add image to apply watermarks to
waterMarker.AddInputFile(inputFilePath, outputFilePath);

// Create new watermark
TextAnnotation preset = new TextAnnotation();

// Set text with macros
// complete list of available macros please see in the SDK documentation
preset.Text = @”Date Time: {{LOCAL_DATE_LONG}} {{LOCAL_TIME}} “+
“nFilename: {{FILENAME}}n” +
“Software: {{EXIF_SOFTWARE_USED}}n” +
“Date/Time: {{EXIF_ORIGINAL_DATE}}n” +
“Exposure Time: {{EXIF_EXPOSURE_TIME}} secn” +
“Exposure Program: {{EXIF_EXPOSURE_PROGRAM}}n” +
“Exposure Bias: {{EXIF_EXPOSURE_BIAS}} EVn” +
“F Number: F {{EXIF_F_NUMBER}}n” +
“ISO Speed Rating: ISO {{EXIF_ISO_SPEED}}n” +
“Flash: {{EXIF_FLASH}}n” +
“Focal Length: {{EXIF_FOCAL_LENGTH}} mmn” +
“Metering Mode: {{EXIF_METERING_MODE}}”;

// Set watermark font
preset.Font = new WatermarkFont(“Tahoma”, FontStyle.Regular, FontSizeType.Percents, 2); // set font size to 2% of the image size

waterMarker.OutputOptions.OutputDirectory = “.”;
// Add watermark to watermarker

// Apply watermarks

// open generated image file in default image viewer installed in Windows

Download source code: (170 KB)