ホームページ バックエンド開発 PHPチュートリアル PHPでの画像処理ライブラリGDの使い方

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

Jun 27, 2023 am 08:46 AM
php 画像処理 gd

画像処理は、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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles