Додавання водяного знака на фотографії в WordPress «на льоту»

Водяний знак може стати в нагоді в різних ситуаціях. Головним його призначенням є утруднення крадіжки ілюстрацій до статей, фотографій, самих статей. Нижче запропоновано робоче рішення для WordPress, але помінявши один параметр, його можна використовувати на абсолютному будь-якому сайті.

Існують два підходи до додавання водяного знака: «на льоту» і при додаванні нового зображення на сайт. Водяний знак можна додати один раз, коли ви завантажуєте його на сайт. Плюсом цього підходу є: зменшується навантаження на сервер, при запиті великої кількості картинок. Мінус: якщо ви хочете щось змінити в водяному знаку (трохи зрушити, зробити менш або більш прозорим, поміняти напис), то вам доведеться шукати вихідні зображення, т. К. Швидко «витравити» водяний знак не представляється можливим.

Мені самому ближче інший підхід - мені подобається, коли зображення зберігаються на сервері без змін, а водяний знак додається до них кожного разу, коли користувач переглядає сторінку з фотографіями.

Важливо досягти наступного:

  • дивись водяний знак незалежно від тону зображення (т. е. щоб водяний знак не губився ні на світлій ні на темній картинці) - це досягається додаванням до картинки тіні. Наприклад, якщо сам додається текст чорний, то тінь буде світлою - в такому поєднанні, наш водяний знак буде видно на будь-якої фотографії;
  • картинки можуть бути самого різного розміру, тому необхідно, щоб незалежно від розміру зображення водяний знак завжди знаходився в одному місці.

Наприклад, якщо сам додається текст чорний, то тінь буде світлою - в такому поєднанні, наш водяний знак буде видно на будь-якої фотографії;   картинки можуть бути самого різного розміру, тому необхідно, щоб незалежно від розміру зображення водяний знак завжди знаходився в одному місці

Тож почнемо. В першу чергу, вносимо зміни в файл .htaccess, який знаходиться в кореневій директорії вашого сайту, додаємо туди рядки:

RewriteEngine on RewriteRule ^ (wp-content / upload (. *) (Gif | jpg | png)) addTextToImages.php? File = $ 1 [NC]

Тобто всі файли, які знаходяться в каталозі wp-content / upload і мають одне з трьох розширень gif або jpg або png ми перенаправляємо на файл addTextToImages.php, причому в якості параметра file = передаємо ім'я цього самого файлу.

WordPress зберігає всі фотографії в каталозі wp-content / upload, при бажанні, можна додати і інші каталоги.

Тепер пишемо файл addTextToImages.php:

<? Php / ** * Взято з сайту https://codeby.net/blogs/ * Будь ласка, підтримайте проект: діліться посиланнями на проект в соціальних мережах і на своїх сайтах, * залишайте ваші коментарі - це дуже важливо і потрібно для нас . * А ми, в свою чергу, продовжимо вас радувати новими цікавими статтями. * / // в параметрі file нам було передано назву і шлях розташування файлу. $ File = $ _GET [ 'file']; // дізнаємося розмір нашого файлу $ inf = getimagesize ($ file); // вводимо напис, яка буде водяним знаком $ text = 'http://PhotoMurom.ru'; // вибираємо шрифт (можете замінити на свій, але тоді покладіть в кореневу папки новий файл зі шрифтом $ font = './arial.ttf'; // для оформлення теми використовуються файли, в назві яких є 'cropped-', // ми не хочемо, щоб ці файли мали водяний знак, тому перевіряємо if (substr_count ($ file, 'cropped-')) {$ nosighn = 1;} else {$ nosighn = 0;} // Перевіряємо, якого типу графіяескій файл, якщо jpg, то вносимо зміни switch ($ inf [ 'mime']) {case 'image / jpeg': // встановлюємо тип файлу в заголовку виведення header ( 'Content-Type: image / jpg'); // створюємо зображення $ im = imagecreatefromjpeg ($ file); // створюємо кольору $ white = imagecolorallocate ($ im, 255, 255, 255); $ grey = imagecolorallocat e ($ im, 128, 128, 128); $ black = imagecolorallocate ($ im, 0, 0, 0); if ($ nosighn! = 1) {// додаємо до картинки тінь imagettftext ($ im, $ inf [ 0] / 28.48, 0, $ inf [0] - $ inf [0] / 2.2784, $ inf [1] - $ inf [0] / 28.28, $ grey, $ font, $ text); // додаємо до картинки текст imagettftext ($ im, $ inf [0] / 28.48, 0, $ inf [0] - $ inf [0] / 2.26032, $ inf [1] - $ inf [0] / 25.891, $ black, $ font, $ text); } // виводимо зображення і наступною командою очищаємо пам'ять. imagejpeg ($ im); imagedestroy ($ im); break; // повторюємо аналогічні процедури для файлів png і gif case 'image / png': header ( 'Content-Type: image / png'); $ Im = imagecreatefrompng ($ file); $ White = imagecolorallocate ($ im, 255, 255, 255); $ Grey = imagecolorallocate ($ im, 128, 128, 128); $ Black = imagecolorallocate ($ im, 0, 0, 0); if ($ nosighn! = 1) {imagettftext ($ im, $ inf [0] / 28.48, 0, $ inf [0] - $ inf [0] / 2.2784, $ inf [1] - $ inf [0] / 28.28, $ grey, $ font, $ text); imagettftext ($ im, $ inf [0] / 28.48, 0, $ inf [0] - $ inf [0] / 2.26032, $ inf [1] - $ inf [0] / 25.891, $ black, $ font, $ text); } Imagepng ($ im); imagedestroy ($ im); break; case 'image / gif': header ( 'Content-Type: image / gif'); $ Im = imagecreatefromgif ($ file); $ White = imagecolorallocate ($ im, 255, 255, 255); $ Grey = imagecolorallocate ($ im, 128, 128, 128); $ Black = imagecolorallocate ($ im, 0, 0, 0); if ($ nosighn! = 1) {imagettftext ($ im, $ inf [0] / 28.48, 0, $ inf [0] - $ inf [0] / 2.2784, $ inf [1] - $ inf [0] / 28.28, $ grey, $ font, $ text); imagettftext ($ im, $ inf [0] / 28.48, 0, $ inf [0] - $ inf [0] / 2.26032, $ inf [1] - $ inf [0] / 25.891, $ black, $ font, $ text); } Imagegif ($ im); imagedestroy ($ im); break; }?>

Отже, ми додали водяний знак, який видно на будь-якої фотографії, який автоматично накладається на всі графічні файли основних форматах, це зображення завжди знаходиться в одному місці картинки, незалежно від її розміру. Ви самостійно можете поекспериментувати: змінити розташування водяного знака, його колір, ступінь прозорості і ін.

Готові файли ви можете скачати по цим посиланням .

хороший хостинг , Який витримає абсолютно все. Першим перейшов, подарунок .

Php?

Дополнительная информация

rss
Карта