デジカメの画像をたくさん表示すると重い
デジカメは進化を続け1000万画素を超えるものも出ています。手軽に高画質な写真が取れるのはうれしいですが、写真ギャラリーや一覧表示をすると動作が重くなるのが難点です。
そこで「resizeimage.inc.php」。サムネイルを自動で作成してくれる心強いプラグイン。
機能としては
- 任意のクオリティ(圧縮率)のサムネイルを作成
- 一度作成したサムネイルをキャッシュとして保存することでサーバの負担を軽減
- 「ref.inc.php」と組み合わせることでwikiファイルを修正しなくても自動で運用可能
と、これ以上何を求めるのか?wといった機能を持っている。(もしも改良するなら元ファイルのタイムスタンプを監視して差し替える機能くらいか?同じ名前でアップし直すことはあまり考えづらいですが…。)
導入方法
1.こちらで「resizeimage.inc.php ver. 1.21 」と「ref.inc.php」をダウンロード。
「resizeimage.inc.php ver. 1.21 」は「resizeimage.inc.php」と改名しpluginフォルダへ入れる。
「ref.inc.php」の116行目あたり
$script = get_script_uri('rel');
この記述を
$script = get_script_uri();
このように変更して、pluginフォルダへ入れる。
2.キャッシュを保存するフォルダを作成する。
デフォルトではPukiWikiのルートフォルダに「thumb」というフォルダを作るだけ。別の名前のフォルダを作る必要があるなら62行目あたりに
define('RESIZEIMAGE_CACHE_DIR', DATA_HOME . 'thumb/');
というタグが用意されているので、適宜変更しよう。
設定
今回は特に変更しなかった。「resizeimage.inc.php」の数字の部分は0~100のクオリティを選べるようになっている。
define('PLUGIN_RESIZEIMAGE_DEFAULTQUALITY', '70');
図鑑としてある程度の画質は欲しいので、70のままにしておく。
サンプルはこちら「アクアリウムWiki淡水魚図鑑」
多くの画像が配置されてますが、小さくリサイズした画像をキャッシュから読み込んでいるため、表示はそれほど重くないと思います。
追記:透過PNGなど、透明のプロパティを持つ画像はリサイズされる過程で透明部分が黒くなってしまう。透過PNGを使いたい場合は画像の指定をURLにしよう。「ルードディレクトリ/image」フォルダにでも入れるといいだろう。
普通透過ファイルを使うことはあまり無いので、問題ないが、もしかしたらリサイズをしない指定を出来るように改造が必要かもしれない。