現在の位置: ホーム> 最新記事一覧> ImageFilledPolygon() + ImageAntialias():滑らかな塗りつぶしポリゴンを描きます

ImageFilledPolygon() + ImageAntialias():滑らかな塗りつぶしポリゴンを描きます

M66 2025-05-28

画像処理にPHPを使用する場合、GDライブラリは操作を描画するための豊富な機能を提供します。デフォルトでは、特にスラッシュまたはポリゴンを描画するとき、グラフを描くときにエッジがジャグに表示される場合があります。よりスムーズなグラフィック効果を実現するために、 benceAntialias()関数を使用してアンチアリア機能を有効にすることができます。この記事では、ImageAntialias()関数をImageFilledPolygon()関数で使用して、滑らかなエッジフィルポリゴンを描画する方法を詳細に説明します。

関数の紹介

  • ImageAntialias(Resource $ Image、bool $ enabled) :指定された画像リソースのアンチエリアシング機能を有効または無効にします。

  • ImageFilledPolygon(Resource $ Image、Array $ Points、int $ num_points、int $ color) :与えられた色で塗りつぶされたポリゴンを描きます。

例:滑らかな五角形を描きます

これは、拡散効果を備えた詰め込まれた五角形の画像を作成し、PNG形式に出力する方法の完全な例を示します。

 <?php
// キャンバスを作成します
$width = 300;
$height = 300;
$image = imagecreatetruecolor($width, $height);

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

// アンチエイリアシングを有効にします
imageantialias($image, true);

// 色を割り当てます
$blue = imagecolorallocate($image, 0, 102, 204);

// ペンタゴンを定義するポイント(時計回りまたは反時計回りの順序)
$points = [
    150, 50,   // 頂点1
    250, 120,  // 頂点2
    210, 230,  // 頂点3
    90, 230,   // 頂点4
    50, 120    // 頂点5
];

// 絵を描いた五角形
imagefilledpolygon($image, $points, 5, $blue);

// ヘッダー情報出力画像を設定します
header('Content-Type: image/png');
imagepng($image);

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

上記のコードをpolygon.phpとして保存し、 https://m66.net/polygon.phpなどのブラウザにアクセスして、描かれた滑らかな五角形の画像を表示します。

注意すべきこと

  1. アンチエイリアシング効果は、作成された画像が真のカラー画像ImageCreateTrueColor()によって作成された)である場合にのみ有効になります。

  2. ImageCreate()によって作成されたパレット画像を使用している場合、 ImageAntialias()は有効になりません。

  3. ポリゴンの頂点を適切に接続する必要があります。通常は時計回りまたは反時計回りに配置する必要があります。そうしないと、形状が混乱する可能性があります。

  4. ImageAntialias()はジャグを減らすことができますが、パフォーマンスに特定の影響を与えます。多数の複雑なグラフィックを描くときは、パフォーマンスと効果の重量を量る必要があります。

拡張子:画像をファイルに保存します

画像を直接出力する代わりにファイルとして保存する場合は、 imagePng($ image)を次のように変更するだけです。

 imagepng($image, 'smooth_polygon.png');

この時点で、画像は現在のディレクトリのsmooth_polygon.pngファイルに保存され、たとえばhttps://m66.net/smooth_polygon.pngなどにアクセスできます。

要約します

ImageAntialias()ImageFilledPolygon()を組み合わせることにより、PHPでよりスムーズでより美しい塗りつぶしポリゴングラフィックを描画できます。このテクノロジーは、チャート、ベクトルグラフィック、ロゴ、および画像の滑らかさを必要とするその他のシーンの生成に適しています。 GDライブラリの助けを借りて、PHPはバックエンド処理に適しているだけでなく、基本的な画像描画タスクも可能です。