Spread the love
Сегодня я хочу написать скрипт, который накладывает на фотографию водяной знак. Многие сайты сейчас используют наложение водяных знаков на свои изображения, для защиты своих фотографий от копирования.
Сначала проверим, установлена ли библиотека GD. Для этого мы напишем небольшой код который это проверяет:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php if (function_exists("gd_info")) { //Если библиотека установлена echo "Библиотека gd установлена"; } else { echo "Пожалуйста установите библиотеку gd"; } ?> |
Наложение текстового водяного знака
Напишем скрипт, который накладывает текст на изображение. В коде я постарался прокомментировать все важные действия.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<?php header("Content-type: image/jpeg");//заголовок возвращаемой страницы задаем изображение $img_name = "tulips.jpg"; //получаем файл изображения $img_src = imagecreatefromjpeg($img_name); $width = imagesx($img_src);//ширина нового изображение $height = imagesy($img_src);//высота нового изображения $quality = 80;//качество создаваемого изображения // создаем новое изображение $img = imagecreatetruecolor($width, $height); imagecopyresampled($img, $img_src, 0, 0, 0, 0, $width, $height, $width, $height); // положение текстового блока - внизу изображения $x1_rect = 0; $y1_rect = $height - 36; $x2_rect = $width; $y2_rect = $height; $color = imagecolorallocate($img, 0, 0, 0); //цвет прямоугольника $letter_color = imagecolorallocate($img, 255, 255, 255);//цвет надписи $text = "PAWELCH.COM";//текст надписи imagefilledrectangle($img, $x1_rect, $y1_rect, $x2_rect, $y2_rect, $color);//создаем прамоугольник на нашем изображении imagettftext($img, 18, 0, $x1_rect+5, $y1_rect+26, $letter_color, "arial.ttf", $text);//создаем надпись на прямоугольнике //отображаем наше изображение в браузере imagejpeg($img, '', $quality); imagedestroy($img_src); imagedestroy($img); ?> |
Водяной знак из изображения
Также мы можем наложить на изображение в качестве водяного знака – другое изображение. Для водяных знаков лучше использовать изображение с прозрачным фоном – я использую png24. Добавим к нашему коду строчки для наложения выбранного водного знака, на изображение:
1 2 3 |
$logo = imagecreatefrompng("wm.png"); imagecopymerge($img, $logo, 150, 100, 0, 0, 742, 400, 80); |
0