Добавяне на воден знак към изображение

Добавяне на воден знак към изображение

Този документ обяснява как да добавите воден знак към изображение, използвайки 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());
}