Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > принцип imagecopyresized


Автор: zebulun 3.10.2012, 01:11
вот такой код:
Код

    $file='18082012002.jpg';
    $saved_file=time().$file;
    $folder='tmp/wwwe/';
    if(!is_dir($folder))mkdir($folder,0600,true);
    $width = 200;
    $height = 150;
    list($width_orig,$height_orig)=getimagesize($file);
    $ratio_orig=$width_orig/$height_orig;
    if($width/$height>$ratio_orig)$width=$height*$ratio_orig;
    else $height=$width/$ratio_orig;
    $image_p=imagecreatetruecolor($width,$height);// ресэмплирование
    $image=imagecreatefromjpeg($file);
    //imagecopyresampled($image_p,$image,0,0,0,0,$width,$height,$width_orig,$height_orig);//эта функция тоже не меняет размер
    imagecopyresized($image_p,$image,0,0,0,0,$width,$height,$width_orig,$height_orig);
    $saved=imagejpeg($image,$folder.$saved_file);

правильно я понимаю, что эти функции должны сделать из картинки любой ширины и высоты, картинку с шириной и высотой  не больше заданных?
файл сохраняется, размер меняется, но всегда одинаково, где-то вполовину меньше становится, независимо от параметров, а ширина и высота не меняется.Прошу объясните как правильно работать с функциями imagecopyresized и imagecopyresampled.

Автор: ksnk 3.10.2012, 07:35
imagecopyresized($image_p,$image ... - делает копию картинки в рессурсе image_p
$saved=imagejpeg($image, ... - выводит картинку из рессурса image. Почему не image_p?

А размер меняется просто потому, что картинка перепаковывается с потерей качества.

Автор: zebulun 3.10.2012, 10:15
Спасибо, это ж надо так тупить.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)