| | function img_resize($src, $dest, $width, $height, $ram=1, $rgb=0x00000, $quality=80){
if (!file_exists($src)) return false;
if($width>200){
$size = getimagesize($src);
if ($size === false) return false;
// Определяем исходный формат по MIME-информации, предоставленной
// функцией getimagesize, и выбираем соответствующую формату
// imagecreatefrom-функцию.
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
$x_ratio = $width / $size[0]; //Найдем отношение текущего размера к будущему по ширине
$y_ratio = $height / $size[1]; //Найдем отношение текущего размера к будущему по высоте
$ratio = min($x_ratio, $y_ratio); // Найдем минимальное из отношений
$new_width = ($size[0] * $ratio); //Посчитаем новую ширину
$new_height = ($size[1] * $ratio); //Посчитаем новую высоту
$isrc = $icfunc($src);
$idest = imagecreatetruecolor( $new_width, $new_height); // создадим картинку с новыми размерами
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, 0, 0, 0, 0,
$new_width, $new_height, $size[0], $size[1]);
}else{
$size = getimagesize($src);
if ($size === false) return false;
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
$isrc = imagecreatefromjpeg($src);
$w_src = $size[0];
$h_src = $size[1];
$dw = $w_src/ $width; //Найдем отношение текущего размера к будущему по ширине
$dh = $h_src/ $height; //Найдем отношение текущего размера к будущему по высоте
$mm = min($dw,$dh); // Найдем минимальное из отношений
$ww = $width*$mm; //Посчитаем новую ширину
$hh = $height*$mm; //Посчитаем новую высоту
$nx = ($w_src - $ww)/2; // Найдем начало вырезаемой серединки по х
$ny = ($h_src - $hh)/2; // Найдем начало вырезаемой серединки по y
$isrc = $icfunc($src);
$idest = imagecreatetruecolor($width, $height);
imagecopyresampled($idest, $isrc,
0, 0,
$nx, $ny,
$width, $height,
$ww, $hh);
}
$ink = imagecolorallocate($idest, 0, 116, 189);
$ink2 = imagecolorallocate($idest, 255, 255, 255);
if($width>200){
$white=imagecolorallocate($idest,255,255,255);
imagestring($idest,2,$new_width-125,$new_height-30,"nashimamashi.ru ".date('Y'),$white);// Подпись!
}else{
if ($ram==1) {
$ink = imagecolorallocate($idest, 0, 116, 189);
imageline($idest,0,0,$width-1,0,$ink);
imageline($idest,1,1,$width-2,1,$ink);
imageline($idest,1,$height-1,$width-1,$height-1,$ink);
imageline($idest,2,$height-2,$width-2,$height-2,$ink);
imageline($idest,$width-1,0,$width-1,$height-1,$ink);
imageline($idest,$width-2,2,$width-2,$height-2,$ink);
imageline($idest,1,1,1,$height-2,$ink);
imageline($idest,0,0,0,$height-1,$ink);
}
}
if($width>200){
imagejpeg($idest, $dest, $quality);
}else{
imagejpeg($idest, $dest, 100);
}
imagedestroy($isrc);
imagedestroy($idest);
return true;
} | |