PHPでは、 ImagesetClip()関数は非常に便利な画像処理ツールです。開発者は作物エリアをセットアップし、その領域内のグラフィックスでのみ動作することができます。この機能を合理的に使用することにより、画像にさまざまなグラフィック(長方形、行など)を描画することができ、これらのグラフィックはクロップドエリアにのみ表示されます。この記事では、画像をトリミングし、トリミングされた領域にさまざまなグラフィックを描くためにImagesEtclip()関数を使用する方法を詳細に説明します。
ImagesetClip()関数は、画像の収穫領域を設定するために使用されます。作物面積は長方形の領域であり、この領域にあるコンテンツのみが表示または操作されます。通常、画像描画関数と組み合わせて使用され、開発者がグラフ図面の範囲を制御するのに役立ちます。
ImagesEtclip()関数を使用するには、最初に画像リソースを作成する必要があります。次に、 ImageClip()関数を使用してクリッピング領域を定義し、最後にクリッピングエリアでさまざまなグラフィック図面を実行できます。
bool imagesetclip(resource $image);
$ image : ImageCreate()などの関数を介して作成された画像リソース。
返品値:成功した場合はtrueを返し、それ以外の場合はfalseを返します。
次のサンプルコードは、ImagesEtclip()を使用して画像をトリミングする方法を示しています。
<?php
// 空白の画像を作成します
$image = imagecreatetruecolor(500, 500);
// 色を選択します
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
// 白で満たされた背景
imagefill($image, 0, 0, $white);
// 収穫エリアを長方形に設定します,左上隅(100,100),右下隅(400,400)
imageclip($image, 100, 100, 300, 300);
// 使用imagesetclip()画像をトリミングします
imagesetclip($image);
// クロップドエリアに黒い長方形を描きます
imagerectangle($image, 150, 150, 350, 350, $black);
// 出力画像
header("Content-Type: image/png");
imagepng($image);
// 画像リソースをリリースします
imagedestroy($image);
?>
この例では、最初に500x500ピクセルの画像を作成し、背景を白で埋めます。次に、(100、100)から(400、400)までの長方形のクロップドエリアを定義します。 ImagesEtclip()関数を呼び出すことにより、クリッピング領域が設定されます。次に、作物に黒い長方形を描き、結果を出力します。
作物領域では、線、長方形、楕円などのさまざまなグラフィックを描画できます。ここに、一般的なグラフィック描画方法があります。
// 描く(150, 150)到着(350, 350)ライン
imageline($image, 150, 150, 350, 350, $black);
// クリッピング領域内に楕円を描きます
imageellipse($image, 250, 250, 200, 100, $black);
// 五角形を描きます
$points = [200, 100, 300, 100, 350, 200, 250, 300, 150, 200];
imagepolygon($image, $points, 5, $black);
ImagesEtclip()を呼び出す前に、クリッピング領域がImageClip()または他の同様の機能を介して設定されていることを確認してください。
ImagesetClip()は、作物エリアのコンテンツでのみ使用でき、作物エリアの外側に描かれたコンテンツは表示されません。
収穫された領域は任意の長方形である可能性があり、領域のサイズと位置はパラメーターを調整することで制御できます。
<?php
// 空白の画像を作成します
$image = imagecreatetruecolor(500, 500);
// 色を選択します
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
// 白で満たされた背景
imagefill($image, 0, 0, $white);
// 収穫エリアを長方形に設定します,左上隅(100,100),右下隅(400,400)
imageclip($image, 100, 100, 300, 300);
// 使用imagesetclip()画像をトリミングします
imagesetclip($image);
// クロップドエリアに黒い長方形を描きます
imagerectangle($image, 150, 150, 350, 350, $black);
// クロップドエリアに線を描きます
imageline($image, 150, 150, 350, 350, $black);
// 楕円を描きます
imageellipse($image, 250, 250, 200, 100, $black);
// 出力画像
imagepng($image, 'output_image.png');
// 画像リソースをリリースします
imagedestroy($image);
?>
上記の例では、長方形、線だけでなく、楕円も描画します。最後に、画像をoutput_image.pngとして保存して、トリミングされた領域内のグラフィックを表示します。