Какой лучший метод PHP для уменьшения размера изображения без потери качества
Я пытаюсь разработать веб-сайт на основе изображений. Я действительно смущен типом изображения и методами сжатия. Посоветуйте, пожалуйста, лучший способ сжатия размеров изображения.
4 ответа
Я бы пошел на jpeg
, Прочитайте этот пост относительно уменьшения размера изображения и после выбора техники используйте ImageMagick.
Надеюсь это поможет
Если вы хотите уменьшить размер с помощью самого кодирования, вы можете следовать этому коду в 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()
Функция используется, чтобы найти размер любого данного файла изображения и вернуть размеры вместе с типом файла.
Вы можете изменить размер и затем использовать imagejpeg()
Не передавайте 100 в качестве качества для imagejpeg() - все, что больше 90, обычно излишне и просто дает вам больший JPEG. Для миниатюры попробуйте 75 и работайте вниз, пока соотношение цены и качества не станет приемлемым.
imagejpeg($tn, $save, 75);
Ну, я думаю, у меня есть кое-что интересное для вас... https://github.com/whizzzkid/phpimageresize. Я написал это для той же цели. Высоко настраиваемый, и делает это великолепно.