PHPのimageinterlace()関数で画像のインターレースを有効・無効にする方法
imageinterlace()は、PHPに標準で組み込まれている関数の一つで、画像のインターレースを有効または無効にするために使用されます。
インターレースとは、ビットマップ画像のエンコード方式の一つです。この方式でエンコードされた画像は、ダウンロードが完全に終わっていなくても、全体の粗い(劣化した)コピーが表示されるため、ユーザーは読み込みの途中からでも画像のおおよその様子を確認できます。
画像にインターレースを設定すると、読み込み中でも画像の一部が徐々に表示されていきます。表示形式は画像の種類によって異なり、例えばインターレースなしのJPEGは上から順に1行ずつ表示されます。インターレースを有効にしたい場合は、この関数の第2引数に1を指定して呼び出すだけでOKです。逆に無効にしたい場合は0を指定します。
構文
int imageinterlace(resource $image, int $interlace)
パラメータ
imageinterlace()関数は、$imageと$interlaceという2つの引数を受け取ります。
$image − インターレースを設定する対象の画像リソースを指定します。
$interlace − インターレースを有効にするか(1)、無効にするか(0)を指定します。
戻り値
画像にインターレースビットが設定されている場合は1を返し、設定されていない場合は0を返します。
サンプルコード1:インターレースを有効にする
次の例では、imagecreatefromjpeg()関数でJPEG画像を読み込み、imageinterlace()関数の第2引数に1を渡してインターレースを有効にしています。
<?php
// imagecreatefromjpeg()関数で画像を読み込む
$img = imagecreatefromjpeg('C:\xampp\htdocs\test\30.jpg');
// 第2引数に1を指定してインターレースを有効化
imageinterlace($img, 1);
// 出力画像を表示
header('Content-type: image/jpeg');
imagejpeg($img);
imagedestroy($img);
?>
サンプルコード2:インターレースを無効にする
今度は逆に、第2引数に0を渡してインターレースを無効にする例です。
<?php
// imagecreatefromjpeg()関数で画像を読み込む
$img = imagecreatefromjpeg('C:\xampp\htdocs\test\30.jpg');
// 第2引数に0を指定してインターレースを無効化
imageinterlace($img, 0);
// 出力画像を表示
header('Content-type: image/jpeg');
imagejpeg($img);
imagedestroy($img);
?>
まとめ
imageinterlace()関数を使えば、たった1行のコードで画像のインターレース設定を切り替えられます。第2引数に1を指定すれば有効、0を指定すれば無効になり、戻り値で現在のインターレース状態(1または0)を確認することもできます。Webページで画像の読み込み体験を改善したい場合に役立つ関数なので、ぜひ活用してみてください。
-
PHPのimagecreatefromjpeg()関数でJPEGファイルから新しい画像を作成する方法
imagecreatefromjpeg()は、PHPに組み込まれている関数の一つで、JPEGファイルから新しい画像を生成するために使用されます。指定したファイル名から取得した画像を表す画像リソース識別子(イメージID)を返します。この関数は、GDライブラリが有効になっている環境で動作し、JPEG画像の読み込み、編集、再保存など、さまざまな画像処理の起点としてよく利用されます。構文resource imagecreatefromjpeg(string $filename)パラメータimagecreatefromjpeg()が受け取るパラメータは$filenameの1つだけです。ここには、読み込む
-
PHPのimagecreate()関数とは?使い方とサンプルコードを解説
PHPのimagecreate()関数は、新しい画像(イメージリソース)を作成するために使用されるGDライブラリの関数です。パレットベースの画像を生成し、その後の描画処理やテキスト追加などに利用できます。imagecreate()とimagecreatetruecolor()の違い画像を作成する際には、imagecreate()よりもimagecreatetruecolor()を使用することが推奨されています。これは、imagecreatetruecolor()で作成できるフルカラー(トゥルーカラー)画像の方が高品質であり、画像処理を最高品質の状態で行えるためです。特にグラデーションや写真のよ