EasyWatermark

защита изображений водяными знаками

официальный сайт программы

Разработчикам / Программное нанесение водяных знаков

Программное нанесение водяных знаков

Перед началом работы рекомендуется импортировать пространство имен EasyWatermarkLib.

C#:
using EasyWatermarkLib;
Visual Basic .NET:
Imports EasyWatermarkLib

Основной класс программы Pattern, реализует шаблон водяных знаков. Вы можете создать пустой экземпляр шаблона, как показано ниже. Это актуально, если вам нужно создать новый шаблон водяных знаков.

C#:
Pattern p = new Pattern();
Visual Basic .NET:
Dim p As New Pattern();

Либо можно загрузить шаблон из файла или XML-содержимого, указав указать путь к XML-файлу шаблона, либо XML-данные шаблона.

C#:
Pattern p = new Pattern(@"C:\файл шаблона.xml");
Visual Basic .NET:
Dim p As New Pattern("C:\файл шаблона.xml")

Аналогично, отдельно для загрузки шаблона из файла можно вызвать метод Load, а для создания шаблона на основе XML-данных - метод LoadXml.

Файлы шаблонов водяных знаки которые представляют из себя сериализованный класс Pattern.

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

Для нанесения водяных знаков на изображение нужно использовать функцию GetImage. Функция GetImage имеет множество перегрузок практически на все случаи жизни и может принимать, как объект типа Image, так и Stream, и физический путь к графическому файлу. Функция возвращает объект типа Image, в котором содержится изображение с нанесенными водяными знаками. Ниже следующий пример демонстрирует нанесение шаблона водяных знаков из файла C:\шаблон.xml на изображение из файла C:\картинка.jpg и сохраняет результат в файл C:\защищенная картинка.jpg.

C#:
// загружаем шаблон водяных знаков
Pattern p = new Pattern(@"C:\шаблон.xml");
// наносим водяные знаки на картинку C:\картинка.jpg
Image watermarkImage = p.GetImage(@"C:\картинка.jpg");
// сохраняем изображение с нанесенными водяными знаками в файл C:\защищенная картинка.jpg
watermarkImage.Save(@"C:\защищенная картинка.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
Visual Basic .NET:
'загружаем шаблон водяных знаков
Dim p As New Pattern("C:\шаблон.xml")
'наносим водяные знаки на картинку C:\картинка.jpg
Dim watermarkImage As Image = p.GetImage("C:\картинка.jpg")
'сохраняем изображение с нанесенными водяными знаками в файл C:\защищенная картинка.jpg
watermarkImage.Save("C:\защищенная картинка.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

Примечание. Класс Image принадлежит пространству имен System.Drawing.

Как видите, все довольно просто.

Помимо этого, функция GetImage может принимать два дополнительных параметра: width и height, которые позволяют указать ширину и высоту изображения с нанесенными водяными знаками. Можно указывать как ширину и высоту одновременно, тогда изображение будет иметь фиксированный размер. А можно указать только одно значение, либо ширину, либо высоту, тогда размер изображения будет изменен пропорционально указанному значению. В следующем примере показаны различные варианты манипуляции с размером изображений при нанесении водяных знаков.

C#:
// загружаем шаблон водяных знаков
Pattern p = new Pattern(@"C:\шаблон.xml");
// наносим водяные знаки на картинку C:\картинка.jpg
// устанавливаем фиксированный размер картинки 500x500px
Image watermarkImage = p.GetImage(@"C:\картинка.jpg", 500, 500);
// сохраняем изображение с нанесенными водяными знаками в файл C:\пример1.jpg
watermarkImage.Save(@"C:\пример1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

// наносим водяные знаки на картинку C:\картинка.jpg
// устанавливаем размер картинки по ширине 500px, а высота изменится автоматически пропорционально ширине
watermarkImage = p.GetImage(@"C:\картинка.jpg", 500, 0);
// сохраняем изображение с нанесенными водяными знаками в файл C:\пример2.jpg
watermarkImage.Save(@"C:\пример2.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

// наносим водяные знаки на картинку C:\картинка.jpg
// устанавливаем размер картинки по высоте 500px, а ширина изменится автоматически пропорционально высоте
watermarkImage = p.GetImage(@"C:\картинка.jpg", 0, 500);
// сохраняем изображение с нанесенными водяными знаками в файл C:\пример3.jpg
watermarkImage.Save(@"C:\пример3.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
Visual Basic .NET:
'загружаем шаблон водяных знаков
Dim p As New Pattern("C:\шаблон.xml")
'наносим водяные знаки на картинку C:\картинка.jpg
'устанавливаем фиксированный размер картинки 500x500px
Dim watermarkImage As Image = p.GetImage("C:\картинка.jpg", 500, 500)
'сохраняем изображение с нанесенными водяными знаками в файл C:\пример1.jpg
watermarkImage.Save("C:\пример1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

'наносим водяные знаки на картинку C:\картинка.jpg
'устанавливаем размер картинки по ширине 500px, а высота изменится автоматически пропорционально ширине
watermarkImage = p.GetImage("C:\картинка.jpg", 500, 0)
'сохраняем изображение с нанесенными водяными знаками в файл C:\пример2.jpg
watermarkImage.Save("C:\пример2.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

'наносим водяные знаки на картинку C:\картинка.jpg
'устанавливаем размер картинки по высоте 500px, а ширина изменится автоматически пропорционально высоте
watermarkImage = p.GetImage("C:\картинка.jpg", 0, 500)
'сохраняем изображение с нанесенными водяными знаками в файл C:\пример3.jpg
watermarkImage.Save(@"C:\пример3.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)


Если у вас возникнут какие-либо вопросы, обращайтесь на форум.


[вернуться к содержанию]