Add Watermark to Images or Images in Documents using C#

Add watermark to JPG, GIF, TIFF, PNG, or BMP images & photos is actually adding more or less visible information in the form of a text or some other image to real photos. The watermark changes the image on the pixel level and the pixels that make up the resulting watermark is changed more or less in the direction of the watermarking image. This article will guide you to insert text watermark to images and also to watermark images present inside any document using C#.

.NET API to Watermark Images and Documents

Watermark API for .NET Developers

GroupDocs.Watermark is an API for adding watermarks to the images or documents of different file formats. It provides effective watermarking methods that allow you to add watermarks that are hard to be automatically removed by third-party tools.

Let’s discuss some use cases that how easily we can add the watermarks to images by writing code using GroupDocs.Watermark for .NET API.

Adding Watermark to Multi-Framed TIFF Image using C#

When you are working with an animated gif or multi-frame TIFF images, you may want to add watermark to some particular frame(s). 

The implementation of this use case is given below:

TiffImageLoadOptions loadOptions = new TiffImageLoadOptions();
// Constants.InImageTiff is an absolute or relative path to your document. Ex: @"C:\Docs\image.tiff"
using (Watermarker watermarker = new Watermarker(Constants.InImageTiff, loadOptions))
    // Initialize text or image watermark
    TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19));
    // Add watermark to the first frame
    TiffImageWatermarkOptions options = new TiffImageWatermarkOptions();
    options.FrameIndex = 0;
    watermarker.Add(watermark, options);

You can see the black watermark at the top left corner of the image, like the screenshot given below:

Text Watermark on Document using GroupDocs.Watermark API for .NET

Adding Watermark to Images Inside a Document using C#

Most of the document formats allow you to place images inside a document. If you want to add watermark to images inside a document, it is possible. The following are the steps to add watermark to the images inside any document.

  1. Load the document 
  2. Create and initialize watermark object 
  3. Set watermark properties 
  4. Find images in the document
  5. Add watermark to all found images
  6. Save the document

The following code snippet shows the implementation:

// Constants.InDocumentPdf is an absolute or relative path to your document. Ex: @"C:\Docs\document.pdf"
using (Watermarker watermarker = new Watermarker(Constants.InDocumentPdf))
    // Initialize text watermark
    TextWatermark textWatermark = new TextWatermark("Protected image", new Font("Arial", 8));
    textWatermark.HorizontalAlignment = HorizontalAlignment.Center;
    textWatermark.VerticalAlignment = VerticalAlignment.Center;
    textWatermark.RotateAngle = 45;
    textWatermark.SizingType = SizingType.ScaleToParentDimensions;
    textWatermark.ScaleFactor = 1;
    // Initialize image watermark
    using (ImageWatermark imageWatermark = new ImageWatermark(Constants.ProtectJpg))
        imageWatermark.HorizontalAlignment = HorizontalAlignment.Center;
        imageWatermark.VerticalAlignment = VerticalAlignment.Center;
        imageWatermark.RotateAngle = -45;
        imageWatermark.SizingType = SizingType.ScaleToParentDimensions;
        imageWatermark.ScaleFactor = 1;
        // Find all images in a document
        WatermarkableImageCollection images = watermarker.GetImages();
        for (int i = 0; i < images.Count; i++)
            if (images[i].Width > 100 && images[i].Height > 100)
                if (i % 2 == 0)

The complete ready to run code sample is available on GitHub.