Додавання водяного знаку до зображення

Додавання водяного знаку до зображення

Цей документ пояснює, як додати водяний знак до зображення за допомогою Aspose.PSD. Додавання водяного знаку до зображення є загальною вимогою для додатків обробки зображень. У цьому прикладі використовується клас Graphics для малювання рядка на поверхні зображення.

Додавання водяного знаку

Для демонстрації операції ми завантажимо зображення BMP з диска і намалюємо рядок як водяний знак на поверхні зображення за допомогою методу DrawString класу Graphics. Ми збережемо зображення у форматі PNG, використовуючи клас PngOptions. Нижче наведений код прикладу, який демонструє, як додати водяний знак до зображення. Вихідний код прикладу був розбитий на частини для зручності відстеження. Крок за кроком приклади показують, як:

  1. Завантажити зображення.
  2. Створити та ініціалізувати об’єкт Graphics.
  3. Створити та ініціалізувати об’єкти Font та SolidBrush.
  4. Намалювати рядок як водяний знак за допомогою методу DrawString класу Graphics.
  5. Зберегти зображення у PNG.

Наступний фрагмент коду показує, як додати водяний знак на зображення.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and cast it into PsdImage
using (PsdImage psdImage = (PsdImage)Image.Load(dataDir + "layers.psd"))
{
// Create graphics object to perform draw operations.
Graphics graphics = new Graphics(psdImage);
// Create font to draw watermark with.
Font font = new Font("Arial", 20.0f);
// Create a solid brush with color alpha set near to 0 to use watermarking effect.
using (SolidBrush brush = new SolidBrush(Color.FromArgb(50, 128, 128, 128)))
{
// Specify string alignment to put watermark at the image center.
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
// Draw watermark using font, partly-transparent brush and rotation matrix at the image center.
graphics.DrawString("Some watermark text", font, brush, new RectangleF(0, 0, psdImage.Width, psdImage.Height), sf);
}
// Export the image into PNG file format.
psdImage.Save(dataDir + "AddWatermark_output.png", new PngOptions());
}

Додавання діагонального водяного знаку

Додавання діагонального водяного знаку до зображення схоже на додавання горизонтального водяного знаку, про яке йшлося вище, з деякими відмінностями. Для демонстрації операції ми завантажимо зображення JPG з диска, додамо трансформації за допомогою об’єкту Matrix та намалюємо рядок як водяний знак на поверхні зображення за допомогою методу DrawString класу Graphics. Нижче наведений код прикладу, який демонструє, як додати діагональний водяний знак на зображення. Вихідний код прикладу був розбитий на частини для зручності відстеження. Крок за кроком приклади показують, як:

  1. Завантажити зображення.
  2. Створити та ініціалізувати об’єкт Graphics.
  3. Створити та ініціалізувати об’єкти Font та SolidBrush.
  4. Отримати розмір зображення в об’єкті SizeF.
  5. Створити екземпляр класу Matrix та здійснити комбіноване перетворення.
  6. Призначити перетворення об’єкту Graphics.
  7. Створити та ініціалізувати об’єкт StringFormat.
  8. Намалювати рядок як водяний знак за допомогою методу DrawString класу Graphics.
  9. Зберегти результат зображення.

Наступний фрагмент коду показує, як додати діагональний водяний знак.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and cast it into PsdImage
using (PsdImage psdImage = (PsdImage)Image.Load(dataDir + "layers.psd"))
{
// Create graphics object to perform draw operations.
Graphics graphics = new Graphics(psdImage);
// Create font to draw watermark with.
Font font = new Font("Arial", 20.0f);
// Create a solid brush with color alpha set near to 0 to use watermarking effect.
using (SolidBrush brush = new SolidBrush(Color.FromArgb(50, 128, 128, 128)))
{
// specify transform matrix to rotate watermark.
graphics.Transform = new Matrix();
graphics.Transform.RotateAt(45, new PointF(psdImage.Width / 2, psdImage.Height / 2));
// Specify string alignment to put watermark at the image center.
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
// Draw watermark using font, partly-transparent brush at the image center.
graphics.DrawString("Some watermark text", font, brush, new RectangleF(0, psdImage.Height / 2, psdImage.Width, psdImage.Height / 2), sf);
}
// Export the image into PNG file format.
psdImage.Save(dataDir + "AddDiagnolWatermark_output.png", new PngOptions());
}