ホームページ >php教程 >php手册 >画像関数ライブラリで遊ぶ - 一般的なグラフィックス操作 (PHP)

画像関数ライブラリで遊ぶ - 一般的なグラフィックス操作 (PHP)

WBOY
WBOYオリジナル
2016-06-21 09:08:28932ブラウズ

関数|グラフ

png とは何かなどの大きな理論については話さないようにしています。自分で調べてください。

PHP にはバージョン 4.3 以降、独自の GD2 ライブラリがバンドルされており、必要に応じてユーザーが自分でダウンロードして設定できます。あなたの php バージョンが gd モジュールをサポートしているかどうかを確認してください (JPEG、PNG、WBMP をサポートしていますが、GIF はサポートしなくなりました)。次の方法が 1 つの方法です:

if(!function_exists('imagecreate')) {
die('このサーバーはGD モジュールをサポートしていません');
}

サポートされていない場合、どのように設定しますか? gd モジュールの dll ファイルをダウンロードし、php.ini を変更して、サーバーを再起動します

以下、PHP 描画と呼びます。 PS.

PS を使用する予定がある場合は、次の手順を実行する必要があります。これは必要です。

1: 基本的な PS オブジェクト ($image であるとします) を作成し、背景 (デフォルトは黒) をすべて塗りつぶします。後続の PS 操作は、この背景画像に基づいて行われます。

2: $image 上で実行します。図.
3: この画像を出力します。
4: オブジェクトを破棄し、使用されているメモリをクリアします。

まず、一般的ないくつかのことを理解しましょう。使用される関数 これらの関数は PHP マニュアルで詳しく紹介されており、一般的にここで引用されています。

resource imagecreate (int x_size, int y_size)

imagecreate() は、サイズ x_size および y_size の空のイメージを表すイメージ識別子を返します。
この関数は基本的に imagetruecolor($width,$height) と同じです。

int imagecolorallocate (リソース画像、int red、int green、int blue)

imagecolorallocate() は、指定された RGB コンポーネントの色を表す識別子を返します。 image パラメータは、imagecreatetruecolor() 関数の戻り値です。赤、緑、青は、それぞれ目的の色の赤、緑、青の成分です。これらのパラメータは、0 ~ 255 の整数、または 16 進数の 0x00 ~ 0xFF です。 image で表されるイメージで使用される各色を作成するには、imagecolorallocate() を呼び出す必要があります。

bool imagefill (resource image, int x, int y, int color)

imagefill() は、イメージ image の座標 x, y のカラー color で領域を塗りつぶします (画像の左上隅が 0, 0)。 (つまり、x、y の同じ色の点と隣接する点が塗りつぶされます)。

bool imageline ( resource image, int x1, int y1, int x2, int y2, int color )
imageline() は、座標 x1, y1 から x2, y2 (座標の左上隅) までのイメージ image 内のカラー color を使用します。画像は 0 , 0) 線分を描きます。

bool imagestring (リソース画像、int font、int x、int y、string s、int col)

imagestring() は、col color を使用して、image で表される画像の x、y 座標に文字列 s を描画します (これは文字列の左上隅の座標。画像全体の左上隅は 0, 0)。フォントが 1、2、3、4、または 5 の場合は、内蔵フォントが使用されます。

array imagettftext (リソース画像、float サイズ、float 角度、int x、int y、int color、string fontfile、string text)

この関数はより重要であり、多くのパラメーターがありますが、ここではリストされません。画像への書き込み用。上記の関数に似ていますが、前者よりも強力です。

bool imagefilltoborder (resource image, int x, int y, int border, int color)

imagefilltoborder() From x, y (画像の左上隅は 0, 0) 点 0 から領域を色で塗りつぶし始め、色の境界線に達するまで続けます。 [注: 境界線内のすべての色が塗りつぶされます。指定した境界線の色がポイントと同じ場合、塗りつぶしはありません。画像に境界線の色が存在しない場合は、画像全体が塗りつぶされます。 】

bool imagefilledellipse ( resource image, int cx, int cy, int w, int h, int color )

imagefilledellipse() 表現された画像の cx, cy (画像の左上隅が 0, 0) を中心とするby image 楕円を描きます。 w と h はそれぞれ楕円の幅と高さを指定します。楕円は色で塗りつぶされます。成功した場合は TRUE、失敗した場合は FALSE を返します。

出力画像データ: imagepng($image[,$filename])

例 1: 青い背景と交差した白い線を持つグラフィックを出力します

$width=35; $height=35;
//オブジェクトを作成
$image=imagecreate($width,$height);
//色を抽出
$color_white=imagecolorallocate($image,255,255,255);//白
$color_blue=imagecolorallocate( $ image,0,0,108);//Blue
imagefill($image,0,0,$color_blue);
//描画
//線幅
imagesetthickness($image,3);
imageline($image ,0, 0,$width,$height ,$color_white);
imageline($image,$width,0,0,$height ,$color_white);

//オブジェクトをヘッダーに送信します

header('content-type : image/png');

imagepng($image);
/*
//オブジェクトをファイルに送信
$filename="ex1.png";
imagepng($image,$filename);
*/
// 破棄オブジェクト
imagedestroy($image);
?>

出力画像:

オンライン デモ: http://www.phzzy.org/temp/5do8/ex1.php


[ 1 ] [2] [3] 次のページ



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