ホームページ  >  記事  >  バックエンド開発  >  PHPでの画像処理ライブラリGDの使い方

PHPでの画像処理ライブラリGDの使い方

WBOY
WBOYオリジナル
2023-06-27 08:46:361155ブラウズ

画像処理は、Web サイトのデザインから画像処理を必要とするグラフィカル データ視覚化やコンピューター ビジョン アプリケーションに至るまで、現代のインターネット アプリケーションで非常に一般的です。 PHP は、GD と呼ばれる画像処理ライブラリを提供します。これは、最も一般的な画像形式の処理をサポートし、回転、拡大縮小、トリミング、フィルターなどの従来の操作と変換方法を提供します。今回は、PHP アプリケーションで画像処理を行うための GD 画像処理ライブラリの使用方法を紹介します。

1. GD 拡張機能をインストールする

GD ライブラリの使用を開始する前に、php.ini 設定ファイルで拡張機能が有効になっていることを確認する必要があります。 Linux サーバーを使用している場合は、次のコマンドを実行して、GD 拡張機能がインストールされているかどうかを確認できます:

sudo apt-get install php-gd

他のオペレーティング システムおよび PHP の場合バージョンについては、インストール マニュアルをよくお読みください。

2. 画像のロード

PHP では、GD ライブラリを使用して画像をロードするのは非常に簡単です:

$filename = "image.jpg";
$ image = imagecreatefromjpeg ($filename);

この例では、最初に画像ファイルへのパスを指定し、次に imagecreatefromjpeg() 関数を使用して画像をロードします。 imagecreatefrompng() または imagecreatefromgif() 関数を使用して、PNG および GIF 形式の画像をロードすることもできます。

3. サイズ変更

ほとんどの画像処理アプリケーションでは、一般的なタスクの 1 つは画像のサイズを変更することです。 GD ライブラリを使用すると、imagecopyresampled() 関数を呼び出すことで画像をスケーリングできます (例:

$desiredwidth = 800;
$desiredheight = 600;
$origwidth = imagex($image) ;
$origheight = imagey($image);

$ratio = $origwidth / $origheight;

if ($desiredwidth / $desiredheight > $ratio) {

$newheight = $desiredwidth / $ratio; 
$newwidth = $desiredwidth; 

} else {

$newwidth = $desiredheight * $ratio; 
$newheight = $desiredheight; 

}

$newimage = imagecreatetruecolor($desiredwidth, $desiredheight);
imagecopyresampled($newimage, $image, 0, 0, 0, 0, $ newwidth, $newheight, $origwidth, $origheight);
$image = $newimage;

このコードでは、最初に調整する幅と高さを定義します。次に、imagesx() 関数と imagesy() 関数を使用して、元の画像の幅と高さを取得します。元の高さと幅の比率を計算して、拡大縮小された画像が同じアスペクト比を維持できるようにします。次に、新しいキャンバスを作成し、imagecopyresampled() 関数を使用して、古いキャンバスから新しいキャンバスに画像をコピーします。

4. 回転と反転

GD ライブラリは、画像の回転と反転もサポートしています。例:

$image = imagecreatefromjpeg($filename);
$ image = imagerotate($image, 45, 0);

この例では、imagerotate() 関数を使用して、読み込まれた画像を 45 度回転します。水平方向または垂直方向に反転したい場合は、次のように imageflip() 関数を使用できます:

$image = imagecreatefromjpeg($filename);
imageflip($image, IMG_FLIP_VERTICAL);

5. 画像をトリミングする

画像をトリミングする必要がある場合は、imagecrop() 関数を使用できます。例:

$image = imagecreatefromjpeg($filename);

$x = 20;
$y = 20;
$width = 200;
$height = 200;

$crop = imagecrop($image, ['x' => $x, 'y' => $y, 'width' => $width, 'height' => ; $height]);
$image = $crop;

この例では、切り抜きの水平座標と垂直座標、幅と高さを定義して切り抜きます。次に、crop() 関数は新しいキャンバスを返し、それを $image 変数に割り当てます。

6. フィルターの追加

GD ライブラリは、いくつかの組み込みフィルター効果を提供することで、画像をより興味深く鮮やかにします。たとえば、次のコードは画像をグレースケールに変換できます:

$image = imagecreatefromjpeg($filename);
imagefilter($image, IMG_FILTER_GRAYSCALE);

$crop = imagecrop( $image, ['x' => $x, 'y' => $y, 'width' => $width, 'height' => $height]);
$image = $crop ;

他の組み込みフィルターを使用するには、次の定数を使用します:

  • IMG_FILTER_NEGATE - ネガティブ効果
  • IMG_FILTER_EMBOSS - エンボス効果
  • IMG_FILTER_EDGEDETECT -エッジ検出効果
  • IMG_FILTER_GAUSSIAN_BLUR - ガウスぼかし効果
  • IMG_FILTER_SELECTIVE_BLUR - 非線形ぼかし効果

7. 画像を保存します

画像処理、最後のステップ。処理された画像をファイルに保存するか、ブラウザに出力します。 imagejpeg() 関数を使用して画像を JPEG 形式で保存します:

$destination = "new-image.jpg";
imagejpeg($image, $destination);

can imagepng() 関数または imagegif() 関数を使用して、それぞれ画像を PNG または GIF 形式で保存します。

概要

GD ライブラリは、PHP アプリケーションをよりリッチで鮮やかにする強力な画像処理ライブラリです。この記事では、GD ライブラリを使用して画像を読み込み、拡大縮小、切り抜き、フィルターし、保存する方法について説明しました。これらのテクニックを使用すると、PHP アプリケーションのグラフィック効果を次のレベルに引き上げることができます。

以上がPHPでの画像処理ライブラリGDの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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