PHPを使った画像処理

WBOY
WBOYオリジナル
2023-06-22 09:25:531394ブラウズ

PHP は広く使用されているサーバーサイド スクリプト言語であり、その強力な画像処理機能により、Web サイト開発者にとって非常に便利なツールが提供されます。 PHP を通じて GD (画像処理ライブラリ) 拡張機能を使用すると、拡大縮小、切り取り、回転、透かしの追加、サムネイルの生成などの画像の操作を行うことができます。この記事では、PHP を使用して画像処理を行う方法を学びます。

  1. GD 拡張機能のインストール

画像処理に PHP の使用を開始する前に、GD 拡張機能がインストールされていることを確認する必要があります。次のコマンドを使用して、GD 拡張機能がインストールされているかどうかを確認できます。

php -m|grep gd

結果が見つからない場合は、GD 拡張機能がインストールされていないことを意味します。 Linux システムでは、次のコマンドを使用してインストールできます。

sudo apt-get install php-gd //使用apt安装
sudo yum install php-gd //使用yum安装

Windows システムでは、インストール用の php.ini ファイルの拡張機能設定に「extension=php_gd2.dll」を追加できます。

  1. 画像の処理

2.1 画像ファイルを開く

PHP では、imagecreatefromjpeg() 関数、imagecreatefrompng() 関数、imagecreatefromgif() を使用できます。対応する画像ファイルを開く関数。

たとえば、次のコードを使用して、「test.jpg」という名前の JPEG 形式の画像を開くことができます。

$img = imagecreatefromjpeg("test.jpg");

2.2 画像サイズの調整

imagecopyresampled を使用できます。 () 画像のサイズを調整する関数 この関数の具体的な使い方は次のとおりです:

bool imagecopyresampled(resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)

このうち、dst_imageはターゲット画像、src_imageはソース画像、dst_xとdst_yは開始座標を表しますターゲット イメージのコピー領域の、src_x と src_y はソース イメージのコピー領域の開始座標を表します。dst_w と dst_h はターゲット イメージのコピー領域の幅と高さを表します。src_w と src_h は幅と高さを表しますソース画像内のコピーされた領域の。

たとえば、画像のサイズを 200x200 のサイズに変更できます。

$img = imagecreatefromjpeg("test.jpg");
$dst_img = imagecreatetruecolor(200, 200);
imagecopyresampled($dst_img, $img, 0, 0, 0, 0, 200, 200, imagesx($img), imagesy($img));

このうち、imagecreatetruecolor() 関数は、新しい True Color 画像を作成するために使用されます。 imagex() 関数と imagesy() 関数は、それぞれソース画像の幅と高さを取得するために使用されます。

2.3 画像の回転

画像を回転するには、imagerotate() 関数を使用できます。この関数の具体的な使用方法は次のとおりです。回転された画像、angle は回転角度を示し、bgd_color は画像の背景色を示し、ignore_transparent は透明色を無視するかどうかを示します。

たとえば、画像を 45 度回転できます:

bool imagerotate(resource image, float angle, int bgd_color[, int ignore_transparent])

2.4 ウォーターマークの追加

imagecopy() 関数を使用してウォーターマークを追加できます。この関数は次のようになります。

$img = imagecreatefromjpeg("test.jpg");
$dst_img = imagerotate($img, 45, 0);

このうち、 dst_image はターゲット画像を表し、 src_image はソース画像を表します。 dst_x と dst_y はターゲット画像内のコピー領域の開始座標を表します。 src_x と src_y は開始座標を表しますソース画像のコピー領域の src_w と src_h は、ソース画像のコピー領域の幅と高さを表します。

たとえば、画像に透かしを追加できます:

bool imagecopy(resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)

このうち、watermark.png は背景が透明な PNG 形式の透かし画像で、テスト用に追加します。 jpg 画像の右下隅、境界線から 10 ピクセル離れた場所。

2.5 サムネイルの生成

imagecopyresampled() 関数を使用してサムネイルを生成できます。この関数の具体的な使用方法は次のとおりです。ターゲット イメージ、src_image はソース イメージを表します。dst_x と dst_y はターゲット イメージ内のコピーされた領域の開始座標を表します。src_x と src_y はソース イメージ内のコピーされた領域の開始座標を表します。dst_w と dst_h はソース イメージの幅と高さを表します。ターゲット イメージ内のコピーされた領域、src_w および src_h は、ソース イメージ内のコピーされた領域の幅と高さを表します。

たとえば、幅 100 ピクセルのサムネイルを生成できます。

$img = imagecreatefromjpeg("test.jpg");
$watermark = imagecreatefrompng("watermark.png");
imagecopy($img, $watermark, imagesx($img)-imagesx($watermark)-10, imagesy($img)-imagesy($watermark)-10, 0, 0, imagesx($watermark), imagesy($watermark));

画像ファイルを保存します

    最後に、次を使用する必要があります。 imagejpeg() 関数、imagepng() 関数、imagegif() 関数を使用して、処理した画像を保存します。
  1. たとえば、次のコードを使用して、処理したばかりの画像をファイルに保存できます。
bool imagecopyresampled(resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)

概要

PHP の画像処理機能を使用すると、次のことが簡単に行えます。サイズ変更、回転、透かしの追加、サムネイルの生成など、画像に対してさまざまな操作を実装します。これは開発者にとって非常に便利な機能です。この記事の紹介を通じて、読者の皆様が PHP 画像処理の基本的な使い方をマスターし、Web サイト開発作業をより便利にしていただけることを願っています。

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

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