Форум → Программирование → PHP для идиотов → Сохранить пропорции изображения
Сохранить пропорции изображения
-
7 августа 2011 г. 19:23, спустя 14 минут 15 секунд
$w - требуемая ширина
$ow - исходная ширина
$oh - исходная высота
$h = $oh / $ow * $w -
7 августа 2011 г. 19:24, спустя 48 секунд
- получаешь размер исходника
- расчитываешь коэффициент аспект-ратио для исходника
- расчитываешь нужный коэффициент аспект-ратио для получаемой картинки
- при сравнении коэффициентов выясняешь какой параметр будешь резать - ширину или высоту (кроме случая равенства коэффициентов)
- режешь параметр рассчитанный ранее - как правило с двух сторон по половинке от полученной цифры кропа
- порезанную картинку просто уменьшаешь -
7 августа 2011 г. 19:27, спустя 3 минуты 11 секунд
- получаешь размер исходника
- расчитываешь коэффициент аспект-ратио для исходника
- расчитываешь нужный коэффициент аспект-ратио для получаемой картинки
- при сравнении коэффициентов выясняешь какой параметр будешь резать - ширину или высоту (кроме случая равенства коэффициентов)
- режешь параметр рассчитанный ранее - как правило с двух сторон по половинке от полученной цифры кропа
- порезанную картинку просто уменьшаешь
а как расчитать эти коофинценты? -
-
7 августа 2011 г. 19:30, спустя 1 минуту 27 секунд
ага ясно сейчас попробую переписать функцию, и через пару часов выкладу -
11 августа 2011 г. 2:20, спустя 3 дня 6 часов 49 минут
function resize($src, $dest, $width, $heigh, $quality = 90) {
$ratio = $width/$heigh;
$sizeImg = getimagesize($src);
$ext = strtolower(substr($sizeImg['mime'], strpos($sizeImg['mime'], '/')+1));
$srcRatio = $sizeImg[0]/$sizeImg[1];
if($ratio < $srcRatio) $heigh = $width/$srcRatio;
else $width = $heigh * $srcRatio;
$destImg = imagecreatetruecolor($width, $heigh);
$icfunc = 'imagecreatefrom' . $ext;
if(!function_exists($icfunc)) return false;
$srcImg = $icfunc($src);
if(!imagecopyresampled($destImg, $srcImg, 0, 0, 0, 0, $width, $heigh, $sizeImg[0], $sizeImg[1]))
return false;
$sfunc = 'image' . $ext;
if($format != 'gif') {
$sfunc($destImg, $dest, $quality);
} else {
$sfunc($destImg, $dest);
}
imagedestroy($srcImg);
imagedestroy($destImg);
return true;
} -
11 августа 2011 г. 2:24, спустя 4 минуты 24 секунды
Ivan, спасибо за отличный пример говнокода! лучший говнокод который гуглится с первого раза, остался в памяти на века всех пхп недопрограммистов :-)Сапожник без сапог -
11 августа 2011 г. 2:43, спустя 19 минут 16 секунд
Ivan, спасибо за отличный пример говнокода! лучший говнокод который гуглится с первого раза, остался в памяти на века всех пхп недопрограммистов :-)
не за что, я просто помог человеку) -
11 августа 2011 г. 2:46, спустя 3 минуты 1 секунду
я просто помог человеку)
помогают тру вей ссылками а не говнокодом :-)
http://www.php.net/manual/en/function.imagick-thumbnailimage.php
http://www.php.net/manual/en/function.imagick-cropthumbnailimage.php
:)Сапожник без сапог -
11 августа 2011 г. 2:50, спустя 3 минуты 37 секунд
я просто помог человеку)
помогают тру вей ссылками а не говнокодом :-)
http://www.php.net/manual/en/function.imagick-thumbnailimage.php
http://www.php.net/manual/en/function.imagick-cropthumbnailimage.php
:)
С этими функциями столкнулся впервые. За информацию спасибо. -
Пожалуйста, авторизуйтесь, чтобы написать комментарий!