PUKIWIKI:添付画像の疑似サムネイル表示化
Last-modified: 2013-08-24 (土) 02:14:21 (3496d)
Top / PUKIWIKI:添付画像の疑似サムネイル表示化
PUKIWIKI:添付画像の疑似サムネイル表示化 †
自作プラグインを入れても良かったんですが、勉強のためにPUKIWIKIソースをちょっといじってみました。
目的/機能仕様 †
- 目的
- 端的に、サイズ(容量ではなくPIXEL)が大きい画像を添付して表示するときに、画像がはみだしてウザかった。
- 機能仕様
- 指定したサイズ(幅、高さ)が大きい画像については、縮小して表示させる。
※疑似サムネイル表示化と書いているとおり、サムネイル画像を生成するのではなく、表示を縮小させるだけです。ですので、ファイルの転送量が小さくなる、とかいう効果はありません。
対象バージョン †
- PukiWiki1.4.7_notb UTF-8版
他は知りません笑
改造 †
さてさて、改造対象は、「plugin/ref.inc.php」です。
まず、19行目「Default Settings」以降に次の2行を追加します。
define('PLUGIN_REF_THUMB_WIDTH', 450); // thumbnale width size define('PLUGIN_REF_THUMB_HEIGHT', 450); // thumbnale height size
各意味はコメントの通りですが、
- PLUGIN_REF_THUMB_WIDTH
- サムネイルの幅サイズを指定します。
この幅サイズ以上の画像の場合、縦横の比率を保持してこのサイズに縮小して表示します。 - PLUGIN_REF_THUMB_HEIGHT
- サムネイルの高さサイズを指定します。
この高さサイズ以上の画像の場合、縦横の比率を保持してこのサイズに縮小して表示します。
両定数共にデフォルトは450にしてありますが、必要に応じて変更してください。
次に、343行目付近の以下の行の直前に
if ($width && $height) $info = "width=\"$width\" height=\"$height\" ";
次の文を追加します。(結果としてはこうなります。)
// patch start if ($width > PLUGIN_REF_THUMB_WIDTH) { $tmp = (int)( PLUGIN_REF_THUMB_WIDTH / $width * 100); $width = PLUGIN_REF_THUMB_WIDTH; $height = (int)($height * $tmp / 100); } if ($height > PLUGIN_REF_THUMB_HEIGHT){ $tmp = (int)( PLUGIN_REF_THUMB_HEIGHT / $height * 100); $width = (int)($width * $tmp / 100); $height = PLUGIN_REF_THUMB_HEIGHT; } // patch end if ($width && $height) $info = "width=\"$width\" height=\"$height\" ";
※「patch start」から「patch end」までを追加します。
すると、先に定数で指定したサイズより大きいものは、そのサイズまで縮小して表示できるようになります。