Сжатие JPEG на сервере с PHP

У меня есть сайт с около 1500 JPEG-изображениями, и я хочу сжать их все. Просматривать каталоги не проблема, но я не могу найти функцию, которая сжимает JPEG, который уже находится на сервере (я не хочу загружать новый), и заменяет старый.

Есть ли в PHP встроенная функция для этого? Если нет, то как мне прочитать JPEG из папки в скрипт?

Благодарю.

 Pekka 웃03 июн. 2012 г., 14:02
Что именно ты имеешь в виду под «сжатием»? Если вы имеете в виду открытие и повторное сохранение каждого файла с более низким качеством, будьтеочен внимательно относитесь к тому, какой инструмент использовать. Соотношение качества и размера файлов встроенной библиотеки PHP не очень хорошее. Можете ли вы добавить больше контекста о том, что вы пытаетесь сделать?

Ответы на вопрос(4)

предоставленное vlzvl, работает хорошо. Однако, используя это решение, вы также можете перезаписать изображение, изменив порядок кода.

    $image = imagecreatefromjpeg("image.jpg");  
    unlink("image.jpg");
   imagejpeg($image,"image.jpg",50);

Это позволяет сжать ранее существующее изображение и сохранить его в том же месте с тем же именем файла.

 Matt06 сент. 2017 г., 20:26
Неimagejpeg() по умолчанию перезаписать исходное изображение при использовании того же имени файла?

Я предпочитаю использовать Imagick расширение для работы с изображениями. GD использует слишком много памяти, особенно для больших файлов. Вот фрагмент кода от Чарльз Холл в руководстве по PHP:

$img = new Imagick();
$img->readImage($src);
$img->setImageCompression(Imagick::COMPRESSION_JPEG);
$img->setImageCompressionQuality(90);
$img->stripImage();
$img->writeImage($dest); 
$img->clean();
 user221359030 мар. 2016 г., 11:44
Не забудь позвонить$img->clean(), иначе вы потеряете ресурсы.
 Neograph73403 июн. 2012 г., 14:18
Я никогда не слышал об этом раньше ...: S Спасибо, я тоже посмотрю:)
 Emil Vikström30 мар. 2016 г., 11:48
@ Eran, исправил, спасибо!

нстве серверов она установлена по умолчанию. Есть много примеров, если вы ищете «изменить размер изображения PHP».

Например, посмотрите на эту страницуhttp: //911-need-code-help.blogspot.nl/2008/10/resize-images-using-phpgd-library.htm

Решение Вопроса

используете ли вы GD, поэтому я предполагаю это.

$img = imagecreatefromjpeg("myimage.jpg");   // load the image-to-be-saved

// 50 is quality; change from 0 (worst quality,smaller file) - 100 (best quality)
imagejpeg($img,"myimage_new.jpg",50);

unlink("myimage.jpg");   // remove the old image
 Ema4rl23 апр. 2016 г., 14:30
Это не настоящее сжатие изображений! Качество снижается.
 user129951803 июн. 2012 г., 17:11
yes, вы можете указать путь как к imagecreatefromjpeg, так и к imagejpeg и отменить связь.
 Meir03 июн. 2012 г., 16:55
является параметром внутри imagecreatefromjpeg источника, что означает, что я тоже могу указать путь к файлу?
 Meir03 июн. 2012 г., 17:27
Большое вам спасибо

Ваш ответ на вопрос