ホームページ >バックエンド開発 >PHPチュートリアル >PHP 描画に関するいくつかの疑問

PHP 描画に関するいくつかの疑問

WBOY
WBOYオリジナル
2016-06-13 13:19:50843ブラウズ

PHP 描画に関するいくつかの質問


PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$src621 = imagecreate(200,200); 
$yellow = imagecolorallocate($src621, 255, 255, 0);
$red = imagecolorallocate($src621, 255, 0, 0);
$green = imagecolorallocate($src621, 0, 255, 0);
imagerectangle($src621, 100, 50, 150, 150, $green);
imagefill($src621, 0, 0, $red);
header("Content-Type: image/png");
imagepng ($src621);
imagedestroy($src621);



結果:


質問 1. 黄色はどうですか?決まってますか?
質問 2: imagefill 関数の中央の 2 つのパラメーターは何に使用されますか? (自分で試してみたところ、変更がうまくいきませんでした。変更が大きすぎると塗りつぶしの色がなくなります)

答えを教えてください。ありがとう! !

-----解決策---------
注: imagecolorallocate() の最初の呼び出しでは、背景色が塗りつぶされます。
//imagefill($src621, 0, 0, $red);//この文をコメントアウトすると、それがわかります。
imagefile はポイント領域の塗りつぶしで、左上隅は (0,0) です。 )
黄色は、PS
のペイント チューブのように、すべての赤 (選択範囲) を塗りつぶすことを意味します。なぜ内側の赤が塗りつぶされないのかというと、
imagerectangle($src621, 100, 50, 150, 150, $green);//長方形の境界線は緑です
この緑の色は赤を分けています。つまり、内側と外側の赤は同じ選択範囲にありません
信じられないので、もう一度この文を変更してみてください
imagefill($src621, 101, 51, $red);//このようにして、四角形内をクリックすると、四角形内の赤い領域が選択されます


------解決策------------------
imagecreate で作成されたリソースの場合、最初に作成された色が背景色になります。
imagefill 関数の真ん中の 2 つのパラメーターは、この点から境界までの、到達可能なすべての位置と色を塗りつぶす開始点の座標 (原点) です。原点と同じものはすべて指定色に設定されています

imagefillの前に中空の長方形(imagerectangle)を変更するときに使用され、長方形の端が境界線として使用されます

🎜>は塗りつぶされず、背景が自然に露出します
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。