imagecreatetruecolor () заставляет мое изображение терять качество - PullRequest
0 голосов
/ 14 декабря 2011

Я использую приведенный ниже скрипт для создания JPG на основе людей, загружающих изображение. В результате получается, что даже если изображение имеет ту же ширину / высоту, оно все равно теряет качество настолько, что это недопустимо

$im = imagecreatefromjpeg($_FILES['cpicture']['tmp_name']);
$thumb=imagecreatetruecolor(507,307);
ImageCopyResampled($thumb,$im,0,0,0,0,$newwidth,$newheight,ImageSX($im),ImageSY($im));
ImagejpeG($thumb,"uploads/".$randomvalue.".jpg");
$imgurl="uploads/".$randomvalue.".jpg";

Эти функции снижают качество?

Ответы [ 2 ]

3 голосов
/ 14 декабря 2011

imagejpeg Третий параметр - это качество выводимого изображения:

quality является необязательным и варьируется от 0 (худшее качество, меньший файл) до 100 (наилучшее качество, самый большой файл). По умолчанию используется значение качества IJG по умолчанию (около 75).

Попробуйте изменить соответствующую строку вашего кода на:

ImagejpeG($thumb,"uploads/".$randomvalue.".jpg", 100);
0 голосов
/ 14 декабря 2011

JPEG всегда теряет качество, потому что это компрессор с потерями.Если вы не хотите этого, используйте, например, png.Да или установите качество вывода на 100:

ImagejpeG($thumb,"uploads/".$randomvalue.".jpg", 100);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...