Подтвердить что ты не робот

Какой лучший метод PHP для уменьшения размера изображения без потери качества

Я пытаюсь создать веб-сайт на основе изображений. Я действительно запутался в отношении типа изображения и методов сжатия. Пожалуйста, посоветуйте мне лучший способ сжать размеры изображений.

4b9b3361

Ответ 1

Я бы пошел за jpeg. Прочитайте этот пост относительно уменьшения размера изображения и, приняв решение по технике, используйте ImageMagick

Надеюсь, что это поможет

Ответ 2

Если вы хотите уменьшить размер с помощью самого кодирования, вы можете следовать этому коду в php.

<?php 
function compress($source, $destination, $quality) {

    $info = getimagesize($source);

    if ($info['mime'] == 'image/jpeg') 
        $image = imagecreatefromjpeg($source);

    elseif ($info['mime'] == 'image/gif') 
        $image = imagecreatefromgif($source);

    elseif ($info['mime'] == 'image/png') 
        $image = imagecreatefrompng($source);

    imagejpeg($image, $destination, $quality);

    return $destination;
}

$source_img = 'source.jpg';
$destination_img = 'destination .jpg';

$d = compress($source_img, $destination_img, 90);
?>

$d = compress($source_img, $destination_img, 90);

Это только функция php, которая передает исходное изображение (т.е. $source_img), целевое изображение ($destination_img) и качество для изображения, которое требуется сжать (т.е. 90).

$info = getimagesize($source);

Функция getimagesize() используется для определения размера любого заданного файла изображения и возврата размеров вместе с типом файла.

Ответ 3

Вы можете изменить размер, а затем использовать imagejpeg()

Не пропускайте 100 в качестве качества для imagejpeg() - что-то более 90, как правило, слишком велико, и вы просто получаете больше JPEG. Для миниатюры попробуйте 75 и работайте вниз, пока не будет приемлемым соотношение качества и размера.

imagejpeg($tn, $save, 75);

Ответ 4

Я думаю, у меня есть что-то интересное для вас... https://github.com/whizzzkid/phpimageresize. Я написал это для той же цели. Высоко настраиваемый, и делает это отличным способом.