Добавление водяного знака на изображение
Добавление водяного знака на изображение
Этот документ объясняет, как добавить водяной знак на изображение с помощью Aspose.PSD. Добавление водяного знака на изображение - это часто встречающееся требование для приложений обработки изображений. В этом примере используется класс Graphics для рисования строки на поверхности изображения.
Добавление водяного знака
Для демонстрации операции мы загрузим изображение в формате BMP с диска и нарисуем строку в качестве водяного знака на поверхности изображения с использованием метода DrawString класса Graphics. Затем мы сохраним изображение в формате PNG с помощью класса PngOptions. Ниже приведен пример кода, демонстрирующий, как добавить водяной знак на изображение. Исходный код примера разделен на части для лучшего понимания. Шаг за шагом приводится примеры того, как:
- Загрузить изображение.
- Создать и инициализировать объект Graphics.
- Создать и инициализировать объекты Font и SolidBrush.
- Нарисовать строку в качестве водяного знака с использованием метода DrawString класса Graphics.
- Сохранить изображение в формате 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. Ниже приведен пример кода, демонстрирующий, как добавить диагональный водяной знак на изображение. Исходный код примера разделен на части для лучшего понимания. Шаг за шагом приводится примеры того, как:
- Загрузить изображение.
- Создать и инициализировать объект Graphics.
- Создать и инициализировать объекты Font и SolidBrush.
- Получить размер изображения в объекте SizeF.
- Создать экземпляр класса Matrix и выполнить композитное преобразование.
- Присвоить преобразование объекту Graphics.
- Создать и инициализировать объект StringFormat.
- Нарисовать строку в качестве диагонального водяного знака с использованием метода DrawString класса Graphics.
- Сохранить полученное изображение.
В следующем фрагменте кода показано, как добавить диагональный водяной знак.
// 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()); | |
} |