<?php
/**
* $filename string = 'img.jpg' - путь к изображению
* $percent string = 300 - ширина уменьшенной копии картинки
* $quality string = 0-100 - качество изображения (только для JPG)
**/
function resize ($filename, $size = 200, $quality = 85,$tmp = false)
{
/**
* Адрес директории для сохранения картинки
*/
if(!$tmp){
$dir = $_SERVER['DOCUMENT_ROOT'].'/screens/';}
else{
copy($_SERVER['DOCUMENT_ROOT'].'/ava/'.$filename,$_SERVER['DOCUMENT_ROOT'].'/avatmp/'.$filename);
$dir = $_SERVER['DOCUMENT_ROOT'].'/avatmp/';}
/**
* Извлекаем формат изображения, то есть получаем
* символы находящиеся после последней точки
*/
$ext = strtolower(strrchr(basename($filename), "."));
/**
* Допустимые форматы
*/
$extentions = array('.jpg', '.gif', '.png', '.bmp');
if (in_array($ext, $extentions)) {
$percent = $size; // Ширина изображения миниатюры
list($width, $height) = getimagesize($dir.$filename); // Возвращает ширину и высоту
$newheight = $height * $percent;
$newwidth = $newheight / $width;
$thumb = imagecreatetruecolor($percent, $newwidth);
switch ($ext) {
case '.jpg':
$source = @imagecreatefromjpeg($dir.$filename);
break;
case '.gif':
$source = @imagecreatefromgif($dir.$filename);
break;
case '.png':
$source = @imagecreatefrompng($dir.$filename);
break;
case '.bmp':
$source = @imagecreatefromwbmp($dir.$filename);
}
/**
* Функция наложения, копирования изображения
*/
imagecopyresized($thumb, $source, 0, 0, 0, 0, $percent, $newwidth, $width, $height);
if(!$tmp){$color = imagecolorallocate($thumb, 0, 100, 200);
imagestring($thumb, 2,($percent-strlen($_SERVER['HTTP_HOST'])*6), $newwidth-15, $_SERVER['HTTP_HOST'], $color);}
/**
* Создаем изображение
*/
switch ($ext) {
case '.jpg':
imagejpeg($thumb, $dir . $filename, $quality); // Для JPEG картинок
break;
case '.gif':
imagegif($thumb, $dir . $filename); // Для GIF картинки
break;
case '.png':
imagepng($thumb, $dir . $filename, $quality); // Для PNG картинок
break;
case '.bmp':
imagewbmp($thumb, $dir . $filename); // Для BMP картинки
break;
}
} else {
return 'Error image format!';
}
/*
* Очищаем оперативную память сервера от временных файлов,
* которые потребовались для создания миниатюры
**/
@imagedestroy($thumb);
@imagedestroy($source);
return $filename;
}
?>