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); 

사람은 운이 호출하고 PHP에서 jpegoptim 사용 shell_exec를 압축 있었나요?

답변

0

그럼 난 내 자신의 질문에 대한 답을 찾을 :

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

가 정말 내려왔다 :

내 첫 번째 함수의 예에서이 줄을 변경을 다음과

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

jpegoptim 옵션을 알고 그것들을 참조하는 방법. 샘플 이미지를 54,318 바이트에서 27,999 바이트로 압축합니다.