ホームページ >バックエンド開発 >PHPの問題 >PHPを使用して画像を変更する方法

PHPを使用して画像を変更する方法

PHPz
PHPzオリジナル
2023-04-24 09:07:081070ブラウズ

Web アプリケーションの継続的な開発に伴い、Web サイト上の画像をバッチで変更および調整する必要がよくあります。 PHP は広く使用されている Web プログラミング言語であり、画像を簡単に変更できるようにする組み込み関数やクラスも多数提供されています。この記事では、PHPを使って画像を加工する方法を紹介します。

  1. 画像形式

画像の変更を始める前に、いくつかの一般的な画像形式を理解する必要があります。一般的な画像形式には、JPEG、PNG、GIF などが含まれます。ファイル拡張子はそれぞれ .jpg、.png、.gif です。画像を処理するときは、各形式に独自の処理方法とプロパティがあるため、画像の形式を理解しておくことが重要です。

  1. 画像の作成

PHP では、imagecreatetruecolor() 関数を使用して、新しい空の画像を作成できます。構文:

$image = imagecreatetruecolor(width, height);

パラメータ width と height は、新しく作成されたイメージの幅と高さを表します。この空白の画像はベース画像として使用でき、テキストや他の画像などを追加するために使用できます。

  1. 画像のロード

既存の画像を変更する場合は、既存のファイルをロードし、必要に応じて変更する必要があります。 PHP では、imagecreatefromjpeg()、imagecreatefrompng()、および imagecreatefromgif() 関数を使用して、JPEG、PNG、GIF 形式の画像をロードできます。これらの関数は画像ファイルをメモリにロードするので、必要に応じて画像ファイルを変更できます。

syntax:

$image = imagecreatefromjpeg('example.jpg'); //加载一个JPEG格式的图像
$image = imagecreatefrompng('example.png'); //加载一个PNG格式的图像
$image = imagecreatefromgif('example.gif'); //加载一个GIF格式的图像

ここでは、「example.jpg」という名前の JPEG 形式の画像を読み込みます。さまざまな形式の画像を読み込むには、関連する関数とファイル拡張子を変更するだけです。

  1. 画像のサイズ変更

画像のサイズ変更は、画像を変更する簡単な方法です。 imagecopyresampled 関数を使用して画像のサイズを変更できます。この関数は、画像を別の画像上にコピーし、指定されたサイズにサイズ変更します。

構文:

imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_width, $dst_height, $src_width, $src_height);

パラメータ $dst_image はターゲット イメージ (つまり、新しいイメージ) で、$src_image はソース イメージ (つまり、元のイメージ) です。 $dst_x と $dst_y はターゲット イメージの座標、$src_x と $src_y はソース イメージの座標です。 $dst_width と $dst_height はターゲット イメージの幅と高さ、$src_width と $src_height はソース イメージの幅と高さです。この関数は、ソース画像の一部を指定されたサイズで抽出し、それを宛先画像にコピーします。

次は、imagecopyresampled() 関数を使用して画像を拡大縮小するサンプル コードです。

$src_image = imagecreatefromjpeg('example.jpg'); //加载原始图像
list($width, $height) = getimagesize('example.jpg'); //获取原始图像尺寸

$scale = 0.5; // 缩放比例

$dst_image = imagecreatetruecolor($width * $scale, $height * $scale); // 创建缩小的目标图像

// 缩小原始图像
imagecopyresampled($dst_image, $src_image, 0, 0, 0, 0, $width * $scale, $height * $scale, $width, $height);

// 输出图像
header('Content-Type: image/jpeg');
imagejpeg($dst_image);
imagedestroy($src_image);
imagedestroy($dst_image);
  1. 画像を埋める

画像を埋めるとは、指定した色の色を変更する 画像内の特定の領域にブロックを追加するプロセス。これは通常、背景やカラー フィルターを追加するために使用されます。 PHP では、imagefill() 関数を使用して画像を塗りつぶすことができます。この関数は、$image と $color の 2 つのパラメーターを受け入れます。 $image パラメータは塗りつぶす必要のある画像で、$color は指定された色です。

次は、画像の背景色を白で塗りつぶすサンプル コードです。

$image = imagecreatefromjpeg('example.jpg'); //加载原始图像

// 获取图像宽度和高度
list($width, $height) = getimagesize('example.jpg');

// 创建一个白色的填充
$white = imagecolorallocate($image, 255, 255, 255);

// 填充图像背景
imagefill($image, 0, 0, $white);

// 输出图像
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
  1. テキストの追加

画像にテキストを追加するのが一般的です。イメージのニーズ。 PHP の imagestring()、imagestringup()、imagettftext()、imagettfbbox() などの組み込み関数を使用すると、画像にテキストを簡単に追加できます。

以下は、画像に赤いテキストを追加するサンプル コードです:

$image = imagecreatefromjpeg('example.jpg'); //加载原始图像

// 创建颜色
$text_color = imagecolorallocate($image, 255, 0, 0); //红色

// 添加文本
imagestring($image, 5, 50, 50, 'Hello, world!', $text_color); //渲染文本

// 输出图像
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
  1. 画像を保存します

最後に、変更した画像を保存する必要があります。画像をサーバーまたはローカル コンピューターに送信します。 PHP では、imagejpeg()、imagepng()、および imagegif() 関数を使用して、画像を JPEG、PNG、または GIF 形式で指定したディレクトリに保存できます。

以下は、変更した画像を JPEG 形式で保存するサンプル コードです:

$dst_image = imagecreatefromjpeg('example.jpg'); //加載原始图像
list($width, $height) = getimagesize('example.jpg'); // 获取原始图像尺寸

// 调整图像大小
imagecopyresampled($dst_image, $src_image, 0, 0, 0, 0, $width * $scale, $height * $scale, $width, $height);

// 保存图像为JPEG格式
imagejpeg($dst_image, 'example_new.jpg', 100);

// 输出图像
header('Content-type: image/jpeg');
imagejpeg($dst_image);

// 销毁图像资源
imagedestroy($src_image);
imagedestroy($dst_image);

概要

PHP の組み込み関数とクラスを使用すると、画像をすばやく簡単に変更できます。画像の読み込み、リサイズ、塗りつぶし、文字の追加、保存などの操作をマスターすれば、簡単に美しい画像を作成することができます。対応するテクノロジーは発展し、変化し続けていますが、これらの基本的な操作は常に画像処理の重要な部分であり、私たちが慣れておく必要のある基本的なスキルです。

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

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