2005-05-22

Web ベースのアルバムソフトがほしくなった

写真は好きだがデジカメはそんなに好きじゃないので、手元にデジタルの画像はあまりない。1だから画像の整理も日付(と場所)の入ったディレクトリを掘ってそこに突っ込むだけ。とりあえず ViX とか Graphic Converter とか xnView とか使って縦横を揃える、簡単な補正を GIMP や Photoshop などで加える2と言ったことはするけど、いわゆるアルバムソフトの類いは使ったことがなかった。ただこの方法に不満がないわけじゃなかった。

画像にコメントを加えてそれで検索できたら便利なのに

ということだけ。ま、それだけじゃアルバムソフトの選択のポイントにならないので、以下に自分の条件を洗い出してみた。

背景

  1. 自分の撮った写真を整理できればそれでいい
    • 例えば誰だか知らない人の写真を自分が管理するようなことはまったく想定していない。例えばネットで画像を集めるようなこともまったく考えてない。
  2. これまでの画像の整理は日付と場所を名前にしたディレクトリを掘るだけ
    • 作品としてのアルバムを作るソフトがほしいわけじゃなくて、単にフォルダ単位で画像が放り込めて、それが一覧できれば ok

ほしい機能

  1. Web で閲覧できる
    • 家族や組織内で情報を共有しようと思ったら重要だし、サーバに置く方がバックアップとか考えるのが楽
  2. 画像の詰まったディレクトリを所定の場所に置くだけでよい
    • DB にインポートとか余計な作業が必要ないもの。従前の自分の写真の管理方法とのギャップがいちばん少ないものが嬉しい。
  3. 画像にコメントを加えることができる
    • これをキーに検索できればなおよし。

ほしくない機能

  1. コメントの付加やアルバムの追加などの作業が Web インターフェイスでしか行えない
    • Web インターフェイスはたるいので細かい作業はやりたくない。クライアント PC で作業して、できあがったディレクトリをサーバに転送するだけ、という感じがよい。
  2. rating とか閲覧者からのコメント付加
    • photolog やりたいわけじゃないし、やるとしてもその前段階としてまず自分の写真の整理が必要でしょ。そのためのツールなので対ユーザを意識した機能は不要。
  3. DB を要求する
    • すべての画像に対して詳細にデータをセットしてあって、そこからズバッと検索するという用途には DB は向いていると思うけど、普通、ほしい情報って「いつどこで何を撮った」くらいでしょ? DB なんか要らないって。スペックマニアが「このレンズで撮った写真はどれだっけ」なんて検索をする可能性を考慮してくれる必要はまったくない。3
  1. どの程度が普通なのかはとりあえず置いておく 

  2. どの程度が簡単なのかも適当に判断するよろし 

  3. 以前はそういう視点で写真を見てたこともあったけど、今はもうなんだっていいよ。 

singapore に決まった

というわけで sourceforge.net で web と photo をキーワードにして検索。いっぱい出てくるので気長にいく。試したソフトと簡単なメモを以下に順番通りに。テストは OS X と FreeBSD で行ったが、この手のツールはほとんどが PHP + GD で動いていて、OS X の PHP がどういう build になってるのか分かっていないのでほとんどは FreeBSD の ports で入れた PHP 4.3.11 でテスト。

slooze

  • 画像のサムネイルは生成されているみたいなんだけど、うまくそれが表示されないんですが?
  • なんか Roll とか Topic とか細かい言葉の意味がよく分からない

作者とセンスが合わないらしい。

mig

  • short_open_tag が On じゃないと動かない
  • albums/ ディレクトリ作成
    • 写真のディレクトリをその中に放り込む
  • ImageMagick 必要
  • mkGallery.pl も手作業。

PHP は確かに 3 以降で動くかもしれんけど、Perl も ImageMagick も必要だし、なんか手作業が多くてどうも。short_open_tag も微妙に気持ち悪いし。

yapig

とりあえず動いたけど、国際化の部分がよく分からないのと、ギャラリーの編集がよく分からないなぁ。

phpgraphy

まったく動く気配なし。検証する気も起きない。

yappa-ng

動かないなぁ?

spgm

動くんだけど、thumbnail 周りが動かない? てか thumbnail 作成機能ないの?

ちょっと大げさな感じがするのでスルー。

singapore

いちばん簡単で確実に動き、なおかつきれいかも。

singapore を使う

singapore 0.9.11 のディレクトリ構造の一部を抜粋するとこんな風になっている。

.
|-- data
|     ここに cache/ を作る
|-- docs
|   |-- Development.html
|-- galleries
|     ここに画像の入ったディレクトリを放り込む
|-- includes
|-- install
|-- locale
|-- singapore.ini
|-- templates
|   |-- admin_default
|   `-- default
`-- tools

最低限必要なことは、galleries/ の中に画像の入ったディレクトリを放り込むだけ。

各種設定

  • data/ の中に cache/ を作っておかないとサムネイルがキャッシュされないので激しく重い
  • singapore.ini で全体の設定
    • 0.9.11 では日本語リソースは最初から入っているので default_language = "ja" にするだけで日本語化完了
  • 見た目は template で行う。tDiary と同じように templates/ 内に使いたい template のディレクトリを放り込み、singapore.ini で default_template を変えれば ok1
  • template ごとに template.ini で細かい調整が可能。サムネイルのサイズや一覧するときの画像の数など
  • メタデータは画像ディレクトリ内の `metadata.言語コード.csv' ファイルで行うか、ファイル名に埋め込む。
    • csv でメタデータを記述するときのフォーマットはドキュメントの Development 参照。

singapore の足りないところ

singapore には当初の目的のはずだったコメントで検索するという機能がない。でもまぁ、csv にメタデータを書けることが分かったので、とりあえず自分の用途では grep すれば ok という状態に。Web のインターフェイスを付けるのもそんなに面倒じゃないと思う(検索結果が template にハマる調整するのが面倒か)ので、その辺はおいおい考えることにする。

もう一つ、画像を縮小して表示する設定にしておくと、元画像をダウンロードすることができないのは惜しい。今どきの元画像の大きさじゃページのバランスを崩すだけだし縮小表示は当然だと思うけど、そこから元画像へのリンクがほしかった。まぁ初期設定では galleries/ は Web に公開されてる場所にあるのでそのまま直打ちして取り出すことはできるし、自分用ならサーバから直接取り出せばいいって話ではあるいんだけど。

  1. template_flipper を on にするとユーザが自分の好きなように select でテンプレートを変更できるようになる。 

余談その1

実はファイルシステムがメタデータを抱え込むだけでコメント検索はできる。

MacOS にはファイルにコメントを埋め込む機能があるので実は昔からこれは可能だった。似たようなことは WinFS でも可能になるだろうから、ますます Windows か Mac 使ってるなら何も用意しなくていいよ、という状況になってきている。

しかしそうなるとサーバに画像放り込んでおきたい、となったときには Windows か MacOS をサーバにしなくちゃならなくなる。特定の OS に縛られるのは好きじゃないのでこれは避けたい。Web ベースにしたいのに特定の OS に縛られるなんてばかばかしいじゃん1

  1. イントラ向けの商用 Web アプリは OS 限定しまくりですが 

余談その2

ついでに昔話をすると、JPEG や PNG の画像に直接コメントを埋め込むタイプのアルバムソフトってないかなーと思っていた。自分の必要な機能からいくと、その方法にしてくれれば余計なメタデータは一切ないので、画像データを自由に移動できるうえに検索性を損なわない、と思っていたけどそんなことしたら個人的なメモが外にバラまかれる可能性があるじゃん、ということにずいぶん経ってから気がついた。

当時そんなソフトがあったら喜んでプライバシーを漏らしまくっていたに違いない。ま、他人に渡せる写真に関してだけだけど。

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm