Картинки в пхп

ghytr00013

Задача проста до безобразия - надо закачивать большую картинку в jpeg-е и делать из неё иконку с шириной 100 пикселей.Затем пихатьл в файл. Более того, всё это счастье благополучно работает. Но вот картинка на выходе получается очень хреновая, почему - не понимаю. Воарос - это можно исправить средствами пхп, или же это такой глюк? Если я буду юзать imagemagick, то будет ли нормальная картинка?
Слева пхп, справа - ручками.

margadon

я не знаю какие библиотеки делают левую картинку и какие есть у них настройки, но почему получается такой результат - очевидно!
дело в интерполяции, ибо слева интерполяция nearest, а справа вероятно bicubic или bilinear, если пользоваться терминологией соответствующих функций в программах photoshop и irfan view

ghytr00013

Согласен. Но проблема таким образом не решается.

Fragaria

для тех, кто не видит оффтоп, транслирую совет от бочана:
"ты юзаешь функцию imagecopyresized а надо imagecopyresampled. "

ghytr00013

Именно её и использую.
 
            list($width, $height) = getimagesize($big);
$imbig=imagecreatefromjpeg($big);
$dstw=100;
$dsth=round($dstw*$height/$width);
$imsmall=imagecreate($dstw,$dsth);
imagetruecolortopalette($imbig,false,1000000);
imagepalettecopy($imsmall,$imbig);
imagecopyresampled($imsmall,$imbig,0,0,0,0,$dstw,$dsth,$width,$height);
imagedestroy($imbig);
imagejpeg($imsmall,$small,100);
imagedestroy($imsmall);

О как.

sbs-66

imageCreateTrueColor или как-то так.

Fragaria

чота много лишнего...

$im2=@ImageCreateTrueColor($w1,$h1);
imagecopyresampled($im2,$im,0,0,0,0,intval($w1intval($h1$w,$h);

у меня так из созданного $im делается $im2.

Fragaria

Вот так делай:

list($width, $height) = getimagesize($big);
$imbig=imagecreatefromjpeg($big);
$dstw=100;
$dsth=round($dstw*$height/$width);
$imsmall=ImageCreateTrueColor($dstw,$dsth);
imagecopyresampled($imsmall,$imbig,0,0,0,0,$dstw,$dsth,$width,$height);
imagedestroy($imbig);
imagejpeg($imsmall,$small,100);
imagedestroy($imsmall);

ghytr00013

Ага. И правда. И размер в 5 раз меньше стал у картинок. Спасибо.

Fragaria

Я предпочитаю паулянер натюр трюб

Ivan826

шо?

Werdna

Аффтар, gd какой версии ты юзаешь?
Надо полагать, что ты ведь gd юзаешь? ПХПшники народ особенный, они ведь и того, под виндой свою ПХП разворачивают.
Но при этом НИКОГДА не зададутся вопросом, какую же они версию юзают. :/

vlfdimir58

Отказался давно от gd в пользу ImageMagick и не знаю больше проблем.
Оставить комментарий
Имя или ник:
Комментарий: