Создание эскизов изображений с использованием php без снижения его качества

Я использую следующий код для создания эскизов изображения, но качество не на должном уровне. Нужна помощь

   <?php
function make_thumb($src,$dest,$desired_width)

{
$source_image=imagecreatefromjpeg($src);
$width = imagesx($source_image);//width of the image.
$height = imagesy($source_image);//height of the image.
$desired_height = floor($height*($desired_width/$width));
$virtual_image = imagecreatetruecolor($desired_width,$desired_height);

imagecopyresized($virtual_image,$source_image,0,0,0,0,$desired_width,$desired_height,$width,$height);
$fname= basename($src);
$dir="upload/thumbs/";
imagejpeg($virtual_image,$dir.$fname);

}
?>

Миниатюры имеют соответствующий размер, но не соответствующего качества.

-1

Решение

Есть несколько вещей, которые вы можете сделать, например, сделать изображение немного больше (передискретизировать) по размеру и принудительно уменьшить его при выводе по стилю или тому, что у вас есть. <img style="max-width: 80%;" />, но, вероятно, ваша проблема в том, что ваше сжатие не установлено на вашем imagejpeg():

// This function has a quality setting (3rd value ranges from 0-100)
imagejpeg($virtual_image,$dir.$fname,100);
0

Другие решения

Вы должны изменить образец изображения, а не просто изменить размер.

использование imagecopyresampled() как это:

imagecopyresampled($virtual_image,$source_image,0,0,0,0,$desired_width,$desired_height,$width,$height);
0

По вопросам рекламы [email protected]