Лучшие методы добавления водяных знаков к изображениям с использованием библиотеки Jimp

Водяные знаки – популярный способ защитить цифровой контент и добавить фирменный стиль изображениям. В этой статье мы рассмотрим различные методы добавления водяных знаков к изображениям с помощью библиотеки Jimp, мощного инструмента обработки изображений для Node.js. Мы предоставим примеры кода для каждого метода, которые помогут вам эффективно реализовать водяные знаки. Давайте погрузимся!

Метод 1: текстовый водяной знак
Один из самых простых способов добавить водяной знак — наложение текста на изображение. Jimp предлагает простой метод для этого:

const Jimp = require('jimp');
Jimp.read('input.jpg')
  .then(image => {
    return Jimp.loadFont(Jimp.FONT_SANS_32_WHITE)
      .then(font => {
        image.print(font, 10, 10, 'Watermark Text');
        return image.write('output.jpg');
      });
  })
  .catch(err => {
    console.error(err);
  });

Метод 2: водяной знак изображения.
Другой популярный метод — наложение изображения в качестве водяного знака на исходное изображение. Вот как этого можно добиться с помощью Jimp:

const Jimp = require('jimp');
Promise.all([Jimp.read('input.jpg'), Jimp.read('watermark.png')])
  .then(images => {
    const image = images[0];
    const watermark = images[1];
    watermark.resize(image.getWidth() / 2, Jimp.AUTO);
    image.composite(watermark, 10, 10, {
      mode: Jimp.BLEND_SOURCE_OVER,
      opacityDest: 1,
      opacitySource: 0.5
    });
    return image.write('output.jpg');
  })
  .catch(err => {
    console.error(err);
  });

Метод 3: прозрачный водяной знак
Чтобы добавить прозрачный водяной знак, вы можете изменить непрозрачность изображения водяного знака. Вот пример:

const Jimp = require('jimp');
Promise.all([Jimp.read('input.jpg'), Jimp.read('watermark.png')])
  .then(images => {
    const image = images[0];
    const watermark = images[1];
    watermark.opacity(0.5);
    image.composite(watermark, 10, 10, {
      mode: Jimp.BLEND_SOURCE_OVER,
      opacityDest: 1,
      opacitySource: 1
    });
    return image.write('output.jpg');
  })
  .catch(err => {
    console.error(err);
  });

Метод 4: мозаичный водяной знак
Вы можете разместить меньшее изображение водяного знака по всему изображению, чтобы добиться уникального эффекта. Вот как это можно сделать:

const Jimp = require('jimp');
Promise.all([Jimp.read('input.jpg'), Jimp.read('watermark.png')])
  .then(images => {
    const image = images[0];
    const watermark = images[1];
    watermark.resize(100, 100);
    image.scan(0, 0, image.getWidth(), image.getHeight(), (x, y, idx) => {
      image.setPixelColor(watermark.getPixelColor(x % 100, y % 100), x, y);
    });
    return image.write('output.jpg');
  })
  .catch(err => {
    console.error(err);
  });

В этой статье мы рассмотрели различные методы добавления водяных знаков к изображениям с помощью библиотеки Jimp. Мы рассмотрели текстовые водяные знаки, водяные знаки изображений, прозрачные водяные знаки и мозаичные водяные знаки. Предоставленные примеры должны стать хорошей отправной точкой для внедрения водяных знаков в ваши собственные проекты. Не забудьте настроить код в соответствии с вашими конкретными требованиями. Защитите свои изображения и улучшите свой бренд с помощью этого ценного метода!