View file avators/avator.php

File size: 4.53Kb
<?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 = 50; $size = 1;}  // пропорциональная шириной 90 
elseif($type == 1){$w = 190; $size = 1;} // пропорциональная шириной 190 
else{$w = 190; $size = 1;}// пропорциональная шириной 190 
//текст на картинке
$str = htmlspecialchars($_SERVER['HTTP_HOST']); 

// размер шрифта 
//$size = 2; 

// качество jpeg по умолчанию в %
$q = 100;

// Определяем формат картинки и отправляем загаловки
$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);
   
   if($type != 0){
   // определяем координаты вывода текста 
   $x_text = $w_dest-imagefontwidth($size)*strlen($str)-0; 
   $y_text = $h_dest-imagefontheight($size)-0; 
   
   // определяем каким цветом на каком фоне выводить текст 
   $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);
}










?>