jpegoptim PHP shell_exec не сжимает изображения

Я использую Linux Centos 6.5 и установил jpegoptim.

чтобы подтвердить это, я запустил yum install 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 байтов до 27 999 байтов.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]