How to create a watermark on an image using Java OpenCV library?


Following Java example draws a watermark (“Hello”) on the given image and saves it back.

Example

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class WaterMarkExample {
   public static void main(String[] args) throws IOException {
      //Reading the contents of an image
      File file = new File("D:\Images\test1.jpg");
      BufferedImage img = ImageIO.read(file);
      //Creating an empty image for output
      int height = img.getHeight();
      int width = img.getWidth();
      BufferedImage res = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
      //Creating a graphics object
      Graphics graphics = res.getGraphics();
      graphics.drawImage(img, 0, 0, null);
      //Creating font for water mark
      Font font = new Font("Arial", Font.PLAIN, 45);
      graphics.setFont(font);
      graphics.setColor(new Color(255, 150, 200, 30));
      //Drawing the water mark string on the image
      graphics.drawString("Hello", width/7, height/5);
      //Disposing the string
      graphics.dispose();
      //Writing the result image.
      file = new File("D:\Images\watermark.jpg");
      ImageIO.write(res, "jpg", file);
   }
}

Input

Output

Updated on: 09-Apr-2020

341 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements