大きい画像を moblog で添付したときに、サムネイル+リンク表示にする
最近の携帯電話のカメラは高画素化が進んでいて、かなり大きい画像をメールで送れます。 ただ、そういった画像を moblog で送ってそのまま貼り付けると、画像が大きすぎてサイトが見づらくなると思います。また、通信速度が遅い人にはうれしくないサイトになると思います。
というわけで、COREBlog のソースをいじって、以下のような処理を行うようにしてみました。
- 画像がある程度以上大きいときには、blog の画面ではサムネイル(縮小した画像)を表示する
- サムネイル表示時には、その画像をクリックするとオリジナル画像を表示する
- 画像が小さい場合は、そのまま今までどおり表示する
で、いじったコードは COREBlog.py です。1573行目あたりを書き換えます。変更前:
if pict_attached:
posting_body = """<img src="./images/%s" border="0">\n""" % (pictid) + posting_body
ここの部分にもうひとつ条件を加えて、画像が大きいときはサムネイルを表示するようにします。 ここでは縦か横が 350pixel より大きい画像は、320pixel に縮小します。:
if pict_attached:
pict = img_folder[pictid]
if pict.getProperty('width') > 350 or pict.getProperty('height') > 350:
posting_body = """<a href="./images/%s/image_view_fullscreen">
<img src="./images/%s/thumb?width=320&height=320" border="0"></a>
"""% (pictid, pictid) + posting_body
else:
posting_body = """<img src="./images/%s" border="0">\n""" % (pictid) + posting_body
ここではオリジナル画像を表示するときに /image_view_fullscreen という PageTemplate
を使用しています。この PageTemplate は plone に付属しているものなので、Plonified
スキンを使用していない環境の人は、直接画像にリンクするか、どこかから image_view_fullscreen
のコードを持ってきて入れるようにしてください。
plone に付属するものをそのまま使う場合は here/portal_url
という部分でエラーが発生するので、here/blog_ur
と書き換えて使用してください。
それから、サムネイルを表示するときの /thumb?width=320&height=320
という書き方は ImageTag CorePatch
が必要です(多分)。
ダウンロードして Products ディレクトリにインストールしてください。
それから、画像を縮小するために Python Imaging Library (PIL) も必要になります。こちらはアーカイブを展開して下記のコマンドを実行するとインストールできます。:
% python setup.py build_ext -i % python selftest.py % sudo python setup.py install
これで、土曜日のごにょごにょ用の準備はなんとかなりそうかなと。
- カテゴリ
-
coreblog
-
- ¦
- 固定リンク
- ¦
- コメント (2)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/206/tbping
鈴木たかのりです。とりあえず日記っぽく雑多なことを書き込んでいこうと思っています。
zope/plone関係の技術的な内容については
Windows PloneだとPILが同梱済みだからPILのインストールすら必要ないわけですよね。
社内イントラ用とかだとWindowsで構築するとすげー楽できそうですね。
ImageTag CorePatchはまだ本体に取り込まれてないんだろうか?
私も少し前にやったので最近のバージョンで試していないんです。
へー、Windows版のPloneはPILが入ってるんですか。いたれりつくせりですね。
多分、とりこまれてないと思いますが、未確認です。 へー、Windows版のPloneはPILが入ってるんですか。いたれりつくせりですね。
多分、とりこまれてないと思いますが、未確認です。