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

Jun 11, 2023 am 08:49 AM
php 画像処理 スタートガイド

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 までご連絡ください。

ホット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 にアップグレードする方法について説明します。

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 は、

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

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

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles