Оразмеряване на картинка

cold_zero

Registered
Искам когато например задам път към изображение - http://site.com/image.jpg , ако то е 1000x600px искам при показването му в страницата да се намалява и да не се показва оригиналния размер от 1000x600, но при самото оразмеряване да не се сплесква или разтяга... Нещо като тази система за качване на изображения- http://web-tourist.net/login/login/view.php?st=2232 , но както казах да ги оразмерява при показване, а не при качване...
 
imagecopyresampled
Това е което ти трябва, но имай предвид, че ако оразмеряваш при показването това ще ти забавя зареждането на страницата, и за да оразмериш без сплескване поразгледай примерите там е демонстрирано как.
 
Не ми върши почти никаква работа... Да кажем, че дадена картинка е 1000x600px, искам при показване да се определя ширина от 500 и спрямо нея да се определи и височината или обратното да имаме някаква височина и спрямо нея да се определи ширината...
 
Е как да не ти върши? Това така се ПРАВИ. Повярвай ми.
Код:
$filename = "името на картинката";
$max_dim = 500; //максимален размер височина или ширина
$size = getimagesize($filename); //оригиналните размери
$orig_w = $size[0];
$orig_h = $size[1];
$bigger = max($orig_w,$orig_h);//вземаме по-голения размер на картинката
if($max_dim < $bigger){//ако е по-голям от максималния
$ratio = $max_dim/$bigger; //определяме съотношението
$new_w = $orig_w*ratio; // и след това новите размер на картинката
$new_h =$orig_h*ratio;
}

$image_p = imagecreatetruecolor($new_width, $new_height); //оразмерена картинка
$image = imagecreatefromjpeg($filename); // оригинална картинка
//самото преоразмеряване
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_w, $new_h, $orig_w, $orig_ht);

// показване в браузъра
imagejpeg($image_p, null, 100);
 
е сега ще ти дам едно където си го ползвах за сайта за картинки
Код:
<?
$as="images/".$kartinka;
list($width, $height) = getimagesize("$as");
if (($width > 800) || ($height > 800)) 
{ 
$a = ($width >= $height) ? $width : $height; 
$div = $a / 800;
$mainWidth = intval($width / $div);
$mainHeight = intval($height / $div);
echo "<img src='$as' width='$mainWidth' height='$mainHeight'></a>";
}else{
echo "<img src='$as'></a>";
}
?>
 
Проблем... sorRy, кода който даде си ги оразмерява както си иска... Една снимка я прави 110x125 друга 140x150 и някакви е такива... Искам да си имам например една ширина от 100 на всяка снимка и спрямо нея да си прави дължината! А не всяка снимка да е с различна ширина.
 

Горе