Функция наложение водяного знака
Столкнулся на weblancer, с очередным обсуждением: как сделать прозрачность для ватермарка.
Функция, пример использования и исходники
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 50 51 52 |
<?php function AddWatermark( $src, $watermark, $dest, $x=0, $y=0, $quality=100, $toscreen=0) { if (!file_exists($src) || !file_exists($watermark)) return false; $srcSize = getimagesize($src); $watermarkSize = getimagesize($watermark); if (($srcSize === false)||($watermarkSize === false)) return false; // Определяем исходный формат по MIME-информации, предоставленной // функцией getimagesize, и выбираем соответствующую формату // imagecreatefrom-функцию. $srcFormat = strtolower(substr($srcSize['mime'], strpos($srcSize['mime'], '/')+1)); $srcIcFunc = "imagecreatefrom" . $srcFormat; if (!function_exists($srcIcFunc)) die('Critical error: GD lib not found!'); $watermarkFormat = strtolower(substr($watermarkSize['mime'], strpos($watermarkSize['mime'], '/')+1)); $watermarkIcFunc = "imagecreatefrom" . $watermarkFormat; if (!function_exists($watermarkIcFunc)) die('Critical error: GD lib not found!'); $isrc = $srcIcFunc($src); $iwatermark = $watermarkIcFunc($watermark); $idest = imagecreatetruecolor($srcSize[0], $srcSize[1]); imagecopyresampled($idest, $isrc, 0,0,0, 0, $srcSize[0], $srcSize[1], $srcSize[0], $srcSize[1]); $watermark_width = $watermarkSize[0]; $watermark_height = $watermarkSize[1]; $dest_x = $srcSize[0] - $watermark_width - 10+$x; // правый $dest_y = $srcSize[1] - $watermark_height - 10+$y; // нижний угол изображения imagecopy($idest, $iwatermark,$dest_x, $dest_y,0,0, $watermark_width, $watermark_height); if ($toscreen) { header('Content-Type: image/jpeg'); imagejpeg($idest); imagedestroy($isrc); imagedestroy($iwatermark); imagedestroy($idest); } else { imagejpeg($idest, $dest, $quality); imagedestroy($isrc); imagedestroy($iwatermark); imagedestroy($idest); } return true; } AddWatermark('test.jpg', 'watermark.png', 'out.jpg'); ?> <img src="out.jpg" /> |
Не забудьте включить модуль GD2.
В денвере gd2 подключается очень просто:
а) открываете \WebServers\usr\local\php5\php.ini
б) раскомментируйте строчку extension=php_gd2.dll
Author: | Tags: /
| Rating:
2 comments.
Write a comment