PHPで画像をリサイズしよう!表示・保存方法もわかる

こんにちは!独学プログラマー&ライターのつぶらやです。

PHPで開発をしていると、画像を取り扱う時もあるでしょう。

そんな時に、渡された画像のサイズのが画面に合わないなどという事もあるかと思います。

もしくはアップロードした画像をリサイズして出力する必要もあるかもしれません。

本日はそんな時に使える、PHPでの画像リサイズについて以下の内容でお話しようと思います。

【解説】PHPのGDについて
【基本編】GDでリサイズする方法
【番外編】Imagickでリサイズする方法

PHPで画像のお悩みをお持ちの方も是非読んでください。

【解説】PHPのGDについて

PHPにはGD(GDライブラリ)というものがあります。

これを使用する事によってPHPで画像処理を行う事ができます。

GDに出来ること

今回サンプルコードで使用する関数と、役割を書きます。

getimagesize・・・画像のサイズの取得

imagecopyresampled・・・コピーと伸縮

imagejpeg(※「image」の後は出力する画像形式によって変化)・・・画像の出力

他のGDの関数も知りたい場合は、公式を参考にしてください。

http://php.net/manual/ja/book.image.php

対応している画像形式

以下のような拡張子の画像形式に対応しています。

.png
.gif
.jpeg(.jpg)
.xbm
.bmp

前章で書きましたが、扱う画像の拡張子によって使用する関数が変わる場合があるので注意です。

imagejpegはjpegを出力する関数ですが、gifの場合はimagegifとなります。

【基本編】GD関数でリサイズする方法

それでは、GD関数で画像をリサイズして出力してみましょう。

今回は、実行するphpGd.phpファイルを置いたフォルダ内にtest.jpgがある事を前提とします。


流れとしては以下です。


getimagesizeimagecreatefromjpegimagecreatetruecolorで画像を作る準備をします。
imagecopyresampledで画像のコピーとリサイズをします。
imagejpegで出力します。

因みにtest.jpg等、ファイル名を記載している部分はパス名を記載できます。

好きな場所に出力したり、好きな場所の画像をコピーする事ができます。

GDの使用方法についてご理解頂けましたでしょうか。

では、続いて次章ではGD以外のリサイズ方法を紹介します。

【番外編】Imagickでリサイズする方法

最後に、GD以外のリサイズ方法としてImagickを使用する方法をご紹介します。

ImagickはPHPの拡張モジュールです。

ImageMagickをPHPで使用するためのものなので、ImageMagickとImagickは別物です。

使用方法としては、phpinfo()を確認してimagickの項目があれば使用できます。

なければインストールをする必要があります。

以下のようなコードを書くことでリサイズができます。

対応している画像形式も出来ることもGDより多いのですが、画像をリサイズするだけの場合はGDで十分かと思います。

高度に画像を加工したい場合が将来発生するかもしれませんので、Imagickというキーワードも覚えておいてください。

まとめ

本日はPHPの画像のリサイズについてお話しました。

関わる案件によっては、画像について色々な要望が出てくる事もあると思います。

その時、どういう方法があるかを知っておくことが大切です。

GDだけではなく、Imagickも記憶の片隅に持っておいてください。

それでは、また。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

つぶらや

つぶらや

独学PG&SE、東京在住30代女性。
誰でもプログラマーになれるがモットーで、わかりやすい記事を目指しています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説