<?php
  ///////////////////////////////////////////////////
  // 2004 (C) IT-студия SoftTime (http://www.softtime.ru)
  // Симдянов И.В. (simdyanov@softtime.ru)
  // Голышев С.В. (softtime@softtime.ru)
  // Используется с разрешения авторов
  ///////////////////////////////////////////////////

  function resizeimg($filename, $smallimage, $w, $h)
  {
    // Имя файла с масштабируемым изображением
    $filename = "../".$filename;
    // Имя файла с уменьшенной копией.
    $smallimage = "../".$smallimage;
    // определим коэффициент сжатия изображения, которое будем генерить
    $ratio = $w/$h;
    // получим размеры исходного изображения
    $size_img = getimagesize($filename);
    if($size_img[0] > $w)
    {
    // получим коэффициент сжатия исходного изображения
    $src_ratio=$size_img[0]/$size_img[1];

    // Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились 
    // пропорции исходного изображения
	if ($ratio<$src_ratio)
	{
	  $h = $w/$src_ratio;
	}
	else
	{
	  $w = $h*$src_ratio;
	}

    // создадим пустое изображение по заданным размерам 
    $dest_img = imagecreatetruecolor($w, $h);
    // создаём картинку-тень
    $src_img2 =  imagecreatetruecolor($w, $h);
    $color = imagecolorallocate($src_img2,200,200,200);
    imagefill($src_img2,0,0,$color);
    $color_white = imagecolorallocate($src_img2,255,255,255);
    imageline($src_img2,0,0,0,$h,$color_white);
    imageline($src_img2,1,0,1,$h,$color_white);
    imageline($src_img2,2,0,2,$h,$color_white);
    imageline($src_img2,3,0,3,$h,$color_white);
    imageline($src_img2,0,0,$w,0,$color_white);
    imageline($src_img2,0,1,$w,1,$color_white);
    imageline($src_img2,0,2,$w,2,$color_white);
    imageline($src_img2,0,3,$w,3,$color_white);

    // получим размеры исходного изображения
    //$size_img = getimagesize($filename);
    if($size_img['mime'] =="image/jpeg")
    {
    $src_img = imagecreatefromjpeg($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    // совмещаем полученную катинку с тенью
    imagecopy($src_img2,$dest_img,-4,-4,0,0,$w, $h);
    // сохраняем уменьшенную копию в файл 
    imagejpeg($src_img2, $smallimage);
    }
    elseif($size_img['mime'] =="image/jpg")
    {
    $src_img = imagecreatefromjpeg($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    // совмещаем полученную катинку с тенью
    imagecopy($src_img2,$dest_img,-4,-4,0,0,$w, $h);
    // сохраняем уменьшенную копию в файл 
    imagejpeg($src_img2, $smallimage);
    }
    elseif($size_img['mime'] =="image/png")
    {
    $src_img = imagecreatefrompng($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    // совмещаем полученную катинку с тенью
    imagecopy($src_img2,$dest_img,-4,-4,0,0,$w, $h);
    // сохраняем уменьшенную копию в файл 
    imagepng($src_img2,$smallimage);
    }
    elseif($size_img['mime'] =="image/gif")
    {
    // создаем gif из файла
    $src_img = imagecreatefromgif($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    // совмещаем полученную катинку с тенью
    imagecopy($src_img2,$dest_img,-4,-4,0,0,$w, $h);    
    // сохраняем уменьшенную копию в файл 
    imagegif($src_img2, $smallimage);
    } 
    if($size_img['mime'] !=="image/gif" && $size_img['mime'] !=="image/png" && $size_img['mime'] !=="image/jpeg") 
    {
    echo"<p align='center'>Внимание! Не поддерживаемый тип файла, используйте для выкладки форматы *.jpeg, *.png или *.gif.</p>";
    if(file_exists($filename))
     unlink($filename);
    exit();
    }

    // чистим память от созданных изображений
    imagedestroy($dest_img);
    imagedestroy($src_img);
    imagedestroy($src_img2);
    return true;
    }
    return true;
  }

  function resizeimg_simple($filename, $smallimage, $w, $h)
  {
     // Имя файла с масштабируемым изображением
    $filename = "../".$filename;
    // Имя файла с уменьшенной копией.
    $smallimage = "../".$smallimage;
    // определим коэффициент сжатия изображения, которое будем генерить
    $ratio = $w/$h;
    // получим размеры исходного изображения
    $size_img = getimagesize($filename);
    if($size_img[0] > $w)
    {
    // получим коэффициент сжатия исходного изображения
    $src_ratio=$size_img[0]/$size_img[1];

    // Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились 
    // пропорции исходного изображения
	if ($ratio<$src_ratio)
	{
	  $h = $w/$src_ratio;
	}
	else
	{
	  $w = $h*$src_ratio;
	}
    // создадим пустое изображение по заданным размерам 
    $dest_img = imagecreatetruecolor($w, $h);

    // получим размеры исходного изображения
    //$size_img = getimagesize($filename);
    if($size_img['mime'] =="image/jpeg")
    {
    $src_img = imagecreatefromjpeg($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    imagejpeg($dest_img, $smallimage);
    }
    elseif($size_img['mime'] =="image/jpg")
    {
    $src_img = imagecreatefromjpeg($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    imagejpeg($dest_img, $smallimage);
    }
    elseif($size_img['mime'] =="image/png")
    {
    $src_img = imagecreatefrompng($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    imagepng($dest_img,$smallimage);
    }
    elseif($size_img['mime'] =="image/gif")
    {
    $src_img = imagecreatefromgif($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    imagegif($dest_img, $smallimage);
    } 
    if($size_img['mime'] !=="image/gif" && $size_img['mime'] !=="image/png" && $size_img['mime'] !=="image/jpeg") 
    {
    echo"<p align='center'>Внимание! Не поддерживаемый тип файла, используйте для выкладки форматы *.jpeg, *.png или *.gif.</p>";
    if(file_exists($filename))
     unlink($filename);
    exit();
    }
    // чистим память от созданных изображений
    imagedestroy($dest_img);
    imagedestroy($src_img);
    return true;
    }
    return true;
  }

  function resizeimg_round($maskfile, $filename, $smallimage, $w, $h)
  {
     // Имя файла с масштабируемым изображением
    $filename = "../".$filename;
    // Имя файла с уменьшенной копией.
    $smallimage = "../".$smallimage;
    // Имя файла с маской
    $mask = imagecreatefrompng($maskfile);
    // получим размеры исходного изображения
    $size_img = getimagesize($filename);
    if($size_img[0] > $w)
    {
    // создадим пустое изображение по заданным размерам 
    $dest_img = imagecreatetruecolor($w, $h);

    if($size_img['mime'] =="image/jpeg")
    {
    $src_img = imagecreatefromjpeg($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    imagecopy($dest_img,$mask,0,0,0,0,$w, $h);
    $trans = imagecolorallocatealpha($dest_img,77,77,77,127);
    imagecolortransparent($dest_img,$trans);
    imagejpeg($dest_img, $smallimage);
    }
    elseif($size_img['mime'] =="image/jpg")
    {
    $src_img = imagecreatefromjpeg($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    imagecopy($dest_img,$mask,0,0,0,0,$w, $h);
    $trans = imagecolorallocatealpha($dest_img,77,77,77,127);
    imagecolortransparent($dest_img,$trans);
    imagejpeg($dest_img, $smallimage);
    }
    elseif($size_img['mime'] =="image/png")
    {
    $src_img = imagecreatefrompng($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    imagecopy($dest_img,$mask,0,0,0,0,$w, $h);
    $trans = imagecolorallocatealpha($dest_img,77,77,77,127);
    imagecolortransparent($dest_img,$trans);
    imagepng($dest_img,$smallimage);
    }
    elseif($size_img['mime'] =="image/gif")
    {
    $src_img = imagecreatefromgif($filename);
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    imagecopy($dest_img,$mask,0,0,0,0,$w, $h);
    $trans = imagecolorallocatealpha($dest_img,77,77,77,127);
    imagecolortransparent($dest_img,$trans);
    imagegif($dest_img, $smallimage);
    } 
    if($size_img['mime'] !=="image/gif" && $size_img['mime'] !=="image/png" && $size_img['mime'] !=="image/jpeg") 
    {
    echo"<p align='center'>Внимание! Не поддерживаемый тип файла, используйте для выкладки форматы *.jpeg, *.png или *.gif.</p>";
    if(file_exists($filename))
     unlink($filename);
    exit();
    }
    // чистим память от созданных изображений
    imagedestroy($dest_img);
    imagedestroy($src_img);
    imagedestroy($mask);
    return true;
    }
    return true;
  }
?>