Рубрики

Обработка изображений на Java | Набор 10 (Водяной знак изображения)

Мы настоятельно рекомендуем ссылаться на этот пост ниже.

В этом наборе мы будем генерировать водяной знак и наносить его на входное изображение.
Для генерации текста и его применения в изображении мы будем использовать пакет java.awt.Graphics . Шрифт и цвет текста применяются с использованием классов java.awt.Color и java.awt.Font .

Некоторые из методов, используемых в коде:

  • getGraphics () — Этот метод находится в классе BufferedImage и возвращает объект 2DGraphics из файла изображения.
  • drawImage (Image img, int x, int y, обозреватель ImageObserver) — Местоположение x, y указывает позицию для верхнего левого края изображения. Параметр наблюдатель уведомляет приложение об обновлении изображения, которое загружается асинхронно. Параметр наблюдатель не часто используется напрямую и не требуется для класса BufferedImage, поэтому он обычно равен нулю.
  • setFont (Font f) — этот метод находится в классе Font пакета awt, и конструктор принимает (FONT_TYPE, FONT_STYLE, FONT_SIZE) в качестве аргументов.
  • setColor (Color c) — этот метод находится в классе Color пакета awt, и конструктор принимает (R, G, B, A) в качестве аргументов.
  • drawString (String str, int x, int y) — класс Fond in Graphics принимает текст строки, а местоположение объединяет в качестве аргументов x и y.

// Java-код для нанесения водяного знака на изображение

  
// Для установки цвета текста водяного знака

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 WaterMark

{

    public static void main(String[] args)

    {

        BufferedImage img = null;

        File f = null;

  

        // Читать изображение

        try

        {

            f = new File("input.png");

            img = ImageIO.read(f);

        }

        catch(IOException e)

        {

            System.out.println(e);

        }

  

        // создаем объект BufferedImage такой же ширины и

        // высота от входного изображения

        BufferedImage temp = new BufferedImage(img.getWidth(),

                    img.getHeight(), BufferedImage.TYPE_INT_RGB);

  

        // Создать графический объект и добавить оригинал

        // изображение к нему

        Graphics graphics = temp.getGraphics();

        graphics.drawImage(img, 0, 0, null);

  

        // Установить шрифт для текста водяного знака

        graphics.setFont(new Font("Arial", Font.PLAIN, 80));

        graphics.setColor(new Color(255, 0, 0, 40));

  

        // Установка текста водяного знака

        String watermark = "WaterMark generated";

  

        // Добавить текст водяного знака в (ширина / 5, высота / 3)

        // место расположения

        graphics.drawString(watermark, img.getWidth()/5,

                                   img.getHeight()/3);

  

        // освобождает любые системные ресурсы, которые он использует

        graphics.dispose();

  

        f = new File("output.png");

        try

        {

            ImageIO.write(temp, "png", f);

        }

        catch (IOException e)

        {

            System.out.println(e);

        }

    }

}

ПРИМЕЧАНИЕ. Код не будет работать в режиме онлайн, так как для него требуется изображение на диске.

Выход:


input.jpg



output.jpg


Эта статья предоставлена Пратиком Агарвалом . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Обработка изображений на Java | Набор 10 (Водяной знак изображения)

0.00 (0%) 0 votes