Я пытаюсь создать веб-сайт на основе изображений. Я действительно запутался в отношении типа изображения и методов сжатия. Пожалуйста, посоветуйте мне лучший способ сжать размеры изображений.
Какой лучший метод PHP для уменьшения размера изображения без потери качества
Ответ 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. Я написал это для той же цели. Высоко настраиваемый, и делает это отличным способом.