Файл: system/resize.php
Строк: 38
<?php
if (isset($_GET['img'], $_GET['width'], $_GET['height']) && $_GET['width'] && $_GET['width'] > 0 && $_GET['width'] < 500 && $_GET['height'] < 500) {
$file = @htmlentities($_GET['img']);
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if ($ext == 'gif' || $ext == 'jpeg' || $ext == 'jpg' || $ext == 'png') {
if (!file_exists($file)) exit('Такого файла нет');
$newwidth = $_GET['width']; ///Новая ширина фото
$newheight = $_GET['height']; ///Новая высота фото
///проверяем включено ли точное масштабирование
if(isset($_GET['fix']) && $_GET['fix']==1)$fix=1;else$fix=0;
$type='jpg'; ///В каком формате выводить
if(isset($_GET['i']) && $_GET['i']>0 && $_GET['i']<100)$i=intval($_GET['i']); else $i=100; ////////Сжатие изображения (100-без сжатия)
$info = getimagesize($file); ///Берём данные о файле
if($info[0]<$newwidth or $info[1]<$newheight){ $newwidth=$info[0]; $newheight=$info[1];}
// Тип
if ($type == 'gif') {header("content-type: image/gif");
} elseif ($type == 'jpg' || $type == 'jpeg') {header("content-type: image/jpeg");
} elseif ($type == 'png') {header("content-type: image/png");
} else {header("content-type: image/jpeg");}
// Урезаем
if($fix==0){
list($width_orig, $height_orig) = getimagesize($file);
if(isset($_GET['height']) && $_GET['height']==0){
if ($width && ($width_orig < $height_orig)) {
$width = ($height / $height_orig) * $width_orig;
} else {
$height = ($width / $width_orig) * $height_orig;
}
}else{
$width=$newwidth;
$koe=$info[0]/$width;
$height=ceil($info[1]/$koe);
}
}else{
list($width_orig, $height_orig) = getimagesize($file);
if(isset($_GET['height']) && $_GET['height']==0){
if ($width && ($width_orig < $height_orig)) {
$width = ($height / $height_orig) * $width_orig;
} else {
$height = ($width / $width_orig) * $height_orig;
}
}else{
$width=$newwidth;
$height=$newheight;
}
}
// Сохраняем
$image_p = imagecreatetruecolor($width, $height);
switch ($info['mime']) {
case 'image/jpeg': $image = imagecreatefromJPEG($file); break;
case 'image/gif': $image = imagecreatefromGIF($file); break;
case 'image/png': $image = imagecreatefromPNG($file); break;
default: $image = 'Формат не поддерживается'; break;
}
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
// Выводим
imagejpeg($image_p, null, $i);
} else header('Location: /index.php');
} else header('Location: /index.php');
?>