現在の位置: ホーム> 最新記事一覧> PHPのImageOpenPolygon()関数を使用して、画像ホットスポット領域の正確な分割を実現する方法は?

PHPのImageOpenPolygon()関数を使用して、画像ホットスポット領域の正確な分割を実現する方法は?

M66 2025-07-08

Web開発では、特にインタラクティブな写真、地図、ゲームでは、画像ホットスポット領域の分割が一般的な要件です。画像とのユーザーの相互作用には、異なる領域をクリック可能なホットスポットに分割する必要があります。 PHPは多くの画像処理機能を提供し、 ImageOpenPolygon()関数はこの関数を実装するのに役立ちます。

ImageOpenPolygon()関数とは何ですか?

PHPのImageOpenPolygon()関数は標準のGDライブラリ関数ではないため、通常、PHPのドキュメントに詳細に見られません。ただし、多くのPHP開発者は、拡張機能またはカスタム実装を使用してグラフィックのポリゴンを埋め、ホットスポット領域を分割する場合があります。

ポリゴンのホットスポット領域を分割するには、通常、ポリゴンの頂点座標を設定して特定の領域を決定する必要があります。この関数を適用して、ユーザーが特定の領域をクリックする必要がある場合に、さまざまなイベントまたはジャンプをトリガーできます。

PHPを使用してホットスポットエリア部門を実装するための基本的な手順

  1. 写真の読み込み<br> ImageCreatefromJpeg()ImageCreateFrommpng()などの関数を使用して、ターゲット画像をロードします。

     $image = imagecreatefromjpeg('image.jpg');
    
  2. ポリゴンの頂点座標<br>を定義します ホットスポットエリアのポリゴンを定義する必要があります。ポリゴンの頂点座標は、配列で表すことができます。たとえば、四辺形の頂点座標は次のとおりです。

     $points = [
        50, 50,  // ポイント1
        150, 50, // ポイント2
        150, 150,// ポイント3
        50, 150  // ポイント4
    ];
    
  3. ポリゴンのホットスポットを描きます<br> ImageFilledPolygon()関数を使用して、ポリゴンを画像に引き込み、特定の色を設定します。 ImageFilledPolygon()は、画像に塗りつぶしの色でポリゴンを描画します。

     $color = imagecolorallocate($image, 255, 0, 0);  // 赤
    imagefilledpolygon($image, $points, count($points) / 2, $color);
    
  4. ホットスポットを取得してやり取り<br> 画像を生成した後、画像マップ(ImageMap)を使用して、これらのホットスポットエリアの相互作用を設定できます。ポリゴン領域を対応するURLにマッピングすることにより、特定の領域をクリックすると、ユーザーは対応するページにジャンプします。

    インタラクティブな画像の場合、通常、JavaScriptとHTMLの組み合わせが必要であり、PHPは画像パーツの処理と生成のみを担当します。例えば:

     <img src="image.php" usemap="#hotspot" />
    <map name="hotspot">
        <area shape="poly" coords="50,50,150,50,150,150,50,150" href="http://m66.net/target-page1" />
    </map>
    

コード例:ホットスポットで画像を生成します

<?php
// 写真を作成します
$image = imagecreatefromjpeg('image.jpg');

// 定义多边形的顶ポイント
$points = [
    50, 50,  // ポイント1
    150, 50, // ポイント2
    150, 150,// ポイント3
    50, 150  // ポイント4
];

// 色を設定します
$color = imagecolorallocate($image, 255, 0, 0);  // 赤

// ポリゴンを描きます
imagefilledpolygon($image, $points, count($points) / 2, $color);

// 出力画像
header('Content-Type: image/jpeg');
imagejpeg($image);

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

上記のコードは、ホットスポット領域を含む画像を生成し、JPEG形式で出力します。これらのホットスポットをWebページで使用する場合は、インタラクティブな操作にHTMLイメージマッピング( <map>タグ)を使用できます。

注意すべきこと

  • ポリゴン頂点座標:合格する座標が正しいことを確認し、画像サイズに一致させます。それ以外の場合、ホットスポット領域を正しく表示できない場合があります。

  • 画像形式:異なる画像形式(JPEG、PNGなど)をそれに応じて使用でき、 ImageCreateFrommpng()ImageJPeg()などの関数はそれに応じて調整できます。

  • 相互作用:クリック場所に基づいてホットスポットを動的に処理するなど、より複雑なインタラクションが必要な場合は、ユーザーエクスペリエンスを強化するためにフロントエンドテクノロジー(JavaScriptなど)を組み合わせてお勧めします。

結論は

PHPは、開発者が写真でホットスポットを柔軟に処理できるようにするのに役立つさまざまな画像処理機能を提供します。 ImageFilledPolygon()関数と組み合わせて使用​​すると、開発者は画像のさまざまな領域を正確に分割して、より詳細なインタラクティブなデザインを実現できます。画像を動的に生成し、ユーザークリックに応答する必要があるシーンでは、PHPはHTMLおよびJavaScriptと併せて、豊富な画像インタラクション関数を簡単に実現できます。