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を呼び出して圧縮した人はいますか?