Ув. программисты! есть возможность скриптом фото сжать так, чтобы width: была 580px ,а высота пропорциональна длине, то есть height:100% , чтоб при обработке фото оставалось как раньше, только меньшего формата(580х100%(пропорционально)). Естественно вы понимаете, что у народа фотоаппараты разные и разрешения фото естественно тоже! Натолкните на мысль! или укажите где посмотреть... Спасибо! :shock:
Вызывать функцию: PHP: <?php resizeimg("$file", "images/$file", 580, 440); ?> PHP: <?php /*********************************************************** * Функция втоматического маштабировани изображения * * $filename - имя исходного изображения * * $smallimage - Имя уменшенной копии * * $W и $h максимальные размеры изображения по ширене и высоте * ***********************************************************/ function resizeimg ($filename, $smallimage, $w, $h) { // Определение кофицента сжатия уменьшенной копии изображения $ratuo = $w/$h; // Получение размера исходного изображения $size_img = getimagesize($filename); // Если размер меньше то маштабирования не нужно if (($size_img[0]<$w) && ($size_img[1]<h)) return true; // Определения кофицента сжатия исходного изображения $src_ratio = $size_img[0]/$size_img[1]; // Вычисления размеров уменьшенно копии, чтобы при // маштабировании были сохронины пропорции исходного изображения if ($ratio < $src_ratio) $h = $w/$src_ratio; else $w = $h*$src_ratio; // Создание пустого изображения по заданным размерам $dest_img = imagecreatetruecolor($w, $h); // Вызыв функции создания изображения // в зависимости от расширения исходного фаила if ($size_img[2] == 2) $src_img = imagecreatefromjpeg($filename); else if ($size_img[2] == 1) $src_img = imagecreatefromgif($filename); else if ($size_img[2] == 3) $src_img = imagecreatefrompng($filename); // Маштабировани изображения if (!imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1])) return false; // В зависимости от расширения имени фаила с уменьшеной копией, // переданной в параметрах функции // Вызываем функцию сохранения уменьшенной копии в фаил $path_parts = pathinfo($smallimage); if ($path_parts["extension"] == "jpg") imagejpeg($dest_img, $smallimage); else if ($path_parts["extension"] == "jpeg") imagejpeg($dest_img, $smallimage); else if ($path_parts["extension"] == "gif") imagegif($dest_img, $smallimage); else if ($path_parts["extension"] == "png") imagepng($dest_img, $smallimage); // Очищаем память от созданных изображений imagedestroy($dest_img); imagedestroy($src_img); return true; } ?>
PHP: <? $width = 1000; $height = 2000; $newwidth = 500; $newheight = $newwidth*$height/$width; округляем round или floor - хз что тебе больше по вкусу
PHP: <?php $w=580; $urlimg='img.jpg'; $size=getimagesize($img); $w_t=$size[0]; $h_t=$size[1]; $wht=$w_t/$w; $new_h=ceil($h_t/$wht); ?> Вот правильно!