Когда-то ставил для него Хак, чтобы при регистрации пользователи сразу загружали аватар и имели возможность его обрезать. В одном из файлов PHP указано условие, чтобы фото уменьшалось в пропорции от загружаемого файла, а не в пикселях, которые я могу регулировать у себя в «Настройках профилей». Автор хака уже давно удалился с этого форума и нужна ваша помощь.
Необходимо указать фиксированное уменьшение аватара (ширина 300px, высота 500 px), но чтобы сохранялись пропорции фото. Или еще лучше отменить все условия хака, чтобы действовало стандартное уменьшение и сжатие фото, которое заложено в Инстант 1.9.
Вот файл PHP:
$uploaddir = './images/users/avatars/';
$ext = pathinfo($_FILES['uploadfile']['name'], PATHINFO_EXTENSION);
$file_name = md5($_FILES['uploadfile']['name']. time()). '.'. $ext;
$file_path = $uploaddir. basename($file_name);
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file_path)) {
list($height,$width, $image_type) = getimagesize($file_path);
if ($width > $height) $percent = 100 / $width*5;
else $percent = 100 / $height*4;
//уменьшеный размер для картинки
$new_width = $height* $percent;
$new_height = $width * $percent;
$image_tmp = imageCreateTrueColor($new_width, $new_height);
switch ($image_type) {
case 1:
$image = imageCreateFromGIF($file_path);
imageCopyResampled($image_tmp, $image, 0, 0, 0, 0, $new_height, $new_width, $height, $width);
imageJPEG($image_tmp, $file_path, 100);
break;
case 2:
$image = imageCreateFromJPEG($file_path);
imageCopyResampled($image_tmp, $image, 0, 0, 0, 0, $new_width, $new_height, $height, $width);
imageJPEG($image_tmp, $file_path, 100);
break;
case 3:
$image = imageCreateFromPNG($file_path);
imageCopyResampled($image_tmp, $image, 0, 0, 0, 0, $new_height, $new_width, $height, $width);
imageJPEG($image_tmp, $file_path, 100);
break;
default:
$image = imageCreateFromJPEG($file_path);
imageCopyResampled($image_tmp, $image, 0, 0, 0, 0, $new_height, $new_width, $height, $width);
imageJPEG($image_tmp, $file_path, 100);
break;
}
$mas['filename'] = $file_name;
$mas['success'] = 1;
$mas['width'] = $new_width;
$mas['height'] = $new_height;
echo json_encode($mas);
//print_r($mas);
} else {
$mas['success'] = 0;
echo json_encode($mas);
}