ホームページ  >  記事  >  バックエンド開発  >  PHP 画像処理の初心者ガイド

PHP 画像処理の初心者ガイド

王林
王林オリジナル
2023-06-11 08:49:141113ブラウズ

PHP は非常に人気のあるサーバーサイド プログラミング言語であり、Web 開発に広く使用されています。 Web 開発では、画像処理は非常に一般的な要件であり、PHP で画像処理を実装することも非常に簡単です。この記事では、PHP画像処理の入門ガイドを簡単に紹介します。

1. 環境要件

PHP 画像処理を使用するには、まず PHP GD ライブラリのサポートが必要です。このライブラリは、画像のファイルへの書き込みやブラウザへの出力、画像のトリミングや拡大縮小、テキストの追加、画像のグレースケール化や反転などの機能を提供します。したがって、サーバーに PHP GD ライブラリがインストールされていることを確認してください。

2. 一般的に使用される関数

  1. imagecreatetruecolor() 関数

imagecreatetruecolor() 関数は、True Color 画像リソースを作成するために使用されます。例:

$image = imagecreatetruecolor(200, 200);
  1. imagecolorallocate() function

imagecolorallocate() 関数は、画像リソースに色を割り当てるために使用されます。例:

$color = imagecolorallocate($image, 0, 0, 0);

このうち、$image は先ほど作成した画像リソースで、0, 0, 0 は黒の RGB 値を表します。

  1. imagefilledrectangle() 関数

imagefilledrectangle() 関数は、画像リソース内に色で塗りつぶされた四角形を描画するために使用されます。例:

imagefilledrectangle($image, 0, 0, 200, 200, $color);

$color は、以前に割り当てられた色です。

  1. imagettftext() 関数

imagettftext() 関数は、画像リソースにテキストを追加するために使用されます。例:

$text_color = imagecolorallocate($image, 255, 255, 255);
imagettftext($image, 20, 0, 50, 100, $text_color, "arial.ttf", "Hello, PHP!");

このうち、20 はフォント サイズ、0 は傾き角度、50 と 100 はテキストの左上隅の座標、arial.ttf はフォント ファイルのパス、" Hello, PHP!" が出力されるテキストです。

  1. imagejpeg() 関数

imagejpeg() 関数は、画像を JPEG 形式で出力するために使用されます。例:

header("Content-Type: image/jpeg");
imagejpeg($image);

その中で、header() 関数は出力の Content-Type ヘッダーを設定するために使用され、出力が画像であり、$image が以前に作成された画像リソースであることをブラウザーに伝えます。 。

  1. imagedestroy() 関数

imagedestroy() 関数は、画像リソースを破棄するために使用されます。例:

imagedestroy($image);

3. 基本的な画像処理

  1. 画像の読み取りと出力

画像の読み取りと出力は非常に簡単で、imagecreatefromjpeg( ) を使用するだけです。および imagejpeg() 関数。例:

$image = imagecreatefromjpeg("example.jpg");
header("Content-Type: image/jpeg");
imagejpeg($image);
imagedestroy($image);

このうち、imagecreatefromjpeg() 関数は example.jpg を画像リソースとして読み込み、header() 関数は出力 Content-Type ヘッダーを設定し、imagejpeg() 関数は画像を出力します。そして、imagedestroy() 関数は画像リソースを破棄します。

  1. 画像のトリミングと拡大縮小

画像のトリミングと拡大縮小を行うには、imagecopyresampled() 関数を使用する必要があります。例:

$image = imagecreatefromjpeg("example.jpg");
$width = imagesx($image);
$height = imagesy($image);
$new_image = imagecreatetruecolor(100, 100);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, 100, 100, $width, $height);
header("Content-Type: image/jpeg");
imagejpeg($new_image);
imagedestroy($image);
imagedestroy($new_image);

このうち、imagecopyresampled() 関数の最初のパラメータは新しい画像リソース、2 番目のパラメータは古い画像リソース、次の 4 つのパラメータは上部の X と Y です。新しい画像リソースの左隅の座標。トリミングされた画像リソースの左上隅の X 座標と Y 座標。次の 2 つのパラメータは、新しい画像リソースの幅と高さです。次の 2 つのパラメータは、幅と高さです。古い画像リソースの。最後に、画像リソースを破棄します。

  1. ウォーターマークの追加

画像にウォーターマークを追加するには、imagecopy() 関数を使用する必要があります。例:

$image = imagecreatefromjpeg("example.jpg");
$watermark = imagecreatefrompng("watermark.png");
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
imagecopy($image, $watermark, 0, 0, 0, 0, $watermark_width, $watermark_height);
header("Content-Type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);

このうち、imagecreatefrompng() 関数はウォーターマークを画像リソースとして読み込み、imagecopy() 関数は example.jpg にウォーターマークを追加して画像リソースを破棄します。

4. 高度な画像処理

  1. 画像サムネイル

画像サムネイルは Web 開発における非常に一般的な要件であり、PHP GD ライブラリでも提供されています。サムネイルを生成する非常に便利な機能です。例:

$image = imagecreatefromjpeg("example.jpg");
$width = imagesx($image);
$height = imagesy($image);
$new_width = 100;
$new_height = ($new_width / $width) * $height;
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
header("Content-Type: image/jpeg");
imagejpeg($new_image);
imagedestroy($image);
imagedestroy($new_image);

まず、元の画像を読み取り、新しい幅と高さを計算し、imagecreatetruecolor() 関数を使用して新しい画像リソースを作成し、imagecopyresampled() 関数を使用して古い画像リソースを縮小します。画像を新しい幅と高さに変更し、最後に新しい画像を出力し、画像リソースを破棄します。

  1. 画像フィルター

画像フィルターを使用すると、画像に非常にクールな効果を追加できます。 PHP GD ライブラリでは、imagefilter() 関数を使用してこれを簡単に実現できます。例:

$image = imagecreatefromjpeg("example.jpg");
imagefilter($image, IMG_FILTER_GRAYSCALE);
header("Content-Type: image/jpeg");
imagejpeg($image);
imagedestroy($image);

このうち、IMG_FILTER_GRAYSCALE は画像をグレースケールに変更できるグレースケール フィルターです。

  1. 画像のエンコードとデコード

Web 開発では、HTML で表示するために画像を Base64 エンコードに変換するのが一般的です。 PHP GD ライブラリは、Base64 エンコーディングを直接出力する imagejpeg() 関数と imagepng() 関数を提供します。例:

$image = imagecreatefromjpeg("example.jpg");
ob_start();
imagejpeg($image);
$data = ob_get_contents();
ob_clean();
$base64 = "data:image/jpeg;base64," . base64_encode($data);
echo "<img src="$base64">";
imagedestroy($image);

その中で、ob_start() 関数は出力キャッシュをオンにし、imagejpeg() 関数は画像をキャッシュに出力し、ob_get_contents() 関数はキャッシュ内のデータを取得し、ob_clean () 関数はキャッシュをクリアし、base64_encode() 関数はキャッシュ内のデータを Base64 でエンコードし、最後に src 属性の値として Base64 エンコードを使用して img タグを生成します。画像リソースを破棄します。

結論

以上は、PHP 画像処理の入門ガイドであり、PHP GD ライブラリが提供する基本機能と共通機能を理解し、画像の実装方法を理解することができます。例による処理と高度な画像処理。初心者はすでにある程度の理解と実践的な基礎を持っていると思います。もちろん、ここで紹介するのはごく基本的で簡単な機能にすぎませんので、読者の皆様にはぜひ深く学び、実践していただき、ご自身の Web 開発の可能性を広げていただければ幸いです。

以上がPHP 画像処理の初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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