PhotoXP: 2004年3月アーカイブ

Exif対応写真掲示板CGI PhotoXP 1.2.0をリリースしました。
主な変更点は以下の通り。
  • メール通知機能の追加。
  • アップロードサイズ制限の導入。
  • 画像のファイル名を通し番号に変更。
  • PENTAX(*ist D)のホワイトバランス表示に対応。

PhotoXP 1.1.2をリリースしました。
今回のバージョンアップは、Windows+Apache, WIndows+AN HTTPD環境へのインストールドキュメントに合わせての調整のみですので、1.1.1からは特にバージョンアップする必要はありません。
ここでは、PhotoXPをWindowsとAN HTTPDの環境にインストールする方法について説明します。

RubyとImageMagickのインストール

Windows版RubyとImageMagickに関しては、PhotoXPをWindows+Apache環境にインストール の場合と同様ですので、そちらを参照してあらかじめインストールしておいてください。

AN HTTPDのインストール

まず、以下のサイトから最新版のAN HTTPDをダウンロードします。 現時点では、httpd142n.exeが最新となっているので、これをダウンロードして実行します。 展開先を聞いてくるので、ここでは
C:\anhttpd
としましょう。

AN HTTPDの設定

C:\anhttpd\httpd.exe
を実行します。 この時点でhttp://127.0.0.1/readme.htmlが表示出来るはずです。

次に、メニューからオプション -> 一般と選択し一般のタブでCGIを実行するをチェック、 追加ボタンを押して、.rcgiという拡張子のファイルは、C:\ruby\bin\ruby.exeを使ってCGIとして実行するように設定します。ここでは「実行する」と「一般パスでも実行する」のチェックを忘れないようにしてください。
anhttpd1.gif

GDBMライブラリのインストール

PhotoXPは、UNIX環境等ではGDBMが入っていない場合にも代わりにSDBMを使用して動作するのですが、anhttpdではエラーダイアログが表示され実行が止まってしまうため、以下のURLからmswin32用のGDBMライブラリを持ってきます。 現在の最新版はgdbm-1.8.3-1-mswin32.zipとなっているので、このzipを展開してbinの下にあるgdbm.dllをC:\ruby\bin\gdbm.dllにコピーします。

PhotoXPのインストール

PhotoXPを展開

PhotoXPをダウンロードし、C:\anhttpd\photoxpに展開、photoxp.cgiのファイル名をphotoxp.rcgiに変更します。
C:\anhttpd\photoxp\photoxp.rcgi

ImageMagickのconvertコマンドのパスを修正

config.rbを開いて、convertコマンドの位置をフルパスで指定します。ここでは/でなく\であることに注意してください。
CONVERT_COMMAND = 'C:\Program Files\ImageMagick-6.1.5-Q16\convert.exe'
以上でインストール完了です。http://127.0.0.1/photoxp/photoxp.rcgiにアクセスして、「写真の投稿」から投稿をしてみてください。

ここでは、PhotoXPをWindows上で動くApache環境にインストールする方法を説明します。
各ソフトウェアは新規にインストールする事を前提にしますが、すでにインストール済みの方は、ファイル配置等を適時自分の環境に読み替えてください。

Rubyのインストール

まず、Windows版のRubyをインストールします。 mswin32,mingw,cygwin等複数の選択肢がありますが、ここでは以下からダウンロードできるmswin32版を使う事にします。 この説明を書いている時点での最新の安定版はruby-1.8.1-i386-mswin32.zipになります。
zipファイルを展開して、ruby本体が
C:\ruby\bin\ruby.exe
に配置されるよう、フォルダを移動、名前変更します。

ImageMagickのインストール

次に、以下にあるWindows版ImageMagickをインストールします。 現在の最新安定板はImageMagick-6.1.5-Q16-windows-dll.exeとなっているので、これをダウンロードしてインストールします。
インストール後は、PhotoXPのサムネイル画像作成に使うconvertコマンドが
C:\Program Files\ImageMagick-6.1.5-Q16\convert.exe
に配置されているはずです。
このあたりは、新しいバージョンを使う場合には適時読み換えてください。

Apacheのインストール

最後に、Windows用のApache HTTP Serverをダウンロードして、インストールします。 これも沢山ファイルがありますが、インストーラ付きの実行ファイルを入れるのが簡単です。 この解説を書いている時点での最新版apache_2.0.52-win32-x86-no_ssl.exeになります。
インストーラのデフォルト値のままインストールを行うと、以下のようなフォルダ構成でhttpdが動作しているはずです。
C:\Program Files\Apache Group\Apache2  # ServerRoot
C:\Program Files\Apache Group\Apache2\htdocs # DocumentRoot
C:\Program Files\Apache Group\Apache2\conf\httpd.conf # 設定ファイル
この時点で、ブラウザでhttp://127.0.0.1/が表示出来る事を確認してください。

Apacheの設定

インストールしたままの状態では、CGIの実行が出来ないので、
C:\Program Files\Apache Group\Apache2\conf\httpd.conf 
の中の
<Directory "C:/Program Files/Apache Group/Apache2/htdocs">
...省略...
    AllowOverride None        # NoneをAllに書き換える
...省略...
</Directory>
AllowOverride Noneという部分をAllowOverride Allに書き換えて保存、 画面右下のタスクトレイにある、Apache Service Monitorを使ってApacheをリスタートします。
これで、.htaccessによる設定が有効になります。

PhotoXPのインストール

PhotoXPを展開

PhotoXPをダウンロードし、DocumentRoot(C:\Program Files\Apache Group\Apache2\htdocs)の下に展開、photoxp-[バージョン番号]となっているバージョン番号部分を削ってphotoxpという名前に変更し、CGI本体を
C:\Program Files\Apache Group\Apache2\htdocs\photoxp\photoxp.cgi
に配置します。対応するURLはhttp://127.0.0.1/photoxp/photoxp.cgiとなります。

rubyのパスを修正

photoxp.cgiの先頭行にある、rubyのパスはUNIXを前提としているので、先ほどインストールしたrubyのパスに修正します。
#!C:/ruby/bin/ruby.exe

ImageMagickのconvertコマンドのパスを修正

config.rbを開いて、convertコマンドの位置をフルパスで指定します。ここでは/でなく\を使う事に注意してください。
CONVERT_COMMAND = 'C:\Program Files\ImageMagick-6.1.4-Q16\convert.exe'

以上でインストール完了です。http://127.0.0.1/photoxp/photoxp.cgiにアクセスして、「写真の投稿」から投稿をしてみてください。
PhotoXP 1.1.1をリリースしました。
今回の修正では以下を実現しています。
  • とりあえず展開してパーミッションを変更するだけで動作。
  • Windowsへのインストールに対応。
  • GDBMが無くても動くようになった。
インストール方法はこちら
ここでは、一般的なUNIX環境を前提とした、PhotoXPの簡易インストールについて説明します。
ディレクトリ構成などをカスタマイズしたい方は、旧バージョンのインストール方法も参考にしてみてください。

動作環境

PhotoXPはRuby 1.8とImageMagick、ApacheなどのWebサーバが動いていれば動作します。当然ですが、Webサーバ上でCGIの実行をサポートしている事が前提になります。

インストール手順

インストールされているrubyが1.6でなく1.8であることを確認し、ImageMagickのconvertコマンドもパスを確認。
  $ which ruby
  /usr/local/bin/ruby
  $ ruby -v
  ruby 1.8.1 (2003-12-25) [i686-linux]
  $ which convert
  /usr/bin/X11/convert
photoxpをダウンロード、展開し、photoxp-[バージョン番号]となっているディレクトリ名をphotoxpに変更します。
  $ cd ~/public_html
  $ tar zxf photoxp-1.6.5.tar.gz
  $ mv photoxp-1.6.5 photoxp
  $ cd photoxp
  $ ls
  COPYING  ChangeLog  GPL  README  config.rb
  data  image  lib  log misc photoxp.cgi  template
ディレクトリのパーミッションを設定します。
  $ chmod 777 log
  $ chmod 777 data/photoxp
  $ chmod 777 image/photoxp
自分の環境に合わせて、スクリプトの下記の行を書き換えます。
photoxp.cgiの先頭行:
  #! /usr/local/bin/ruby

config.rb:
  CONVERT_COMMAND = '/usr/bin/X11/convert'
次に、掲示板の管理用パスワードを修正してください。
data/photoxp/board.conf:
  @admin_passwd = 'changeme'
これで、設置したURLを開いて動作を確認します。
http://www.example.com/~myname/photoxp/photoxp.cgi
以上。 一口にUNIX環境と言っても色々ありますので、 質問等ありましたら、お気軽にコメントいただければと思います。
PhotoXP 1.1.0をリリースしました。
今回の最大の変更点は、Exif解析ライブラリをexifparserから新規開発のexifcodecに差し替えた事です。
これで、MakerNoteの拡張がやりやすくなったので、徐々に対応機種を増やして行きたいと考えてます。
プログラムのインストール方法、改造などに関する情報交換用に、メーリングリストを準備しました。

参加希望の方は、majordomo@freeml.com宛に、本文に

  subscribe photoxp
とだけ書いたメールを送るか、
以下のフォームにメールアドレスを入力して、「参加」を押してください。

PhotoXPユーザーメーリングリスト に入ろう!
FreeML  メールアドレス
 

PhotoXPのバグ情報は、バグトラッキングシステム 影舞によって管理されています。

PhotoXP F.A.Q.

| コメント(35) | トラックバック(0)
準備中です。

MakerNote研究所

| コメント(0) | トラックバック(0)
PhotoXPでサポートしている、Exifと各社独自のMakerNoteの解析に関する情報をまとめるページです。

掲示板

Exif解析情報の交換と作業用に掲示板を用意しました。 また、サポートして欲しい機種などがありましたら、画像を投稿していただければ解析を試みてみたいと思います。

Exif 関連リンク

はじめに、PhotoXPの動作に必要となる環境は、通常のPerlのCGIスクリプト等と比べてかなり厳しいと言えます。

主たる利用者としては、自分で自宅サーバを運用しているような、ある程度のサーバ管理とプログラミングスキルがある人を想定しています。

正直なところ、ドキュメントもインストーラも整備されてないため、現状のインストール方法は非常に分かりにくいと思いますが、徐々に整備して行こうと思っていますので、よろしくお願いします。。。

動作環境

RubyとImageMagickがインストールされているUNIXマシンならたいてい動作すると思います。 詳しい調査はしていないので動作報告募集中です。

とりあえず、daifukuya.comでは以下の環境で動作しています。

開発中のRuby 1.8を前提にしていますが、改造してRuby 1.6.8+ERbLightなどで動かすことも難しくないと思います。

インストール手順

exifparserライブラリをインストールしておきます。

インストールされているRubyとImageMagickのパスを確認。

  $ which ruby
  /usr/local/bin/ruby
  $ which convert
  /usr/X11R6/bin/convert
photoxp用ディレクトリを決めて、ファイルを展開します。
  $ cd /home/myuser
  $ tar zxf photoxp-1.0.0.tar.gz
  $ ln -s photoxp-1.0.0 photoxp
  $ cd photoxp
  $ ls
  COPYING  GPL  README  data  image  lib  template
掲示板データファイルのパーミッションを設定します。
  $ cd /home/myuser/photoxp/data/photoxp
  $ chmod 666 board.gdbm
CGIを設置します。(.cgiでCGIを実行できることを前提としています。) このあたりは、サーバの設定によって出来ること、出来ないことがありますので、自分の環境に合わせて設定していってください。
  $ cd /home/myuser/public_html
  $ mkdir photoxp
  $ cd photoxp
  $ ln -s /home/myuser/photoxp/lib/photoxp/photoxp.cgi .
    (もしくは cp /home/myuser/photoxp/lib/photoxp/photoxp.cgi .)
画像用ディレクトリを用意して、アイコンをコピーします。
  $ cd /home/myuser/public_html
  $ mkdir photoxp-image
  $ chown 777 photoxp-image
  $ cd photoxp-image
  $ cp /home/myuser/photoxp/image/*.gif .
自分の環境に合わせて、スクリプトの下記の行を書き換えます。
photoxp.cgi:
  #! /usr/local/bin/ruby
  photoxp_root = '/home/myuser/photoxp/lib'

config.rb:
  ROOT = '/home/myuser/photoxp'
  BASE_URL = 'http://www.mydomain.com/~myuser/photoxp'
  IMAGE_DIR = '/home/myuser/public_html/photoxp-image'
  IMAGE_URL = 'http://www.mydomain.com/~myuser/photoxp-image'
  COOKIE_DOMAIN = '.mydomain.com'
  COOKIE_PATH = '/~myuser/photoxp/'
  CONVERT_COMMAND = '/usr/X11R6/bin/convert'
PhotoXPを設置したURLを開いて、表示できるか確認します。
http://www.mydomain.com/~myuser/photoxp/photoxp.cgi

以上、不十分な点も多々あるかと思いますが、質問等ありましたらコメントいただければと思います。

PhotoXPとは?

| コメント(0) | トラックバック(0)
PhotoXP(Photographic eXPerience Bulletin Board System)は、デジタルカメラ画像に埋め込まれたExif情報を自動的に解析し表示できる写真掲示板プログラムです。
単に画像を投稿して楽しむだけでなく、撮影時の絞りやシャッタースピード・露出補正値等を表示することで、写真撮影技術向上のための一歩踏み込んだ議論が出来る掲示板を目指しています。

特徴

PhotoXP写真掲示板には、以下のような特徴があります。
  • デジカメで撮った写真を投稿するだけで、Exif情報を自動的に解析・表示する事が可能。MakerNoteと呼ばれるメーカー独自情報にも対応している。
  • Exif GPSに対応。GPSケータイで撮った写真を投稿すると、自動的に地図サイトへのリンクを表示。
  • 新着写真投稿がRSSでチェック出来る。
  • 白飛び、色飽和のチェックに便利な、ヒストグラム表示機能付き。
  • オブジェクト指向スクリプト言語Rubyで記述されている。
  • ユーザーインターフェースは、有名なスレッド表示型掲示板に準拠。
  • GPLライセンスのフリー(無料、自由な)ソフトウェア。
  • photoxp.daifukuya.comサイト上のみですが、機種別レンズ別の写真を見る事が可能。
また、PhotoXPは以下のようなユーザを対象に開発しています。
  • デジタル一眼レフや、マニュアル撮影機能の付いたデジタルカメラを使用しており、写真が上手くなりたいと思っている人。
  • プロの写真家、カメラマンまたは周りの人に写真の指導をする立場にあり、ホームページ上で写真の添削やアドバイスをしたいと考えている人。
  • 写真撮影の技術論と好き嫌いを分けて議論したいと思っている人。(撮影データがあるからこそ出来る議論もあるかと)
  • ADSLやFTTH(光ファイバー)等を使用して、自宅サーバを運用している人。(数百万画素のデジカメ画像をそのまま扱うため、必要なディスク容量、ネットワーク帯域、CPU負荷は結構大きい)
  • Rubyist(Rubyプログラマー)でRuby製掲示板CGIを探している人。

歴史

  • 2002/GW - 先に作っていたRuby製Exif解析ライブラリと、erubyで作成した掲示板を組み合わせて、一応動く物が出来た。
  • 2002/5/19 - PhotoXP βテスト開始。
  • 2002/11 - PhotoXPの次期バージョンで、田村さん作成のexifparserライブラリを使用することに決定。erubyから通常のCGIに変更して再設計。
  • 2003/3/30 - PhotoXP 1.0として公開 。
  • 2004/3/14 - PhotoXP 1.1リリース。Exif解析ライブラリをexifcodecに変更。

謝辞

最後に、RubyのExifライブラリexifparserを作成された田村さん、 RubyでのCGIプログラミングに関するアドバイスと、影舞に使われているコードやアイデアをくださった福岡さんに感謝します。

このアーカイブについて

このページには、2004年3月以降に書かれたブログ記事のうちPhotoXPカテゴリに属しているものが含まれています。

次のアーカイブはPhotoXP: 2004年4月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.21-ja