PHPは画像処理関数を使って絵...LOGIN

PHPは画像処理関数を使って絵を描きます

下の絵を見てみましょう:

7.png

この絵はどうやって描けばいいでしょうか?

次の手順に従って分析できます:

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. この線が水平または垂直でない場合は、長方形を形成できます

図に示すように以下:


document_2015-09-19_55fd0d5be46bb.png点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);

?>


次のセクション
<?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); ?>
コースウェア