PHPで複数の画像を繋げて並べ1つの画像を作成する方法

今回は複数の画像を並べて↑のような1つの画像を作成してみました。

画像Aに画像Bを重ねるような処理は以前作成した記事でも確認出来ました。

≫ PHPで画像に別の画像を重ねる方法

複数の画像を重ねたり並べて配置したりする場合にはどうしたらいいのか疑問に思って実験してみました。

 

赤や青の画像はそれぞれ個別に作成してあります。

1つ1つの画像は500×500で、完成後の画像は1500×1000になります。

ではさっそく作っていきましょう。

PHPで複数の画像を繋げて1つの画像を作成するコード

コード解説

解説の前に・・・上記コードよりうまく書く方法があれば教えてください(笑)

なんだか自分で書いたものですが、全体的にださい感じがしますね。

 

各色の画像を重ねる処理をループで書ければまだよかったのですが、変に複雑な処理を書かずに1つ1つばらすことで初心者の方が見ても分かりやすいと思いバラバラにしました。

 

さて全体的な処理の手順としては以下の通りです。

  1. ベースの画像を定義する。
  2. 各色の画像を読み込む。
  3. 各色の画像のサイズを取得する。
  4. 各色の画像をそれぞれ配置していく。
  5. 完成形として出力する。

 

1.のベース画像はimagecreate()を使って定義します。

その後、次の行で色を指定していますが、これは無くてもOKです。

 

2.はimagecreatefromjpeg()を使って既に作成していた正方形の赤や青の画像を読み込みます。

3.でサイズを取得していますが、今回は画像を自分で作成したのでサイズは元々ぴったりですが、そうで無い場合のチェックやリサイズのために取得しています。

 

4.でimagecopyresampled()を使ってベース画像に各色画像を配置します。

配置先座標や配置後のサイズなどを指定できます。

 

2~4の作業は各色で配置座標を変えながら同様の処理を繰り返します。

 

5.最後にファイル名を指定してベース画像を出力すれば完成です。

 

今回は僕がずぼらなので単色の画像を複数作成し配置するサンプルを作成しました。

単色なのでもはや各色の画像を読み込まなくても最終的に同じものを作れるというご指摘はなしでお願いします。

まとめ

画像Aと画像Bを重ねる処理はimagecopyresampled()を使えばできました。

複数の画像を扱うにはどうしたらいいのかと思いましたが、imagecopyresampled()を何度も実行するだけでしたね!

並べる際には画像のサイズと座標に注意する必要があります。

注意いながら使ってください。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA