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()を何度も実行するだけでしたね!

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

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

 

コロナの影響でみんな大変だから俺もなんかできること

僕は福井県に住んでいるのですが、戦時中に福井大空襲にあい、その直後に大震災にあってボロボロになった話をおばあちゃんに聞きました。

それでも復活することができ、不死鳥の町と言われるようになりました。

先人達には心から感謝し尊敬します。

リーマンショック、東日本大震災、コロナと数十年に一度と言われる被害が立て続けに起きていますが、僕たちは強いです。

今は苦しいかもしれませんがきっと復活できます。

僕は低学歴ですし小さな小さな粒でしかないですが、プログラミングに関しては必死に勉強し15年以上ごはんにありつけています。

プログラミングを勉強している人の役に立てるほどのスキルはあると思っています。

なので1人でもんもんと悩んでいる若手のエンジニア向けに質問を受け付けることにします。

自宅で待機されている間もパソコンとインターネットがあればプログラミングの勉強はできます。

  • PHP
  • SQL
  • HTML・CSS
  • jQuery

とは言ってもいきなり答えを聞いていたのではなかなか成長できないと思うのです。

なので質問の際には次のことをご連携ください。

  • 何をやりたいか
  • どんなことを調べたか、検索キーワードと参考にしたページのURL
  • 調べた結果どこが分からないか
  • できるなら試したコード

メッセージいはとりあえずTwitterにでもください。

質問はこちら

すぐに返事できないかもしれませんがご了承ください。

コメントを残す

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

CAPTCHA