Lightbox JSを触ってみた。やっぱいい感じ。でも右下にcloseのアイコンとか出るはずなのに出なかったりするのは、cssの設定が悪いのかな。
lightbox用に小さい画像と、大きい画像(クリックしたときに表示される画像)の二つを用意しないといけないが、この作業を、いちち手でやるのは面倒だということで、windowsでperlスクリプトを ドラッグドロップ化したのでお手軽になった。でもユッキー様をあやしながら書いたのでスクリプトはやっつけ。名前考えるのが面倒というありがちな理由で、とりあえずプロセス番号がファイル名で且つCドライブに吐き出すようにしておいた。
use strict; use Image::Magick; ### image size my $width = 480; my $height = 360; my $width_small = 160; my $height_small = 120; my $imgfile = shift or die "couldn't read ImageFile\n"; $imgfile =~ /\\(\w+).(jpg|JPG)$/; my $filename = $1; ### output #my $output = "C:/" . $filename .".jpg"; #my $output_small = "C:/" . $filename ."_small.jpg"; my $output = "C:/".$$.".jpg"; my $output_small = "C:/".$$."_small.jpg"; my $image = Image::Magick->new; $image->Read($imgfile); $image->Resize(width=>$width, height=>$height, blur=>0.8); $image->Set(quality=>60); $image->Write($output); $image->Resize(width=>$width_small, height=>$height_small); $image->Write($output_small); undef $image; exit;
ちなみに、Image::Magickモジュールのインストールは楽だった。imagemagickをインストールする際に「perlでモジュールとして使う」にチェックを入れるだけ。
実際は、もうちょっとちゃんと書いて、サーバーにftpしつつ、アップロードした画像をlightboxで扱うためのhtmlを吐き出すコードまで書いておけば申し分ないな。
いつも使っている画像アップロード用CGIをいじるという選択肢もあったんだけど、ドロップレット風味で実用っぽいものをひとつくらい作ってみたかったので今回はWindowsプログラミング。
他には実際にやってみて思ったのは、縮小画像を載せるんじゃなくて画像を切り取りつつ、小さくしたものをアイコン的に表示させておくほうがいいなと思った。単なる拡大縮小じゃつまらん。とか考えると、gimp使ったほうがいいのか?
いやいや、これを敢えてCGI+javascriptでやるべきでしょう
みたいな禅問答のはじまりだ。手段が目的化しつつあることにはうすうす気付いているけどネ。