Программное нанесение водяных знаков
Перед началом работы рекомендуется импортировать пространство имен
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)
Если у вас возникнут какие-либо вопросы, обращайтесь на
форум.
[вернуться к содержанию]