2013-04-02 6 views
0

Следующие работы очень хорошо подходят для png-файлов, но для jpeg/jpg сжатие не работает.PHP GD сжатие png, но не сжатие Jpeg

function compressImage($source, $destination, $quality) { 
    $info = getimagesize($source); 
    if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source); 
    elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source); 
    imagejpeg($image, $destination, $quality); 
    return $destination; 
} 

Как его получить для сжатия jpeg?

+1

Что вы имеете в виду "это не работает"? Что происходит? – Adrian

+2

jpgs всегда сжимаются. но если вы установите слишком высокое качество, размер файла может быть искусственно увеличен для нулевого прироста в реальном качестве. –

+0

@adrian мой файл 700KB jpeg по-прежнему составляет 700 КБ. – Joshua

ответ

0

Чтобы управлять файлами JPEG с помощью GD, ваша версия PHP должна быть скомпилирована с поддержкой libjpeg. Вы можете проверить это на phpinfo. Посмотрите на следующие два: включено

  • Поддержка JPEG
  • libJPEG Версия 6b (или разные)

Если у вас нет тех, попросите хозяина.

Еще одна проблема, которая может возникнуть из-за того, что ваш тип mime для jpeg-изображений может появиться как неизвестный. Дважды проверьте версию библиотеки - если она есть, запишите комментарий, и я увижу, могу ли я найти проблему в вашем коде более чем на интроспекции библиотеки.

+0

Его проблема не в том, что у него нет libjpeg, OP заявил, что он может создавать JPEG-файлы из PNG просто отлично. – Adrian

+0

Прохладный. У меня есть поддержка JPEG и libJPEG Version 6b. – Joshua

0

Вопрос был с PHP.

Do:

ням установить Г.Д. Г.Д.-разви

Смежные вопросы