PHPで画像をマージするにはimageCopyMerge関数を使用します。
imageCopyMergeは二つの画像ファイルを座標指定して一つのファイルにするので、引数が多いです。
以下、引数です。
引数 | 意味 |
第一引数 | 画像先 |
第二引数 | 画像元 |
第三引数 | 画像先のX座標 |
第四引数 | 画像先のY座標 |
第五引数 | 画像元のX座標 |
第六引数 | 画像元のY座標 |
第七引数 | 画像元の幅 |
第八引数 | 画像元の高さ |
第九引数 | 透明度(0~100) |
第九引数は0にすると何も起こりません。100にするとimagecopy()と同じ動作になります。
以下がマージするファイルです。
sample1.png
sample2.png
まず、imagecreatefrompngで、画像ファイルのインスタンスを生成します。その後、imageCopyMergeでマージします。
透過度は50%にしています。画像元と画像先が上下で分かれるようにマージしています。
<?php
//画像作成
$img1 = imagecreatefrompng('sample1.png');
$img2 = imagecreatefrompng('sample2.png');
// マージ
imageCopyMerge($img1,$img2,0,0,0,0,100,20,50);
//画像出力
header("Content-type: image/png");
header("Cache-control: no-cache");
imagepng($img1,'sample3.png');
//メモリの解放
imagedestroy($img1);
?>
上記のphpを実行すると以下のファイルが作成されます。