PHP で色を定義し、点、線、四角形を描画する方法を詳細に分析しますか?

WBOY
リリース: 2023-04-10 17:50:01
オリジナル
2623 人が閲覧しました

前回の記事では『PHPで画像を出力するには? (凡例の詳細説明) 」では、PHP で画像を出力する方法を詳しく紹介しています。この記事では引き続き、PHP で画像を描画する方法について説明します。お役に立てれば幸いです。

PHP で色を定義し、点、線、四角形を描画する方法を詳細に分析しますか?

PHP での画像の描画は、すべて前回の記事のキャンバスをベースにして、キャンバスを作成し、そのキャンバス上に画像を描画します。画像というと色を思い浮かべます。まず、PHP で画像の色を定義する方法を見てみましょう。

画像定義色

PHPを使って画像を操作する場合、必然的に色を設定したり、アウトラインの色を変えたりするのですが、これが出てきました美しい画像。では、PHP で画像に色を与えるにはどうすればよいでしょうか?このとき、imagecolorallocate() と imagecolorallocatealpha() の 2 つの関数を使用します。次に、これら 2 つの関数の使用方法を見てみましょう。

  • #imagecolorallocate()Function

imagecolorallocate() 関数を使用できます画像の場合 色を割り当てます。複数の色を設定したい場合は、この関数を複数回呼び出す必要があります。関数の構文形式は次のとおりです:

imagecolorallocate(resource $image, int $red, int $green, int $blue)
ログイン後にコピー

このうち、$image は色を設定する必要がある画像を表します設定すると、関数は識別子を返します。指定された RGB コンポーネントで構成される色を表します。$red、$green、$blue はそれぞれ、必要な色の赤、緑、青のコンポーネントです。値の範囲は 0 からの整数です。 ~ 255 または 16 進数の 0x00 ~ 0xFF。


例は次のとおりです:

<?php
    $image = imagecreate(100, 100);
    $blue = imagecolorallocate($image, 0, 0, 255);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($image);
    imagedestroy($image);
?>
ログイン後にコピー

出力結果:


PHP で色を定義し、点、線、四角形を描画する方法を詳細に分析しますか?

  • ## imagecolorallocatealpha()Function

  • imagecolorallocatealpha() 関数は imagecolorallocate() 関数と同じ関数ですが、設定用の関数がもう 1 つあります。透明パラメータのアルファ、その構文形式は次のとおりです:
imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha)
ログイン後にコピー

このうち、前のパラメータは imagecolorallocate() 関数のパラメータと一致しており、$alphab は透明パラメータと値の範囲を表します。は 0 から 127 の間です。0 は完全に不透明を意味し、127 は完全に透明を意味します。

例は次のとおりです:

<?php
    $size=300;
    $image=imagecreatetruecolor($size,$size);
    $back=imagecolorallocate($image,0,0,0);
    $border=imagecolorallocate($image,255,255,255);
    imagefilledrectangle($image,0,0,$size-1,$size-1,$back);
    imagerectangle($image,0,0,$size-1,$size-1,$border);
    $yellow_x=100;
    $yellow_y=75;
    $red_x=100;
    $red_y=165;
    $blue_x=187;
    $blue_y=125;
    $radius=150;
    //用alpha值分配一些颜色
    $yellow=imagecolorallocatealpha($image,200,200,0,75);
    $red=imagecolorallocatealpha($image,200,0,0,75);
    $blue=imagecolorallocatealpha($image,0,0,200,75);
    //画3个交迭的圆
    imagefilledellipse($image,$yellow_x,$yellow_y,$radius,$radius,$yellow);
    imagefilledellipse($image,$red_x,$red_y,$radius,$radius,$red);
    imagefilledellipse($image,$blue_x,$blue_y,$radius,$radius,$blue);
    //不要忘记输出正确的header!
    header(&#39;Content-type:image/png&#39;);
    //最后输出结果
    imagepng($image);
    imagedestroy($image);
?>
ログイン後にコピー

出力結果:


##これより、imagecolorallocate() とimagecolorallocatealpha() これら 2 つの関数は、すでに画像上の色を定義できます。同時に、画像は色だけでなく、点、線、さまざまな形状でも構成されます。次に、これらの問題を解決する方法を見てみましょう。 PHP で色を定義し、点、線、四角形を描画する方法を詳細に分析しますか?

点と線の描画

点と線の描画は、PHP で画像を描画する最も基本的な操作と言えます。非常にシンプルですが、基本的ですが、柔軟なアプリケーションを使用すると、より複雑な画像を描画できます。
imagesetpixel()

関数を使用してキャンバスに点を描画でき、その色を設定することもできます。関数の構文 形式は次のとおりです:

imagesetpixel(resource $image, int $x, int $y, int $color)
ログイン後にコピー
このうち、$image は作成されたキャンバスを表し、$x と $y は ($x, $y) の座標点を表します。この座標点の色は $color です。

線分を描画するには、
imageline()

関数を使用できます。その構文形式は次のとおりです。座標 ($x1,$y1) 座標 ($x2,$y2) までの色 $color の線分。

次に、ループと乱数を組み合わせた例を示します。

imageline(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)
ログイン後にコピー

出力結果:


PHP で色を定義し、点、線、四角形を描画する方法を詳細に分析しますか?長方形を描画する

PHP で長方形を描画したい場合は、 imagerectangle() ## を渡す必要があります。 # または imagefilledrectangle()
実行する関数。 imagefilledrectangle() 関数は、描画後に四角形を塗りつぶしますが、imagerectangle() 関数は塗りつぶしません。構文形式は次のとおりです。

<?php
    $img = imagecreate(200, 100);
    imagecolorallocate($img, 0, 0, 0);
    $blue = imagecolorallocate($img, 0, 0, 255);
    $red = imagecolorallocate($img, 255, 0, 0);
    for ($i=0; $i <= 50; $i++) {
        $color = imagecolorallocate($img, rand(0, 255), rand(0, 255), rand(0, 255));
        imagesetpixel($img, rand(0, 200), rand(0, 100), $color);
        imageline($img, rand(0, 200), rand(0, 100), rand(0, 200), rand(0, 100), $color);
    }
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>
ログイン後にコピー
このうち、どちらも左上隅の座標($x1, $y1)と右下隅の座標($x2, $)を描画することを表しています。 y2). 長方形、この 2 つの違いは、imagerectangle() 関数の後の色は長方形のエッジの色を表し、imagefilledrectangle() 関数の後の色は長方形内の塗りつぶしの色を表します。 次に、例に従って imagerectangle() 関数または imagefilledrectangle() 関数を使用して四角形を描画します。例は次のとおりです:
imagerectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)
imagefilledrectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)
ログイン後にコピー

出力結果:


推奨学習: 「PHP ビデオ チュートリアル

以上がPHP で色を定義し、点、線、四角形を描画する方法を詳細に分析しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート