以前、画像処理技術を使ったプロジェクトに出会いました。下の写真と似ています
この写真は、背景画像、QRコード画像、QRコード画像の下のテキストの3つの部分に分かれています。その中で、QR コードの画像とテキストは動的に生成され、QR コードの画像とテキストの説明はアクティビティごとに異なります。
この要件を達成するには、PHP 画像処理テクノロジーを使用する必要があります。 PHP の画像処理は非常に強力で、さまざまなことができます。一般的なものには、確認コード画像、画像透かし、サムネイルなどが含まれます。
まず、phpの拡張GDライブラリをインストールする必要があります。彼を手に入れたら、次の手順に進むことができます。以下では主にコードに焦点を当てます。関数の具体的な使用方法についてはドキュメントを参照してください。
キャンバスの作成
メイン関数 imagecreatetruecolor — 新しい True Color イメージを作成します。
imagecreatetruecolor ( int $width , int $height ) : resourcerree
キャンバスの色を設定します
メイン関数
imagecolorallocate — 画像に色を割り当てます
imagefillll — 領域塗りつぶし
imagecolorallocate ( resource $image , int $red , in t $green , int $blue ) : int
imagecolorallocate() は、指定された RGB コンポーネントで構成される色を表す識別子を返します。赤、緑、青は、それぞれ目的の色の赤、緑、青の成分です。これらのパラメータは、0 ~ 255 の整数、または 0x00 ~ 0xFF の 16 進数です。 image で表される画像で使用される各色を作成するには、
imagecolorallocate() を呼び出す必要があります。
imagefill ( resource $image , int $x , int $y , int $color ): bool
imagefill() は、画像の座標 x、y の色で実行されます (画像の左上隅は 0) 、0) 領域の塗りつぶし (つまり、x、y 点と隣接する点と同じ色の点が塗りつぶされます)。
<?php // 创建一个100*100的画布 $im = imagecreatetruecolor(100, 100); // 生成png图片 header("Content-type:image/png"); imagepng($im); imagedestroy($im);
このコードは 100*100 の赤い背景画像を生成します
点と線を描画します
主な関数:
imagesetpixel — 単一ピクセルを描画します
—線分を描画します
imagesetpixel ( resource $image , int $x, int $y , int $color): bool
imagesetpixel() 画像内で色を使用します カラーは x、y 座標 (左上隅) にあります画像の は 0 , 0) 点を描画します。
imageline (リソース $image, int $x1, int $y1, int $x2, int $y2, int $color): bool
imageline() は、画像内の座標 x1、y1 から x2 まで色を使用します。 y2 に線分を描きます (画像の左上隅が 0, 0)。
<?php header("Content-type:image/png"); // 创建一个100*100的画布 $im = imagecreatetruecolor(100, 100); // 设置红包 $color = imagecolorallocate($im, 255, 0, 0); // 填充画布 imagefill($im, 0, 0, $color); // 生成图片 imagepng($im); // 销毁资源 imagedestroy($im);
長方形を描く
<?php $imgHandler = imagecreatetruecolor(100,100); // 填充背景 $bgColor = imagecolorallocate($imgHandler, 200, 30, 40); imagefill($imgHandler,0, 0, $bgColor); // 绘制点 for ($i = 0; $i < 100; $i++) { $pointColor = imagecolorallocate($imgHandler, rand(0,200), rand(0,200), rand(0,200)); imagesetpixel($imgHandler, rand(0, 100), rand(0, 100), $pointColor); } // 绘制线 for ($i = 0; $i < 10; $i++) { $lineColor = imagecolorallocate($imgHandler, rand(100, 225), rand(100, 225), rand(0, 50)); imageline($imgHandler, rand(0, 100), rand(0, 100), rand(0, 100), rand(0, 100), $lineColor); } header("Content-Type:image/png"); imagepng($imgHandler); imagedestroy($imgHandler);
以上がPHP 画像処理 (パート 1) - 基本の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。