現在の位置: ホーム> 最新記事一覧> ImagePolygon()関数の基本的な使用方法、ポリゴンをすばやく描く方法は?

ImagePolygon()関数の基本的な使用方法、ポリゴンをすばやく描く方法は?

M66 2025-06-22

PHPでは、 ImagePolygon()関数は、画像にポリゴンを描画するために使用される関数です。開発者は、三角形、長方形、ペンタゴンなどの単純な幾何学的な数字を生成するのに役立ちます。この機能はGD画像ライブラリに基づいているため、使用する前にGDライブラリがサーバーにインストールされ、有効になっていることを確認してください。

基本的な構文

bool imagepolygon(resource $image, array $points, int $num_points, int $color)
  • $画像:ターゲット画像リソース。通常、 ImageCreateTrueColor()ImageCreateFromJpeg()などの関数によって作成されます。

  • $ポイント:ポリゴンの頂点のすべての座標を含む配列。配列の各ポイントは、 [x1、y1、x2、y2、...]の形式の座標ペアです。

  • $ num_points :ポリゴンの頂点の数。

  • $ color :ポリゴンの色を描くと、 ImageColorAllocate()関数を通して色を取得できます。

サンプルコード

<?php
// 真の色の画像を作成します
$image = imagecreatetruecolor(200, 200);

// 色を割り当てます
$bg_color = imagecolorallocate($image, 255, 255, 255); // 白い背景
$polygon_color = imagecolorallocate($image, 0, 0, 255); // 青いポリゴン

// 背景の色を埋めます
imagefill($image, 0, 0, $bg_color);

// ポリゴンの頂点を定義します
$points = [
    50, 50,
    150, 50,
    150, 150,
    50, 150
];

// ポリゴンを描きます
imagepolygon($image, $points, 4, $polygon_color);

// ブラウザに画像を出力します
header('Content-Type: image/png');
imagepng($image);

// 画像リソースを破壊します
imagedestroy($image);
?>

コード解析

  1. 画像の作成ImageCreateTrueColor(200、200)を介して200x200の真の色の画像を作成します。

  2. 色の割り当てImageColorAllocate()を使用して、背景色とポリゴン色の白と青をそれぞれ作成します。

  3. 描画ポリゴン:ポリゴンの頂点を定義し、それらをImagePolygon()関数に渡し、パラメーター$ポイントには頂点の座標配列が含まれます。ここでは、頂点が定義されており、頂点は(50、50)、(150、50)、(150、150)、および(50、150)です。

  4. 出力画像ヘッダー( 'Content-Type:Image/PNG')を使用して応答ヘッダーを設定し、PNG画像が返されることをブラウザに通知し、 ImagePng()を使用して画像を出力します。

  5. 画像リソースを破壊するImagedestroy()を使用して画像リソースを解放して、メモリの漏れを避けます。

ImagePolygon()関数を使用して複雑なポリゴンを描画します

六角形や五角形など、より複雑なポリゴンを描きたい場合は、頂点座標を調整するだけです。たとえば、六角形を描くには、次のような座標を設定できます。

 $points = [
    100, 20,
    140, 40,
    140, 80,
    100, 100,
    60, 80,
    60, 40
];

$ポイントアレイを調整することにより、さまざまな形状のポリゴンを簡単に描画できます。

注意すべきこと

  • ImagePolygon()は、ポリゴンを自動的に埋めるのではなく、ポリゴンのエッジを描くだけです。色を埋める必要がある場合は、 ImageFill()またはImageFilledPolygon()関数を使用できます。

  • ポリゴンの頂点座標は、画像の座標系に従って定義されます。座標の起源(0、0)は画像の左上隅にあり、X座標は右に増加し、Y座標は底まで増加します。

高度なアプリケーション:グラデーションの色を追加します

描画するポリゴンが勾配効果を持つようにしたい場合は、勾配の色値を計算することでそれを行うことができます。たとえば、ポリゴンの各頂点に異なる色を指定して、カラフルなグラフィックを作成できます。

要約します

ImagePolygon()関数は、PHPで非常に実用的な関数であり、さまざまな単純なポリゴナル図を描くのに適しています。頂点座標を調整することにより、さまざまな形状のパターンを簡単に作成できます。 PHPのGD画像ライブラリと組み合わせることで、開発者はより複雑な画像処理機能を実装できます。画像効果をさらに強化する場合は、グラデーションの追加、ポリゴンの充填、描画サークルなど、他のGD関数と組み合わせて使用​​してみてください。