ホームページ  >  記事  >  バックエンド開発  >  (上級)PHP画像処理技術 - GDライブラリ

(上級)PHP画像処理技術 - GDライブラリ

黄舟
黄舟オリジナル
2017-02-07 09:12:332721ブラウズ

1. GD 拡張機能をオンにする

extension=php_gd2.dll

Apache を再起動する

2. 例:

シナリオ:

500×300 の緑色の画像を作成する

①キャンバスを作成します

リソースタイプのデータ 。操作可能な画像リソース。

新しいキャンバスを作成(New)

ImageCreate(width, height)、パレットを元にキャンバスを作成します。

imageCreateTrueColor(width, height); トゥルーカラーキャンバスを作成します。

画像に基づいてキャンバスを作成 (開く)

imageCreateFromJPEG (画像アドレス);

imageCreateFromGIF (画像アドレス);

色の割り当て:キャンバス上の特定の色 色の場合、最初にその色をキャンバスに割り当てる必要があります。

使用関数:

色の識別 = imageColorAllocate(canvas, R, G, B);

色の表現:

RGB

③キャンバスを塗りつぶす: 塗りつぶし点を同じ色の連続した点で塗りつぶします (置換)

関数を使用します:

imageFill(canvas, 塗りつぶし位置 x, 塗りつぶし位置 Y, 色の識別)

位置は座標を使用して管理されます:

原点: 0, 0、キャンバスの左上隅。

右に行くほど X 軸が増加し、下に行くほど Y 軸が増加します。

右下の座標:width-1, height-1

④キャンバスを出力

加工したパターン情報をキャンバスに出力します。

典型:


1 画像ファイルに出力します。

2 直接出力。

使用関数:

imagePNG(canvas[, file address]):

imageJPEG();

imageGIF();

2番目のパラメータがない場合は、直接出力を意味します。

注: ブラウザに直接出力する場合は、応答データのタイプが PNG 形式の画像であることをブラウザに通知する必要があります。

Content-type コマンドを使用します。

キャンバスは複数回出力でき、さまざまな形式で

⑤ キャンバスリソースを破棄します

imageDestroy()

サンプルコード:

<?php
//例如:制作500×300的绿色图片
$width=500;
$height=300;
//创建真彩色的画布
$img=imageCreateTrueColor($width,$height);
// var_dump($img);    //测试结果: resource(2) of type (gd)   $img是一个资源类型
//使用函数imageColorAllocate(画布,R,G,B)分配颜色,颜色的表示方式:R  G  B
$green=imageColorAllocate($img, 0x0, 0xff, 0x0);
//填充画布,原点:0,0,画布的左上角,imageFill(画布, 填充位置x, 填充位置Y,颜色标识)完成
imageFill($img,0,0,$green);
//输出画布,直接输出到当前路径下为图片文件,格式有PNG、JPEG、GIF
//imagePNG($img,&#39;./green.png&#39;);  //如果没有第二个参数,表示直接输出
//如果直接输出到浏览器,需要告知浏览器,响应数据的类型应该是PNG格式的图片:使用指令Content-type
header(&#39;Content-Type:image/png;&#39;);
imagePNG($img);
//注:一个画布可以输出多次,输出为各种格式
//销毁画布资源
imageDestroy($img);

サンプルコード:

<?php
//例如:制作500×300的绿色图片
$width=500;
$height=300;
//创建真彩色的画布
$img=imageCreateTrueColor($width,$height);
// var_dump($img);    //测试结果: resource(2) of type (gd)   $img是一个资源类型
//使用函数imageColorAllocate(画布,R,G,B)分配颜色,颜色的表示方式:R  G  B
$green=imageColorAllocate($img, 0x0, 0xff, 0x0);
//填充画布,原点:0,0,画布的左上角,imageFill(画布, 填充位置x, 填充位置Y,颜色标识)完成
imageFill($img,0,0,$green);
//输出画布,直接输出到当前路径下为图片文件,格式有PNG、JPEG、GIF
//imagePNG($img,&#39;./green.png&#39;);  //如果没有第二个参数,表示直接输出
//如果直接输出到浏览器,需要告知浏览器,响应数据的类型应该是PNG格式的图片:使用指令Content-type
header(&#39;Content-Type:image/png;&#39;);
imagePNG($img);
//注:一个画布可以输出多次,输出为各种格式
//销毁画布资源
imageDestroy($img);

上記は、(高度な) PHP 画像処理技術 - GD ライブラリのコンテンツです。詳細については、PHP 中国語 Web サイト (www.php.cn) のコンテンツにご注意ください。

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