トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

PUKIWIKI:添付画像の疑似サムネイル表示化

Last-modified: 2013-08-24 (土) 02:14:21 (2159d)
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」までを追加します。

すると、先に定数で指定したサイズより大きいものは、そのサイズまで縮小して表示できるようになります。