PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのimagegetclip()関数でクリッピング矩形を取得する方法をわかりやすく解説

imagegetclip() は、PHPのGDライブラリに組み込まれている関数の一つで、現在設定されているクリッピング矩形(長方形領域)を取得するために使用されます。クリッピング矩形とは、画像に対してピクセルを描画できる範囲を限定する領域のことで、この領域の外側には一切ピクセルが描画されません。

なお、この関数は PHP 7.2.0 以降で利用可能です。クリッピング矩形を設定する場合は、対となる imagesetclip() 関数を使用します。

構文

array imagegetclip(resource $image)

パラメータ

imagegetclip() が受け取るパラメータは $image の1つだけです。この引数には、imagecreatetruecolor()imagecreate()imagecreatefrompng() などの画像作成関数が返す画像リソースを指定します。

戻り値

imagegetclip() は、クリッピング矩形の座標を格納したインデックス配列を返します。配列の内容は以下のとおりです。

  • [0]:左上隅の x 座標
  • [1]:左上隅の y 座標
  • [2]:右下隅の x 座標
  • [3]:右下隅の y 座標

使用例1:imagesetclip()で設定した矩形を取得する

<?php
    $img = imagecreate(200, 200);

    // クリッピング矩形を設定する
    imagesetclip($img, 20, 20, 90, 90);
    print_r(imagegetclip($img));
?>

出力結果

Array (
    [0] => 20
    [1] => 20
    [2] => 90
    [3] => 90
)

この例では、200×200ピクセルの画像を作成し、imagesetclip() で座標 (20, 20) から (90, 90) の範囲をクリッピング矩形として設定しています。imagegetclip() を呼び出すと、設定した矩形の座標がそのまま配列として返されていることが確認できます。

使用例2:読み込んだ画像のデフォルトのクリッピング矩形を取得する

<?php
    // ローカルのフォルダから画像を読み込む
    $img = imagecreatefrompng('C:\xampp\htdocs\Images\img34.png');
    print("<pre>".print_r(imagegetclip($img),true)."<pre>");
?>

出力結果

Array
(
    [0] => 0
    [1] => 0
    [2] => 611
    [3] => 395
)

画像を新規に作成・読み込んだ直後は、クリッピング矩形が明示的に設定されていないため、画像全体の範囲がデフォルトのクリッピング矩形として返されます。この例では611×395ピクセルのPNG画像を読み込んでいるため、(0, 0) から (611, 395) までの座標が取得されています。

まとめ

imagegetclip() は、描画可能な範囲を制御するクリッピング矩形の現在の状態を確認するための便利な関数です。imagesetclip() と組み合わせて使用することで、特定の領域だけに描画を限定したい場合や、描画処理のデバッグを行いたい場合に役立ちます。

  1. PHPのimageistruecolor()関数で画像がトゥルーカラー画像かどうかを判定する方法

    imageistruecolor() は、PHPに標準で組み込まれている関数の一つで、指定された画像がトゥルーカラー画像であるかどうかを判定するために使用されます。トゥルーカラー画像とは、各ピクセルがRGB(赤・緑・青)のカラー値によって表現される画像のことです。構文bool imageistruecolor(resource $image)パラメータimageistruecolor() 関数は、1つのパラメータ $image を受け取ります。このパラメータには、判定対象となる画像リソースを渡します。戻り値imageistruecolor() は、指定された画像がトゥルーカラー画像であれば t

  2. PHPのimagecrop()関数で画像を指定した矩形領域にトリミングする方法

    imagecrop()関数とはimagecrop()は、PHPに組み込まれている関数で、画像を指定した矩形領域にトリミングするために使用されます。指定された矩形領域から画像を切り取り、出力画像を返します。なお、元の画像リソース自体は変更されません。構文resource imagecrop ($image, $rect)パラメータimagecrop()は、$imageと$rectの2つのパラメータを受け取ります。$image − imagecreatetruecolor()やimagecreatefrompng()などの画像作成関数によって返される画像リソースです。処理対象の画像を指定します。$