<?php
Error_Reporting(0);//не сообщать об ошибках
if(isset($_GET['f'])){$f = $_GET['f'];}
if(isset($_GET['type'])){$type = $_GET['type'];}else{ $type = 1; }
$f = str_replace("./","",$f);
$f = str_replace("..","",$f);
$f = str_replace("\0","",$f);
$f = '../'.$f;
// f - имя файла
// type - способ масштабирования
// q - качество сжатия
// src - исходное изображение
// dest - результирующее изображение
// w - ширниа изображения
// ratio - коэффициент пропорциональности
// str - текстовая строка
// тип преобразования, если не указаны размеры
if($type == 0){$w = 70; $size = 1;} // пропорциональная шириной 90
elseif($type == 1){$w = 215; $size = 2;} // пропорциональная шириной 215
else{$w = 215; $size = 2;}// пропорциональная шириной 215
//текст на картинке
$str = htmlspecialchars($_SERVER['HTTP_HOST']);
// размер шрифта
//$size = 2;
// качество jpeg по умолчанию в %
$q = 30;
// Определяем формат картинки и отправляем загаловки
$format_foto = explode(".", $f);
$poooo = count($format_foto) -1;
$format_foto = $format_foto[$poooo];
if($format_foto == "jpg"||$format_foto == "JPG"||$format_foto == "jpeg"||$format_foto == "JPEG")
{
$src = imagecreatefromjpeg($f);
header("Content-type: image/jpeg");
$img_start = 'y';
}elseif($format_foto == "gif"||$format_foto == "GIF")
{
$src = imagecreatefromgif($f);
header("Content-type: image/gif");
$img_start = 'y';
}elseif($format_foto == "png"||$format_foto == "PNG")
{
$src = imagecreatefrompng($f);
header("Content-type: image/png");
$img_start = 'y';
}else
{
$img_start = 'n';
}
// вычисление пропорций
$w_src = imagesx($src);
$h_src = imagesy($src);
//если размер картинки слишком маленький
if($w_src < $w)
{
$w = $w_src;
}
// если с форматами ошибок нет
if ($img_start == "y")
{
// операции для получения прямоугольного файла
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);
// создаём пустую картинку
// важно именно truecolor!, иначе будем иметь 8-битный результат
$dest = imagecreatetruecolor($w_dest,$h_dest);
imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
// определяем координаты вывода текста
$x_text = $w_dest-imagefontwidth($size)*strlen($str)-3;
$y_text = $h_dest-imagefontheight($size)-3;
// определяем каким цветом на каком фоне выводить текст
$white = imagecolorallocate($dest, 255, 255, 255);
$black = imagecolorallocate($dest, 0, 0, 0);
$gray = imagecolorallocate($dest, 127, 127, 127);
if (imagecolorat($dest,$x_text,$y_text)>$gray) $color = $black;
if (imagecolorat($dest,$x_text,$y_text)<$gray) $color = $white;
// выводим текст
imagestring($dest, $size, $x_text-1, $y_text-1, $str,$white-$color);
imagestring($dest, $size, $x_text+1, $y_text+1, $str,$white-$color);
imagestring($dest, $size, $x_text+1, $y_text-1, $str,$white-$color);
imagestring($dest, $size, $x_text-1, $y_text+1, $str,$white-$color);
imagestring($dest, $size, $x_text-1, $y_text, $str,$white-$color);
imagestring($dest, $size, $x_text+1, $y_text, $str,$white-$color);
imagestring($dest, $size, $x_text, $y_text-1, $str,$white-$color);
imagestring($dest, $size, $x_text, $y_text+1, $str,$white-$color);
imagestring($dest, $size, $x_text, $y_text, $str,$color);
// вывод картинки
if($format_foto == "jpg"||$format_foto == "JPG"||$format_foto == "jpeg"||$format_foto == "JPEG")
{
imagejpeg($dest,'',$q);
}elseif($format_foto == "gif"||$format_foto == "GIF")
{
imagegif($dest);
}elseif($format_foto == "png"||$format_foto == "PNG")
{
imagepng($dest);
}
//очистка памяти
imagedestroy($dest);
imagedestroy($src);
}
?>