eyecatch php

PHP

【PHP】ページ表示時に動的にサムネイル画像を作る4つの方法

2018/03/05

PHP及び、CakePHPで作成しているサイトのリストページ等で画像を扱う際に、指定画像のサムネイルがあると便利ということで、サムネイルを作る便利スクリプトやサイトを4種類紹介します。

動的にサムネイルを作成するスクリプト / サービス

ちなみにどうでもいいことですが、サムネイルとは「thumbnail」と書き、直訳すれば「親指の爪」。親指(thumb)の爪(nail)のように小さく簡潔であるという意味から来ています。
間違っても画像名を sample_sum.jpg とかしちゃ恥ずかしい目に合うので注意ですよ。
気をつけろ、10年ほど前のオレ。

(1) 動的にサムネイルを作成、表示

aki-web PHP Scripts
http://aki.adam.ne.jp/php/script/thumb.php

imgタグで画像を表示の際に、リアルタイムでサムネイル化し表示してくれるスクリプト。

使い方

<img src="thumb.php?path=(ファイルへの相対パス)[&maxwidth=(横の最大サイズ)][&maxheight=(縦の最大サイズ)][&maxsize=(長辺の最大サイズ)]" />
※ファイルへの相対パスは,thumb.php からの相対パスで指定します。
※maxsize は maxwidth と maxheight にそれぞれ同じ値を設定したのと同じ扱いです。

とのことなので、横を100pxとして表示する方法は以下のようにすればOK。

(2) phpThumbnailer

Hidayet Doğan
http://hi.do/?s=phpThumbnailer

トルコ語で書かれているサイトですが、PHPは読めます。ええ。
tar.gnをDLして、解凍してください。

動作環境はPHP+GD。

これだけで、サムネイルが表示されます。

saveメソッドを使えば、保存も可能。

恐ろしく簡単。

(3) CakePHPのThumbnailヘルパー

[CakePHP] Thumbnailヘルパー(サムネイル画像) Web Sytem | AIDREAM
http://blog.aidream.jp/cakephp/cakephp-thumbnail-helper-185.html

前述した「phpThumbnailer」と組み合わせて使う、CakePHP用のヘルパーが AIDREAM 様サイトにて公開されていますのでご紹介。
サムネイル化対象の画像と同じディレクトリ内に sample_100_50.jpg のような形でサムネイル画像を作成してくれます。

なんですが、所々不具合があり動かないので、一部修正したものをコチラで公開させて頂きます。
マズかったら一言お願い致します。

使い方

ライブラリ設置

class.Thumbnail.php ライブラリを /app/vendors/classThumbnail/ ディレクトリを作成し以下に設置

NO IMAGE画像を設置

no_img_default.gifを、app/webroot ディレクトリ内に設置

コントローラー内でヘルパー宣言

app.phpへの設定

ビュー内での記述

ビュー内の表記で、絶対パスにする場合は最初に「/」を連結させてください。

(4) ImageThumbnailer

ImageThumbnailer powered by GoogleAppEngine for Java
http://imgthum.appspot.com/

最後に、サムネイルを作成してくれ、1日キャッシュしてくれるサービス。
自力で作成することなく、リンクすれば作ってくれるという有り難いサービスとなっております。

このサイトは、URLの末端に画像へのURLを指定することによって縦横最大400pxのサムネイル画像を直接出力するGoogleAppEngineを利用したクラウドサービスです。出力されるサムネイルはPNG形式で出力されます。
出力するサムネイルの大きさを指定することも可能です。指定しない場合は100px * 100pxのサムネイルを生成します。
生成されたサムネイルは、1日の間キャッシュされます。

使い方

ということで、横サイズを100pxとする場合のサンプルは以下の様に指定。

以上です。

-PHP
-,