PHPは画像処理関数を使って絵を描きます
下の絵を見てみましょう:
この絵はどうやって描けばいいでしょうか?
次の手順に従って分析できます:
1. 絵を描きます
2. この絵を描くために必要な色を準備します
3. 背景色を塗りつぶします
4. 2 本の対角線を描きます
5上に円を描きます
6. 円の上に長方形を描きます 7. 画像を保存します
8. リソースを破棄します
1. この図を元に手順を導いてみましょう。使用する必要がある関数を分析しましょう: //使用imagecreate函数创建图片,返回资源
$img = imagecreate(500,500);
2. 画像が作成された後、画像リソースに色を追加する必要があり、関数 $颜色变量 = imagecolorallocate ( resource $图片资源 , int $红 , int $绿 , int $蓝 )
Red、Green、と青は、コンピュータで画像を操作するために使用されます。 3 つの基本的な色。これら 3 つの色が組み合わされて、私たちが肉眼で見るすべての色が形成されます。
そのため、imagecolorallocate は最初に画像リソースを入力し、このリソースを操作します。この画像アセットの色を準備します。
絵を描くときに、最初にキャンバスを準備してから絵の具を準備するのと同じです。
この図によると、準備する必要がある色は次のとおりです:
1. 緑
2. 青
3. 黒
4. 茶色
コンピューターのカラーマッチング原理に従って割り当てられた場合、以下の色の割り当て コードは次のように記述する必要があります:
//红 $red = imagecolorallocate($img, 255, 0, 0); //绿 $green = imagecolorallocate($img, 0, 255, 0); //蓝 $blue = imagecolorallocate($img, 0, 0, 255); //棕 $yellow = imagecolorallocate($img, 121, 72, 0);
画像で使用する必要があるいくつかの色の色の値。
3. 背景に色を追加して塗りつぶしますimagefilledrectangle ( resource $图片资源 , int $点1x轴, int $点1y轴 , int $点2x轴 , int $点2y轴 , int $color )
この機能には、幾何学の知識が少し必要です。
1. 点は x 座標と y 座標で構成され、点を形成します
2. 2 つの点は直線を形成できます
3. この線が水平または垂直でない場合は、長方形を形成できます
図に示すように以下:
点1と点2は長方形に変えることができます。したがって、2 つの座標点を出力し、キャンバスを埋めることができます。
キャンバス全体を塗りつぶしたい場合:
点 1 は x 軸であり、キャンバスの 0 位置であり、点 1 の y 軸もキャンバスの 0 位置です。
ポイント 2 の X 軸はキャンバスの 500 位置であり、ポイント 2 の Y 軸もキャンバスの 500 位置です。
4. 対角線を2本引きます 対角線を引きます、対角線は赤です。
最初の対角線の座標は 0 と 0、500 と 500 です
2 番目の対角線の座標は 500 と 0、0 と 500 ですimageline($img, 0, 0, 500, 500, $red); imageline($img, 500, 0, 0, 500, $blue);
5. 円を描きます
bool imagefilledellipse ( resource $图片资源 , int $圆心x , int $圆心y , int $圆的宽 , int $圆的高 , int $圆的颜色 ) imagefilledellipse($img, 250, 250, 200, 200, $yellow);
このリソースを使用して、円の中心の座標を書き込みます。次に長さと幅を書きます。長さと幅が一致していれば真円、一致していなければ楕円になります。
6. 円の上に長方形を描きます
imagefilledrectangle($img, 200, 200, 300, 300, $blue);
これについては上記で説明したので、詳細は説明しません。
7. 画像を保存します
bool imagejpeg ( resource $image [, string $filename])
8. 画像リソースを破棄します
imagedestroy($img);
最終的に結合されたコードを見てみましょう:
<?php //创建图片 $img = imagecreatetruecolor(500, 500); //分配颜色 $red = imagecolorallocate($img, 255, 0, 0); $green = imagecolorallocate($img, 0, 255, 0); $blue = imagecolorallocate($img, 0, 0, 255); $pur = imagecolorallocate($img, 255, 0, 255); $yellow = imagecolorallocate($img, 121, 72, 0); //填充背景 imagefilledrectangle($img, 0, 0, 500, 500, $green); //画对角线 imageline($img, 0, 0, 500, 500, $red); imageline($img, 500, 0, 0, 500, $blue); //画圆 imagefilledellipse($img, 250, 250, 200, 200, $yellow); //圆中间画矩形 imagefilledrectangle($img, 200, 200, 300, 300, $blue); //保存图片,图片名为haha.jpg imagejpeg($img, 'haha.jpg'); //销毁资源 imagedestroy($img); ?>