2014-11-14 2 views
0

Я запускаю Linux Centos 6.5 и установил jpegoptim.jpegoptim PHP shell_exec не сжимает изображения

, чтобы подтвердить это, я побежал ни установить jpegoptim и не получил следующее:

Пакета jpegoptim-1.4.4-1.e16.x86_64 уже установлен и последняя версия ничего сделать

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

function compress_jpg($path_to_jpg_file, $max_quality = 90) 
{ 
if(!file_exists($path_to_jpg_file)){throw new Exception("File does not exist: $path_to_jpg_file");} 


$min_quality = 60; 
$compressed_jpg_content = shell_exec("jpegoptim --quality=$min_quality-$max_quality - < ".escapeshellarg($path_to_jpg_file)); 

if(!$compressed_jpg_content){throw new Exception("Conversion to compressed JPG failed. Is jpegoptim installed on the server?");} 
return $compressed_jpg_content; 
} 

$read_from_path = "image-old/cleveland-corner.jpg"; 
$save_to_path = "image-new/compressed-cleveland-corner.jpg"; 

$compressed_jpg_content = compress_jpg($read_from_path); 
file_put_contents($save_to_path, $compressed_jpg_content); 

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

function compress_jpg($path_to_jpg_file) 
{ 
$command = 'jpegoptim '.$path_to_jpg_file; 
shell_exec($command); 

return $compressed_jpg_content; 
} 

$read_from_path = "image-old/cleveland-corner.jpg"; 
$save_to_path = "image-new/compressed-cleveland-corner.jpg"; 

$compressed_jpg_content = compress_jpg($read_from_path); 
file_put_contents($save_to_path, $compressed_jpg_content); 

Неужели кому-нибудь повезло, звоните и сжимаете jpegoptim, используя shell_exec с PHP?

ответ

0

Ну я нашел ответ на мой собственный вопрос:

я изменить эту строку из моего первого примера функции

$compressed_jpg_content = shell_exec("jpegoptim --quality=$min_quality-$max_quality - < ".escapeshellarg($path_to_jpg_file)); 

Чтобы следующее:

$compressed_jpg_content = shell_exec("jpegoptim --max=75 --strip-all --all-progressive - < ".escapeshellarg($path_to_jpg_file)); 

Это действительно сводилось к зная опции jpegoptim и как обращаться к ним. Сжатие изображения образца с 54,318 байт до 27999 байт.

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