現在の位置: ホーム> 最新記事一覧> ImageOpenPolygon()および透明な画像描画技術

ImageOpenPolygon()および透明な画像描画技術

M66 2025-05-18

画像処理の分野では、特に複雑な多角形のグラフィックオーバーレイ効果を実装する必要がある場合、透明な画像の描画スキルが非常に重要です。人気のあるサーバー側のプログラミング言語として、PHPはいくつかの組み込みの画像処理機能を提供します。 ImageOpenPolygon()は、ポリゴンを描画するために使用できる関数の1つです。この記事では、ImageOpenPolygon()関数を使用する方法と、透明な背景を組み合わせてポリゴンの透明なオーバーレイ効果を実現する方法を紹介します。

1。ImageOpenPolygon()関数の概要

PHPでは、 ImageOpenPolygon()関数は、主に閉じたポリゴンを描画するために使用されます。ポイントの配列が必要で、それらを直線で接続してポリゴンを形成します。ただし、デフォルトでは、PHPによって描かれたポリゴンは透明ではありません。透明性を実現するには、透明性(PNGなど)をサポートする画像形式を使用し、追加の構成を実行する必要があります。

2。透明な画像を作成してフォーマットします

まず、透明性をサポートする画像を作成する必要があります。 PHPでは、 ImageCreateTrueColor()関数を介して真の色キャンバスを作成し、透明な背景を設定できます。コードは次のとおりです。

 <?php
// aを作成します 500x500 透明な背景画像
$image = imagecreatetruecolor(500, 500);

// 透明なサポートをオンにします
imagesavealpha($image, true);
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);  // 127 完全に透明になること
imagefill($image, 0, 0, $transparent);

// 出力画像
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

上記のコードでは、 ImageCreatetrueColor()で500x500ピクセルキャンバスを作成し、 ImagesAvealpha()をイメージの透明チャネルを有効にし、 ImageColoralocatealpha()を介して透明な色を設定します。

3。ImageOpenPolygon()を使用してポリゴンを描く

次に、 ImageOpenPolygon()関数を使用して、作成された画像にポリゴンを描画します。まず、ポリゴンの頂点座標を定義し、適切な色で満たす必要があります。透明なオーバーレイを実現するために、半透明の色を設定します。

 <?php
// ポリゴンの頂点座標を定義します
$points = [
    250, 100,  // 頂点1
    350, 200,  // 頂点2
    300, 300,  // 頂点3
    200, 300,  // 頂点4
    150, 200   // 頂点5
];

// 透明な色を作成します
$polygonColor = imagecolorallocatealpha($image, 255, 0, 0, 64);  // 半透明の赤

// ポリゴンを描きます
imagefilledpolygon($image, $points, 5, $polygonColor);

// 出力画像
imagepng($image);
imagedestroy($image);
?>

上記のコードでは、 ImageFilledPolygon()を使用して固体ポリゴンを描画し、 ImageColorallocatealpha()は透明値64の半透明の赤を作成し、図の透明なオーバーレイ効果を達成します。

4.さらなる最適化:既存の画像にポリゴンを描きます

背景画像があり、その上に透明なポリゴンを描画したいとしたら、 ImageCreatefrommpng()またはその他の画像読み取り関数を使用して背景画像をロードしてから描画できます。以下は、背景画像をロードし、透明なポリゴンを描く例です。

 <?php
// 背景画像の読み込み
$background = imagecreatefrompng('background.png');

// 画像サイズを取得します
$width = imagesx($background);
$height = imagesy($background);

// aを作成します透明画布并合并到背景图
$image = imagecreatetruecolor($width, $height);
imagesavealpha($image, true);
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);

// 背景画像を新しい画像にマージします
imagecopy($image, $background, 0, 0, 0, 0, $width, $height);

// 定义多边形頂点坐标
$points = [
    100, 100,
    200, 100,
    200, 200,
    100, 200
];

// 使用半透明的颜色ポリゴンを描きます
$polygonColor = imagecolorallocatealpha($image, 0, 255, 0, 64);  // 半透明の緑
imagefilledpolygon($image, $points, 4, $polygonColor);

// 最終画像を出力します
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
imagedestroy($background);
?>

このコードでは、最初にPNGの背景画像をロードし、新しい透過イメージを作成してから、背景画像を新しい画像にコピーします。次に、背景画像に重ねられた透明な緑色のポリゴンが描画されます。

5。概要

ImageOpenPolygon()およびImageFilledPolygon()を使用すると、ポリゴンフィギュアを簡単に描画できます。透明性設定を合理的に使用し、PHPの透明な画像技術を組み合わせることにより、複数のオーバーレイ効果を作成できます。これらのヒントは、グラフィック、アニメーション、さらにはユーザーインターフェイスを作成する際に、多くの柔軟性と創造的な空間を提供します。この記事が、透明な画像描画のテクニックを習得し、画像処理がより鮮明で興味深いものにするのに役立つことを願っています。

このプロセスでは、URL関連のイメージファイルパスを使用しましたが、パスのドメイン名部分をM66.netに置き換える必要がある場合は、以下が修正されたコードの例です。