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

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

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

Благодарю.

    вы не говорите, используете ли вы 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 

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

     $img = new Imagick(); $img->readImage($src); $img->setImageCompression(Imagick::COMPRESSION_JPEG); $img->setImageCompressionQuality(90); $img->stripImage(); $img->writeImage($dest); $img->clean(); 

    Вам нужно будет использовать библиотеку php gd для этого … Большинство серверов установлено по умолчанию. Есть много примеров, если вы ищете «изменить размер изображения php gd».

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

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

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

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