добавить водяной знак к изображениям C#

Водяные знаки на изображениях обычно используются для подтверждения права собственности на контент. С другой стороны, изображения снабжены водяными знаками, чтобы избежать несанкционированного использования или подделки. В различных случаях вам может потребоваться автоматизировать функцию водяных знаков в ваших веб-приложениях или приложениях для ПК. Для таких сценариев в этой статье описывается, как программно добавлять водяные знаки к изображениям с помощью C#. Это также может быть полезно, когда вам нужно поставить водяной знак на несколько изображений за один раз. Итак, начнем.

C# API для добавления водяных знаков к изображениям

Чтобы добавить водяные знаки к изображениям, мы будем использовать Aspose.Imaging for .NET. Это мощный API для обработки изображений, который поддерживает широкий спектр форматов изображений. Кроме того, API упрощает работу с изображениями. Вы можете либо скачать бинарные файлы API, либо установить его с помощью NuGet.

PM> Install-Package Aspose.Imaging

Добавить водяной знак к изображению в C#

Ниже приведены шаги по добавлению водяного знака к изображению с помощью C#.

  • Загрузите изображение с помощью класса Image.
  • Создайте экземпляр класса Graphics и инициализируйте его объектом Image.
  • Установите семейство, размер и начертание шрифта с помощью класса Font.
  • Создайте экземпляр класса SolidBrush и задайте его свойства, такие как цвет и т. д.
  • Создайте экземпляр класса StringFormat для установки выравнивания текста.
  • Добавьте водяной знак к изображению с помощью метода Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat).
  • Сохраните изображение с помощью метода Image.Save(String).

В следующем примере кода показано, как добавить водяной знак к изображению в C#.

// Загрузить существующее изображение PNG
using (Image image = Image.Load("image.png"))
{
    // Объявите объект String с текстом водяного знака
    string theString = "This is watermark";

    // Создайте и инициализируйте экземпляр класса Graphics и инициализируйте объект SizeF для хранения размера изображения.
    Graphics graphics = new Graphics(image);
    SizeF sz = graphics.Image.Size;

    // Создает экземпляр шрифта, инициализирует его шрифтом, размером и стилем.
    Font font = new Font("Times New Roman", 20, FontStyle.Bold);

    // Создайте экземпляр SolidBrush и задайте его различные свойства.
    SolidBrush brush = new SolidBrush();
    brush.Color = Color.Red;
    brush.Opacity = 0;

    // Инициализировать объект класса StringFormat и установить его различные свойства.
    StringFormat format = new StringFormat();
    format.Alignment = StringAlignment.Center;
    format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;

    // Нарисуйте строку на выходе Image Save на диск
    graphics.DrawString(theString, font, brush, 0, 0, format);
    image.Save("watermarked.jpg");
}
Добавить водяной знак к изображению C#

Добавить диагональный водяной знак к изображениям в C#

В различных случаях водяные знаки наносятся на изображения по диагонали. Для этого Aspose.Imaging for .NET позволяет трансформировать текст водяного знака под определенным углом. Ниже приведены шаги по добавлению диагонального водяного знака на изображение.

  • Загрузите изображение с помощью класса Image.
  • Создайте экземпляр класса Graphics и инициализируйте его объектом Image.
  • Установите семейство, размер и начертание шрифта с помощью класса Font.
  • Создайте экземпляр класса SolidBrush и задайте его свойства, такие как цвет и т. д.
  • Создайте экземпляр класса StringFormat для установки выравнивания текста.
  • Создайте экземпляр класса Matrix и установите угол трансформации.
  • Назначьте объект Matrix свойству Graphics.Transform.
  • Добавьте водяной знак, используя метод Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat).
  • Сохраните изображение с помощью метода Image.Save(String).

В следующем примере кода показано, как добавить диагональный водяной знак к изображениям с помощью C#.

// Загрузить существующее изображение PNG
using (Image image = Image.Load("Image.png"))
{
    // Объявите объект String с текстом водяного знака
    string theString = "45 Degree Rotated Text";

    // Создайте и инициализируйте экземпляр класса Graphics и инициализируйте объект SizeF для хранения размера изображения.
    Graphics graphics = new Graphics(image);
    SizeF sz = graphics.Image.Size;

    // Создает экземпляр шрифта, инициализирует его шрифтом, размером и стилем.
    Font font = new Font("Times New Roman", 20, FontStyle.Bold);

    // Создайте экземпляр SolidBrush и задайте его различные свойства.
    SolidBrush brush = new SolidBrush();
    brush.Color = Color.Red;
    brush.Opacity = 0;

    // Инициализировать объект класса StringFormat и установить его различные свойства.
    StringFormat format = new StringFormat();
    format.Alignment = StringAlignment.Center;
    format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;

    // Создайте объект класса Matrix для преобразования
    Matrix matrix = new Matrix();

    // Сначала перевод, потом ротация                
    matrix.Translate(sz.Width / 2, sz.Height / 2);
    matrix.Rotate(-45.0f);

    // Установите преобразование через матрицу
    graphics.Transform = matrix;

    // Нарисуйте строку на выходе Image Save на диск
    graphics.DrawString(theString, font, brush, 0, 0, format);
    image.Save("watermarked.png");
}
Добавить диагональный водяной знак к изображению C#

Получите бесплатную лицензию API

Если вы хотите попробовать API без оценочных ограничений, вы можете получить бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как добавлять водяные знаки к изображениям с помощью C#. Кроме того, вы видели, как преобразовать текст водяного знака под определенным углом. Вы можете узнать больше об API обработки изображений C#, используя документацию. Если у вас возникнут какие-либо вопросы или вопросы, свяжитесь с нами через наш форум.

Смотрите также