top

MTにお絵かき機能を付ける(2) 覚え書きあれこれ

雪だるま

こちらで書いた「MTにお絵かき機能を付けるためのBBS Note改造法」ですが、サムネイルからリンクさせる場合、実際には紹介しているtarget="_blank"方式ではなく、JavaScriptで画像の大きさに合わせたウインドウサイズで開く方法を導入しています。MTでファイルのアップロードで出てくるタグをそのまま利用しています。

○○○の部分に画像のアドレスを表す変数を、●●●の部分に画像の縦横のサイズを表す変数を入れることで、ポップアップ用のタグになります。ただし、この方法には1つ注意点があります…。

ブラウザで画像を直接開くと、上と左に余白が出来てしまうんですよね。そのため、ウインドウサイズを画像の大きさぴったりにすると、画像の右と下が少し切れてしまうんです。画像が全部収まってバランスのいい大きさにするためには、画像のサイズに縦横それぞれ20~30pxほど上乗せしてやる必要があります。

しかしskin.cgiには画像の大きさを表す変数はあっても、それに20~30px上乗せしたサイズを表す変数はありません。そのため、自分でスクリプトを書いて変数を新たに作ってやる必要があります。でもさすがにこのレベルになると、ある程度Perlが分かってないと無理です…。私も分かってません(汗)が、他のスクリプトや本を調べて見よう見まねで追記した構文がどうやら動いてくれているようなので、なんとか実装できている、という感じです。
自分がこんな怪しげなレベルなので、その辺りは分かる人は自分で調べてやって下さいということでよろしくです。スキンのHTML部分なら記述を多少間違えても表示が崩れるだけで済むけど、cgiの記述ミスは場合によってはサーバーダウンを引き起こしたりとか大変なことになる恐れがあるので、ちょっと責任持てないので(^^;。

■描いてみて気が付いたことなど
初期値ではサムネイルの画質がちょっと悪いようです。BBSNoteとして使う分ならこれでいいと思うけど、MTに貼る場合はサムネイルにもある程度の画質が欲しいので、paint.cgiの設定で圧縮度を25→15に引き下げ。これでまあまあ見られるようになりました。

サムネイルのサイズも初期値では100×100pxに固定されているので、50%×50%の方に変更。そうしないと長方形の場合、絵の比率が狂うので。