Кодерастам от кодераста!

Блог программиста » Новости » Программирование

Водяной знак на PHP

Встала недавно у меня задача написания скрипта, который накладывает водный знак на картинку. Держите код:

// Возвращает данные об изображении

function image_get_info($file = NULL){

if(!is_file($file)) return false;

if(!$data = getimagesize($file) or !$filesize = filesize($file)) return false;

$extensions = array(1 => "gif", 2 => "jpeg", 3 => "png", 4 => "swf", 5 => "psd", 6 => "bmp", 7 => "tiff", 8 => "tiff", 9 => "jpc", 10 => "jp2", 11 => "jpx", 12 => "jb2", 13 => "swc", 14 => "iff", 15 => "wbmp", 16 => "xbmp");

return array("width" => $data[0], "height" => $data[1], "extension" => $extensions[$data[2]], "size" => $filesize, "mime" => $data["mime"]);

}


function watermark($img_file){

$wm_file="../images/watermark.png";

$width="400";

$height="100";

$o=10;

if(!$source_im_info = image_get_info($img_file)) return false;

if(in_array($source_im_info["extension"], array("gif", "jpeg", "png"))){

$x=$source_im_info["width"]-$width-$o;

$y=$source_im_info["height"]-$height-$o;

$img_open_func = "imagecreatefrom".$source_im_info["extension"];

$source_im = $img_open_func($img_file);

$watermark_im = imagecreatefrompng($wm_file);

$result_im = imagecreatetruecolor($source_im_info["width"], $source_im_info["height"]);

if(!@imagecopyresampled($result_im, $source_im, 0, 0, 0, 0, $source_im_info["width"], $source_im_info["height"], $source_im_info["width"], $source_im_info["height"])) return false;

if(!@imagecopyresampled($result_im, $watermark_im, $x, $y, 0, 0, $width, $height, $width, $height)) return false;

//if(!imagejpeg($result_im, $img_file, 100)) return false;

$img_close_func = "image".$source_im_info["extension"];

if(!$img_close_func($result_im, $img_file, 100)) return false;

imagedestroy($source_im);

imagedestroy($watermark_im);

imagedestroy($result_im);

return true;

}

}

Запускается так:

watermark($img_file);

 

Я собой доволен =) Работает как надо. И в мой движок отлично встроилось. Постовой на сегодня: Профессиональная разработка сайтов Армавир