Показать сообщение отдельно
  #3 (permalink)  
Старый 18.08.2009, 12:57
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

Вот, убрал всё лишнее, оставил код только для PNG. In the end должна получаться уменьшенная копия шириной в 90px. Пропорциональное изменение высоты нужно для не квадратных аватаров. При отображении на странице ширина задаётся жёстко (90px) а высота в диапазоне от min-height до max-height (для браузеров "понимающих" эти свойства).
// Если размер файла больше 15 КБ
if ( $_FILES['file']['size'] > 15000 )
{
	// Открытие переданного изображения
	$src = imagecreatefrompng($newFileName);

	// Получение размера загруженного изображения
	$imgInfo = getimagesize($newFileName);

	// Масштабный коэффициент
	$scale = 90/$imgInfo[0];

	// Новая высота
	$newheight = $imgInfo[1]*$scale;
	settype($newheight, "integer");
						
	// Создание нового изображения
	$dest = imagecreatetruecolor(90, $newheight);

	// Копирование изображения
	imagecopyresampled($dest, $src, 0, 0, 0, 0, 90, $newheight, $imgInfo[0], $imgInfo[1]);

	// Запись изображения в файл
	imagepng($dest, $newFileName, 100);

	// Освобождение памяти
	imagedestroy($dest);
	imagedestroy($src);
}

Проблемы возникают только с PNG имеющими прозрачность.

Последний раз редактировалось Tim, 15.01.2012 в 00:40. Причина: Нужно код оформить. Лучше поздно чем никогда. =)
Ответить с цитированием