Статьи

Водяні знаки на зображення Wordpress

Доброго часу, читачі www.k-max.name ! Сьогодні опишу маленьке HOWTO, як на WordPress реалізувати водяні знаки на зображеннях за допомогою php і apache (.htaccess). Найцікавіше, що не знадобиться нам ніяких плагінів! При цьому, дане рішення цілком можна застосувати до інших движка. Отже, по-перше, додамо в файл .htaccess наступні рядки:

# Enable watermark RewriteRule ^ (. *) Wp-content / uploads / (. * (Jpg | jpeg | gif | png)) $ $ 1watermark.php? Img = wp-content / uploads / $ 2

Згідно даного правила, всі шляхи, що починаються на wp-content / uploads / і закінчуються на jpg, jpeg, gif або png будуть замінені рядком watermark.php? Src = wp-content / uploads / ... Це дозволяє залишати незмінними вихідні зображення і не застосовувати обробник для таких файлів, як архіви та ін. Відповідно, замінивши шлях wp-content / uploads / на свій можна застосувати обробку зображень для іншого движка.

Крім цього, необхідно покласти в корінь сайту файл з ім'ям watermark.png. Це файл самого водяного знака, який буде накладено на основне зображення. Так само, необхідно покласти файл empty.png, який містить 1 прозорий піксель і накладається на маленькі зображення.

Далі, необхідно створити файл watermark.php наступного змісту і також покласти його в корінь сайту:

<? Php / * * Блог любителя експериментів * http://www.k-max.name/ * / // отримуємо переданий в GET параметр img $ img = $ _GET [ 'img']; // задаємо мінімальний дозвіл, для якого не потрібен великий водяний знак // і на підставі розміру застосовуємо відповідний png-файл $ size = getimagesize ($ img); if ($ size [0] <100 || $ size [1] <100) {$ watermark = imagecreatefrompng ( 'empty.png'); } Else {$ watermark = imagecreatefrompng ( 'watermark.png'); } $ Watermark_w = imagesx ($ watermark); $ Watermark_h = imagesy ($ watermark); // обробляємо gif if (eregi ( '. Gif', $ img)) {$ image = imagecreatefromgif ($ img); $ Size = getimagesize ($ img); $ Dest_x = $ size [0] - $ watermark_w - 0; $ Dest_y = $ size [1] - $ watermark_h - 0; imagealphablending ($ watermark, true); header ( 'Content-type: mage / gif'); imagecopymerge ($ image, $ watermark, $ dest_x, $ dest_y, 0, 0, $ watermark_w, $ watermark_h, 50); imagegif ($ image, "", 100); } // обробляємо jpeg elseif (eregi ( '. Jpeg', $ img) || eregi ( '. Jpg', $ img)) {$ image = imagecreatefromjpeg ($ img); $ Size = getimagesize ($ img); $ Dest_x = $ size [0] - $ watermark_w - 0; $ Dest_y = $ size [1] - $ watermark_h - 0; imagealphablending ($ watermark, true); header ( 'content-type: image / jpeg'); imagecopy ($ image, $ watermark, $ dest_x, $ dest_y, 0, 0, $ watermark_w, $ watermark_h); imagejpeg ($ image, "", 100); } // обробляємо png elseif (eregi ( '. Png', $ img)) {$ image = imagecreatefrompng ($ img); $ Size = getimagesize ($ img); $ Dest_x = $ size [0] - $ watermark_w - 0; $ Dest_y = $ size [1] - $ watermark_h - 0; imagesavealpha ($ image, true); imagealphablending ($ watermark, true); header ( 'Content-type: image / png'); imagecopy ($ image, $ watermark, $ dest_x, $ dest_y, 0, 0, $ watermark_w, $ watermark_h); imagepng ($ image); } Else {exit ( "Зображення не має формат jpg, gif або png."); } // звільняємо пам'ять imagedestroy ($ image); imagedestroy ($ watermark); ?>

Готовий архів можна завантажити нижче і розпакувати себе в кореневий каталог блогу. В архіві відсутня файл .htaccess, щоб ви не замінили свої настройки wordpress, тому не забудьте додати вищевказану рядок.

Відомі баги:

Буду вдячний за рішення або підказку рішення даних проблем.

Завантажити watermark для зображень WordPress.

З повагою, Mc.Sim!

Інші матеріали в категорії Web

Php?
Php?

Новости