Загрузка изображений без потери качества

  • Автор темы Автор темы Danon_13
  • Дата начала Дата начала

Danon_13

Новичок
Всем привет, столкнулся с проблемой плохого качества изображений при изменении их размера (при этом если загружать оригинал без обработки, то на сайте всё нормально отображается)

как сохранить качество изображения при уменьшении изображения?

оригинал
jyYdtC7iC3M.jpg

измененный размер изображения (прин скрин того же размера)
i4UCRQKlVv8.jpg


Вот код, который я использую для изменения размера изображения


Код:
function resize ($filename, $size, $adress)
{
    $pref = $adress;
    $img = strtolower(strrchr(basename($filename), "."));
    $imgname = basename($filename);
    $formats = array('.jpg', '.gif', '.png', '.bmp');
    if (in_array($img, $formats))
    {
        list($width, $height) = getimagesize($filename);
        $new_height = $height * $size;
        $new_width = $new_height / $width;
        $thumb = imagecreatetruecolor($size, $new_width);
        switch ($img)
        {
            case '.jpg': $source = @imagecreatefromjpeg($filename); break;
            case '.gif': $source = @imagecreatefromgif($filename); break;
            case '.png': $source = @imagecreatefrompng($filename); break;
            case '.bmp': $source = @imagecreatefromwbmp($filename); break;
        }
        imagecopyresized($thumb, $source, 0, 0, 0, 0, $size, $new_width, $width, $height);
        switch ($img)
        {
            case '.jpg': imagejpeg($thumb, $pref.$imgname, '100'); break;
            case '.gif': imagegif($thumb, $pref.$imgname); break;
            case '.png': imagepng($thumb, $pref.$imgname); break;
            case '.bmp': imagewbmp($thumb, $pref.$imgname); break;
        }
    }
    else return 'Error';
    @imagedestroy($thumb);
    @imagedestroy($source);
    return $imgname;
}
 
Сверху