前回の記事では『PHPで画像を出力するには? (凡例の詳細説明) 」では、PHP で画像を出力する方法を詳しく紹介しています。この記事では引き続き、PHP で画像を描画する方法について説明します。お役に立てれば幸いです。
PHP での画像の描画は、すべて前回の記事のキャンバスをベースにして、キャンバスを作成し、そのキャンバス上に画像を描画します。画像というと色を思い浮かべます。まず、PHP で画像の色を定義する方法を見てみましょう。
画像定義色
PHPを使って画像を操作する場合、必然的に色を設定したり、アウトラインの色を変えたりするのですが、これが出てきました美しい画像。では、PHP で画像に色を与えるにはどうすればよいでしょうか?このとき、imagecolorallocate() と imagecolorallocatealpha() の 2 つの関数を使用します。次に、これら 2 つの関数の使用方法を見てみましょう。
#imagecolorallocate()Function
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('Content-type:image/jpeg'); imagejpeg($image); imagedestroy($image); ?>出力結果:
## imagecolorallocatealpha()Function
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('Content-type:image/png'); //最后输出结果 imagepng($image); imagedestroy($image); ?>
##これより、imagecolorallocate() とimagecolorallocatealpha() これら 2 つの関数は、すでに画像上の色を定義できます。同時に、画像は色だけでなく、点、線、さまざまな形状でも構成されます。次に、これらの問題を解決する方法を見てみましょう。
点と線の描画点と線の描画は、PHP で画像を描画する最も基本的な操作と言えます。非常にシンプルですが、基本的ですが、柔軟なアプリケーションを使用すると、より複雑な画像を描画できます。
imagesetpixel()
imagesetpixel(resource $image, int $x, int $y, int $color)
このうち、$image は作成されたキャンバスを表し、$x と $y は ($x, $y) の座標点を表します。この座標点の色は $color です。
線分を描画するには、
imageline()
次に、ループと乱数を組み合わせた例を示します。
imageline(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)
出力結果:
長方形を描画する
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('Content-type:image/jpeg'); 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 サイトの他の関連記事を参照してください。