Тут накладывает ватермарк тоже фактически одна строка — g.DrawImage(watermark, dest, 0, 0, watermark.Width, watermark.Height,
GraphicsUnit.Pixel, attr, null, IntPtr.Zero);
Я однажды пробовал использовать ImageMagick (он, к счастью, избавлен от некоторых глюков GDI+), но .NET-обертка для него мне не приглянулась…
А свой велосипед не может не нравиться :)
Используя возможности класса встроенного в codeigniter задачу добавления водяного знака можно решить в 3 строки)
$config['wm_overlay_path'] = $logo;
$CI->image_lib->initialize($config);
$CI->image_lib->watermark();
.NET только набирает популярность в качестве веб-платформы для некорпоративных проектов. В этой сфере существует масса наработок, которыми никто никогда не поделится ввиду их закрытости. Сейчас вокруг ASP.NET складывается довольно мощное комьюнити, которое помаленьку восполняет этот пробел.
Любопытно, на каких-то сайтах используется добавление watermark только при просмотре картинки не на сайте? Ведь зачем прилеплять логотип, если он уже вверху висит. Чтобы при прямой ссылке на картинку watermark был.
Спасибо за совет, я с качеством 85 результат сохранял.
В приведенном коде, однако, манипуляции с качеством не производятся, поэтому все зависит от того, кто будет код использовать.
В GDI+ вообще хватает багов… Попробуйте сохранить картинку в Photoshop и в .NET с одинаковым уровнем качества. Вы получите абсолютно разные результаты. PNG, например, вообще не сжимается почему-то :)
Добавляем watermark к изображению