現在の位置: ホーム> 最新記事一覧> ImageOpenPolygon()を使用して動的層オーバーレイ効果を作成する方法

ImageOpenPolygon()を使用して動的層オーバーレイ効果を作成する方法

M66 2025-05-29

ImageOpenPolygon()は、PHPのGDライブラリの関数です。その機能は、指定された色でポリゴンを描くことです。このポリゴンの頂点は、座標配列に渡すことができます。多層画像オーバーレイの鍵は、複数のレイヤーのグラフィックをさまざまな方法で画像に描く方法です。

2。複数のレイヤーの重ね合わせを実装するためのアイデア

複数のレイヤーの動的オーバーレイを実現するには、次の手順を使用できます。

  • 画像を作成または開く:まず、基本的な画像を作成する必要があります。または、新しい画像を作成して新しい画像を作成することもできます。

  • 複数のポリゴン層を描く画像のポリゴン()を介して複数のポリゴンを描画し、これらのポリゴンを画像上にオーバーレイします。

  • 動的効果:動的効果を実現するために、JavaScriptまたはPHPのいくつかのタイミング関数を使用して、各レイヤーの表示時間または変更を制御できます。

3。サンプルコード

ImageOpenPolygon()を使用して、画像に複数の動的に重複したポリゴン層を描画する方法を示す簡単な例を示します。

 <?php
// 空白の画像を作成します
$width = 800;
$height = 600;
$image = imagecreatetruecolor($width, $height);

// 背景色を白に設定します
$backgroundColor = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $backgroundColor);

// 色を定義します
$color1 = imagecolorallocate($image, 255, 0, 0);  // 赤
$color2 = imagecolorallocate($image, 0, 255, 0);  // 緑
$color3 = imagecolorallocate($image, 0, 0, 255);  // 青

// 複数のポリゴンの頂点座標を定義します
$polygon1 = [200, 100, 400, 100, 300, 200];
$polygon2 = [300, 200, 500, 200, 400, 300];
$polygon3 = [400, 300, 600, 300, 500, 400];

// ポリゴンを描きます
imageopenpolygon($image, $polygon1, 3, $color1);  // 赤
imageopenpolygon($image, $polygon2, 3, $color2);  // 緑
imageopenpolygon($image, $polygon3, 3, $color3);  // 青

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

// 無料のメモリ
imagedestroy($image);
?>

4。コード説明

  • 画像の作成:まず、 ImageCreatetrueColor()を使用して、幅800pxと高さ600pxの空白の画像を作成します。

  • 背景色を設定しますImageFill()を使用して、背景を白として埋めます。

  • 定義の色ImageColorAllocate() 、つまり赤、緑、青を使用して3色が定義されています。

  • 描画ポリゴンImageOpenPolygon()関数を使用して、それぞれ3つの頂点を持つ3つの異なる色のポリゴンを描画します。

5。動的重複効果の実装

動的効果を実現するには、JavaScriptを使用して複数のレイヤーの段階的表示を制御するか、サーバー側のタイミングタスクを使用して各レイヤーのレンダリング時間を制御できます。たとえば、アニメーション化された効果は、時々画像を再生し、異なるレイヤーを返すことで実現できます。

JavaScriptとAjaxを使用して動的層オーバーレイを実装する方法を示す簡単な例を次に示します。

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>動的オーバーレイ効果</title>
    <script>
        let currentLayer = 1;

        function updateImage() {
            // 現在のレイヤー番号に基づいて画像を動的に要求します
            let imgElement = document.getElementById("dynamicImage");
            imgElement.src = "image.php?layer=" + currentLayer;
            currentLayer = (currentLayer % 3) + 1; // レイヤーのループを制御します
        }

        setInterval(updateImage, 1000); // 毎秒画像を更新します
    </script>
</head>
<body>
    <h1>動的オーバーレイ効果</h1>
    <img id="dynamicImage" src="image.php?layer=1" alt="動的に重ねられた画像">
</body>
</html>

6。概要

ImageOpenPolygon()関数を介して、PHPは複数のレイヤーの動的オーバーレイ効果を簡単に実装できます。実際には、これらのレイヤーをより複雑に設計し、PHPまたはJavaScriptを介して動的ディスプレイを実装できます。画像生成であろうとフロントエンド効果の表示であろうと、 ImageOpenPolygon()は非常に強力なツールです。