PHPがJPEG画像をProgressive JPEGに変換する方法

1332 ワード

JPEGファイル形式には2つの保存方法があります.彼らはBaseline JPEGとProgressive JPEGです.
2つのフォーマットには同じサイズと画像データがあり、彼らの拡張子も同じで、唯一の違いは両者の表示方法が異なることです.
Baseline JPEG
このタイプのJPEGファイルの格納方式は、上から下へのスキャン方式であり、各行を順次JPEGファイルに格納する.このファイルを開いてその内容を表示すると、データは保存時の順序で上から次の行に1行表示され、すべてのデータが読み終わるまで、画像全体の表示が完了します.ファイルが大きい場合やネットワークのダウンロード速度が遅い場合は、画像が1行にロードされる効果があります.このフォーマットのJPEGにはメリットがありません.そのため、Progressive JPEGを推奨します.
Progressive JPEG
Baselineの1回のスキャンとは異なり、Progressive JPEGファイルには複数回のスキャンが含まれており、これらのスキャンはJPEGファイルに順次格納されています.ファイルを開くと、まず画像全体のぼやけた輪郭が表示され、スキャン回数が増えるにつれて画像がますます鮮明になります.このフォーマットの主な利点は、ネットワークが遅い場合、画像の輪郭が表示され、ロードされている画像が何であるかを知ることです.いくつかのサイトで大きな画像を開くと、この技術に気づきます.
もしあなたのネット速度がカタツムリと同じなら、効果を見ることができるはずですが、実はqzone、微博などの大手サイトではよくこのような効果を見ることができます.
PHPコードはProgressiveのjpgに変換することもできます.
 
  
 
$im = imagecreatefromjpeg('file.jpg');
// JPEG , JPEG。 php
imageinterlace($im, 1);
imagejpeg($im, './outfile.jpg', 80);
imagedestroy($im);
 
?>

画像はProgressiveですか、Baselineですか.
ImageMagickソフトウェアのidentityコマンドを使用して画像リソースを表示することを知っています.
 
  
identify -verbose outfile.jpg

Interlace:JPEGというプロパティがある場合はProgressiveピクチャです.