Eyecatch php

PHP

正方形のサムネイル画像をPHP(GD)で作る方法。

2013/07/19

作っている画像管理ページで、WordPressのような正方形のサムネイルが並ぶ一覧ページを作りたくなったので、挑戦してみました。

正方形のサムネイル画像を作る!

手順1 イメージリソースを取得

まずはイメージリソースを取得。
そこから元画像の横・縦ピクセルサイズを取得

imagecreatefromjpeg の仕様を見ると、「新しい画像をファイルあるいは URL から作成する」とあるので、$orgFileには、ローカルのファイルパスやURLが指定できるようです。

PHPマニュアルには以下のようにあります。

fopen wrappers が有効の場合、この関数のファイル名として URL を使用することができます。

PHPの設定に準拠するようですね。

imagesx() と imagesy() は、イメージリソースからそれぞれピクセルサイズを取得する関数です。
便利!

手順2 一辺の長さを算出

次に、取得したピクセルサイズ比較して、短い方に合わせた一辺の長さを算出し、指定。
算数が全然できない人なので、意外と苦戦した・・・(^_^;)

手順3 画像の出力

最後に画像を出力。例は jpg の場合。

これでOK。
この画像が

長方形画像

こうなってくれます。

正方形サムネイル

ルーチン公開

と、いうことで、jpg、gif、pngに対応したものを作ったので公開。
もっと良い書き方があると思うので、参考程度に。

ちなみに以下のルーチンでは、透過gifをアップロードした場合に透過部が黒くなってしまうことは確認しています。
どうやって直すのかよく分かっていません(えー)

意外と簡単に出来るので、覚えておいて損はないかと思います。

-PHP
-, , ,