現在の位置: ホーム> 最新記事一覧> ImageCopymerge関数の基本的な使用法の詳細な説明:2つの画像をマージするために使用する方法は?

ImageCopymerge関数の基本的な使用法の詳細な説明:2つの画像をマージするために使用する方法は?

M66 2025-06-21

PHPでは、 ImageCopyMerge()関数は画像処理の一般的な方法です。パーツまたはすべての画像を別の画像にマージできます。この機能の主な目的は、透かしの作成や統合写真などのシーンで一般的に使用される画像に合わせ、重ね合わせ、作物、その他の操作をマージ、重ね、作物、およびその他の操作です。この記事では、ImageCopymerge()関数の基本的な使用法と、2つの画像をマージするために使用する方法を詳細に紹介します。

1。ImageCopyMerge ()関数の紹介

ImageCopyMerge()関数のプロトタイプは次のとおりです。

 bool imagecopymerge(resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_width, int $src_height, int $pct)

パラメーター説明:

  • $ DST_IMAGE :ターゲット画像リソース。別のイメージをマージする画像を示します。

  • $ src_image :ソース画像リソース。ターゲット画像にマージする画像を示します。

  • $ dst_x、$ dst_y :ターゲット画像のソース画像を貼り付ける開始位置(つまり、左上隅の座標)。

  • $ src_x、$ src_y :ソース画像の開始位置(つまり、左上隅の座標)。

  • $ src_width、$ src_height :ソース画像にコピーされる領域の幅と高さ。

  • $ PCT :マージされた透明性の割合、0は完全に透明性、100は完全に不透明です。

この関数の関数は、指定された位置からターゲット画像( $ dst_image)にソース画像($ src_image)をコピーすることです。コピーされた領域は、ソース画像の幅と高さを指定できますが、マージされた透明度は$ PCTで制御されます。

2。ImageCopyMerge ()関数を使用する基本的な手順

次に、 ImageCopymerge()を使用して2つの画像を実用的な例でマージする方法を示します。

ステップ1:画像をロードします

まず、2つの画像をロードする必要があります。 PHPは、 ImageCreatefromJpeg()ImageCreateFrommpng()など、さまざまな形式で画像をロードするための複数の関数を提供します。背景画像と重ね合わせる必要があるロゴ画像があると仮定します。

 // ターゲット画像をロードします(背景画像)
$bg_image = imagecreatefromjpeg('background.jpg');

// ソース画像をロードします(logo写真)
$logo_image = imagecreatefrompng('logo.png');

ステップ2: imagecopymerge()を使用して画像をマージする

logo.pngbackground.jpgにマージする必要があり、ロゴを50%に透過的にする必要があるとします。次のコードを使用して実装できます。

 // マージの場所を設定します(目标写真像的左上角位置)
$dst_x = 50;
$dst_y = 50;

$src_x = 0;
$src_y = 0;
$src_width = imagesx($logo_image);
$src_height = imagesy($logo_image);

// に透明性を設定します50%
$pct = 50;

// 合并写真像
imagecopymerge($bg_image, $logo_image, $dst_x, $dst_y, $src_x, $src_y, $src_width, $src_height, $pct);

ステップ3:合成された画像を出力します

マージ操作が完了したら、結果画像を出力する必要があります。 ImageJpeg() (またはその他の適切な関数、画像形式に応じて)を使用して、マージした画像をファイルとして保存するか、ブラウザに直接表示できます。

 // 输出合成后的写真像到浏览器
header('Content-Type: image/jpeg');
imagejpeg($bg_image);

// 無料のリソース
imagedestroy($bg_image);
imagedestroy($logo_image);

または、画像をファイルに保存できます。

 // 保存合成后的写真像到文件
imagejpeg($bg_image, 'result.jpg');

3。注意すべきこと

  • 透明度設定ImageCopyMerge()は、透明度の設定( $ PCTパラメーター)をサポートしますが、透明度はPNGおよびGIF形式の画像に対してのみ有効です。 JPEG画像をマージすると、JPEG自体が透明チャネルをサポートしていないため、透明性効果は明ら​​かではありません。

  • リソースの破壊:画像を処理した後、 Imagedestroy()を使用して画像リソースを解放してメモリの漏れを防ぐことを忘れないでください。

  • 画像サイズ:ソース画像のサイズは、ターゲット画像のサイズに応じて合理的に配置する必要があります。 ImagesX()Imagesy()を使用して、画像の幅と高さを取得して、必要に応じてソース画像の位置とサイズを調整できます。

4。サンプルの概要

上記の手順を通じて、 ImageCopyMerge()関数を使用して、画像の合成、オーバーレイ、その他の効果を実現できます。これは、透かし、パズル、その他の操作を作成するのに特に適しています。合理的にマージの位置、透明性、サイズを設定することにより、さまざまな画像合成ニーズを柔軟に処理できます。