画像処理では、ポリゴナルグラフィックスにシャドウイング効果を追加することは一般的な要件です。 PHPは、ImageOpenPolygon()関数がポリゴンを描画するために使用されるグラフィック処理関数の強力なライブラリを提供します。いくつかの簡単なトリックを使用すると、これらの多角形の数字に影の効果を追加して、図の3次元性を高めることができます。
PHPでは、 ImageOpenPolygon()関数を使用してポリゴンを作成します。この関数を使用すると、ポリゴンの頂点を定義し、画像リソースに描画できます。その基本的な構文は次のとおりです。
imageopenpolygon($image, $points, $num_points, $color);
$画像:画像リソース。
$ポイント:ポリゴンのすべての頂点座標を含む配列。
$ num_points :ポリゴンの頂点の数。
$色:ポリゴンの色。
この関数を使用すると、さまざまな形状のポリゴンを描画でき、これらのポリゴンにシャドウ効果を追加するには、追加の処理が必要です。
画像リソースの作成:まず、画像リソースを作成する必要があります。
描画ポリゴン: ImageOpenPolygon()を使用してポリゴンを描きます。
シャドウを描く:影をわずかにオフセットし、暗い色で満たして、光源の反射のように見せます。
マージレイヤー:視覚効果のためにシャドウとポリゴナルグラフィックスをマージします。
このプロセスを実装するコード例は次のとおりです。
<?php
// 画像リソースを作成します
$image = imagecreatetruecolor(400, 400);
// 色を割り当てます
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$shadowColor = imagecolorallocate($image, 100, 100, 100); // 影の色
// 背景の色を埋めます
imagefill($image, 0, 0, $white);
// ポリゴンの頂点を定義します
$points = [
100, 100, // 頂点1
200, 50, // 頂点2
300, 150, // 頂点3
250, 250, // 頂点4
150, 200 // 頂点5
];
// 影を描きます(小さな距離で相殺されます)
$shadowOffsetX = 10;
$shadowOffsetY = 10;
$shadowPoints = [];
foreach ($points as $key => $value) {
if ($key % 2 == 0) {
$shadowPoints[] = $value + $shadowOffsetX; // x コーディネートオフセット
} else {
$shadowPoints[] = $value + $shadowOffsetY; // y コーディネートオフセット
}
}
// 影を描きます
imageopenpolygon($image, $shadowPoints, count($shadowPoints) / 2, $shadowColor);
// ポリゴンを描きます
imageopenpolygon($image, $points, count($points) / 2, $black);
// ブラウザに画像を出力します
header("Content-Type: image/png");
imagepng($image);
// 画像リソースを破壊します
imagedestroy($image);
?>
画像リソースの作成: ImageCreateTrueColor()と割り当てられた色(白、黒、影の色)を使用して400x400の画像リソースを作成しました。
ポリゴンの頂点の定義: $ポイントアレイに保存された頂点座標を使用して、5ポイントポリゴンを定義します。
影を描く:ポリゴンの各頂点座標をわずかに相殺することにより、影の頂点座標を取得します。シャドウオフセットは、 $ ShadowOffsetxと$ ShadowOffsetyで制御されます。
ポリゴンを描く: ImageOpenPolygon()関数を介して影とポリゴンを個別に描画すると、影が少しシフトしてそれらを立体視に見せます。
出力画像:最後に、 ImagePng()関数を介して生成された画像をブラウザに出力します。