Отображение картинки

Статус
В этой теме нельзя размещать новые ответы.

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
Помогите пожалуйста разобраться с функцией.
Задача: Есть картинка, необходимо её отобразить не более 200х150. Если её размер больше, то необходимо узнать возможную высоту и ширину в пропорциональном уменьшении от текущей.
Т.е. если у нас картинка 400 х 300, то мы получим 200х150
Но если картинка 411х123, необходимо получить стороны не более 200х1500 при этом не исказив пропорции.
Как сохранить пропорции и при этом уменьшить картинку?
 
  • Заблокирован
  • #2
PHP:
function imageresize(&$img, $width, $height) {
	$w = imagesx($img);
	$h = imagesy($img);
	$ratio = 0;
	
	if($width && $height) {
		$w_dest = $width;
		$h_dest = $height;
	} else {
		if($width > 0)
			$ratio = $w / $width;
		elseif($height > 0)
			$ratio = $h / $height;
		
		if($ratio > 0) {
			$w_dest = round($w / $ratio);
			$h_dest = round($h / $ratio);
		}
	}
	
	if(!$w_dest || !$h_dest)
		return false;
		
	$new_img = imagecreatetruecolor($w_dest, $h_dest);
	imagealphablending($new_img, false);
	imagesavealpha($new_img, true);
	
	imagefilledrectangle($new_img, 0, 0, $w_dest, $h_dest, imagecolorallocatealpha($new_img, 255, 255, 255, 127));
	imagecopyresampled($new_img, $img, 0, 0, 0, 0, $w_dest, $h_dest, $w, $h); 
	
	 $img = $new_img;
}
Юзать так:
imageresize($img, 200, null);

Где $img - это напр. из джепега $img = imagecreatefromjpeg($folder);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху