2014-11-14 51 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从PHP使用shell_exec?

回答

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字节。