Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?
- waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'],
- "watermark.png", "bottom=5,right=5");
- function waterMark($original, $watermark, $placement = 'bottom=5,right=5',
- $destination = null) {
- $original = urldecode($original);
- $info_o = @getImageSize($original);
- if (!$info_o)
- return false;
- $info_w = @getImageSize($watermark);
- if (!$info_w)
- return false;
- list ($vertical, $horizontal) = split(',', $placement,2);
- list($vertical, $sy) = split('=', trim($vertical),2);
- list($horizontal, $sx) = split('=', trim($horizontal),2);
- switch (trim($vertical)) {
- case 'bottom':
- $y = $info_o[1] - $info_w[1] - (int)$sy;
- break;
- case 'middle':
- $y = ceil($info_o[1]/2) - ceil($info_w[1]/2) + (int)$sy;
- break;
- default:
- $y = (int)$sy;
- break;
- }
- switch (trim($horizontal)) {
- case 'right':
- $x = $info_o[0] - $info_w[0] - (int)$sx;
- break;
- case 'center':
- $x = ceil($info_o[0]/2) - ceil($info_w[0]/2) + (int)$sx;
- break;
- default:
- $x = (int)$sx;
- break;
- }
- header("Content-Type: ".$info_o['mime']);
- //получаем оригинал картинки и водный знак
- $original = @imageCreateFromString(file_get_contents($original));
- $watermark = @imageCreateFromString(file_get_contents($watermark));
- //Подготавливаем пустое изображение
- $out = imageCreateTrueColor($info_o[0],$info_o[1]);
- $thumb = imagecreatetruecolor(100, 50);
- $width = imagesx($watermark);
- $height = imagesy($watermark);
- imagecopyresized($thumb, $watermark, 0, 0, 0, 0, 100, 50,
- $width, $height);
- //Накладываем оригинал на подготовленное изображение
- imageCopy($out, $original, 0, 0, 0, 0, $info_o[0], $info_o[1]);
- //Тут задаем размер изображения в которые можно добавлять Watermark
- // $info_o[0] > 250 - ширина изображения должна быть больше 250 px
- // $info_o[1] > 250 - высота изображения должна быть больше 250 px
- if( ($info_o[0] > 250) && ($info_o[1] > 250) )
- {
- //Накладываем водный знак на оригинал
- imageCopy($out, $thumb, $x, $y, 0, 0, $info_w[0], $info_w[1]);
- }
- //Выводим изображение в случаях с разными форматами
- switch ($info_o[2]) {
- case 1:
- imageGIF($out);
- break;
- case 2:
- imageJPEG($out);
- break;
- case 3:
- imagePNG($out);
- break;
- }
- imageDestroy($out);
- imageDestroy($original);
- imageDestroy($watermark);
- return true;
- }
- ?>
- <?
- waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'], "watermark.png");
- function waterMark($original, $watermark) {
- $original = urldecode($original);
- //получаем размеры оригинала и ватермарка в виде массива, где 0 - ширина, 1 - высота, 2 - тип в числе (1-gif, 2-jpeg,3-png), mime - тип для заголовка image/jpeg например
- $info_o = @getImageSize($original);
- if (!$info_o)
- return false;
- $info_w = @getImageSize($watermark);
- if (!$info_w)
- return false;
- $original = @imageCreateFromString(file_get_contents($original));
- $watermark = @imageCreateFromString(file_get_contents($watermark));
- $water_width = imagesx($watermark);
- $water_height = imagesy($watermark);
- //Задаем параметры ширины и высоты ватермарка в зависимости от оригинала
- $percent_w = $info_o[0] * 0.25;
- $percent_h = $info_o[1] * 0.25;
- $water_stamp = imagecreatetruecolor($percent_w, $percent_h);
- header("Content-type: ".$info_o['mime']);
- //Сохраняем прозрачность ватермарка
- imagealphablending( $water_stamp, false );
- imagesavealpha( $water_stamp, true );
- //ресайзим ватермарк
- imagecopyresampled($water_stamp, $watermark, 0, 0, 0, 0, $percent_w, $percent_h, $water_width, $water_height);
- //задаем координаты расположения ватермарка от левого края ширина оригинала - ширина ватера - отступ, точно также по высоте начиная с верха
- $x = $info_o[0] - $percent_w - 10;
- $y = $info_o[1] - $percent_h - 10;
- //накладываем ватермарк
- imageCopy($original, $water_stamp, $x, $y, 0, 0, $percent_w, $percent_h);
- //выводим в соответствии с типом файла
- switch ($info_o[2]) {
- case 1:
- imageGIF($original);
- break;
- case 2:
- imageJPEG($original);
- break;
- case 3:
- imagePNG($original);
- break;
- }
- //очищаем память
- imageDestroy($original);
- imageDestroy($watermark);
- imageDestroy($water_stamp);
- return true;
- }
- ?>
Add Comment
Please, Sign In to add comment