簡體   English   中英

jpegoptim PHP shell_exec不壓縮圖像

[英]jpegoptim PHP shell_exec not compressing images

我正在運行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);

有沒有人有幸通過PHP調用shell_exec來調用和壓縮jpegoptim?

好吧,我找到了自己的問題的答案:

我從第一個函數示例更改了這一行

$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字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM