グリッドコンピューティングを再開します

そろそろ仕事も一段落してきて最終バスを利用する頻度が減ってきました。 忙し過ぎて休止していた趣味を再開できそうです。 趣味は写真です、カメラを買うことでも、レンズを買い揃える ことでも、モデルさんと親しくなることでもありません。 写真を撮ることです。 撮るだけではなく、写真をどのように見せるかも重要だと思っています。 少しでも上手くなりたいと願っています。 別にプロを目指しているわけではありません。 プロ(主としてそれで生計を立てている)のずっと上を目指しているだけなのです。

撮影した後の反省も重要です。 被写体、被写体の表情、露出、フォーカス、 どこにフォーカスを合せるか、ホワイトバランス、 背景、構図、光源の位置、色、形などなど 考慮すべき点はまだまだ沢山あります。 いくつかはカメラ技術の進歩で自動化されつつありますが、 まだまだ撮影者に残された楽しみは残っています。 将来は、撮影するのも、撮影されるのも、観賞するのも全て コンピュータということになるかもしれません。 人間は単なる背景ということになるのかな。。。

冗談はさておき、撮影後の構図の反省用に格子(グリッド)を 合成する(私にとって)新しい方法を試みてみました。 「知っている人にはなんでもない」ことなのですが、もっと写真を 撮りたい、もっと上手くなりたいという人には良い動機付けになります。 同士が集えば、各自がグリッドを作って交換(公開)して共有できる 可能性があります。 グリッドはパソコンで簡単に作成できます。 広い意味でこれも「グリッドコンピューティング」に含まれるのかな?と 勝手に解釈しています。

とりあえず、こんな感じで従来より簡単にグリッド表示できそうな感触です、 ということで一部先行公開を始めました。 どれくらいご要望があるかわかりませんが、 非営利目的、成果の公開を条件にグリッドの作成依頼を無償で受け付けます。 そのときには、より具体的なグリッドの情報(座標)、 元となるカメラの機種、参考URLや添付画像や大きさ、 希望する背景色(透過に割り当てる色)などをメールにて grid2012@keizof.com まで下さい。 晴撮雨描がモットーです。出来る範囲で、 雨の休日にグリッドを描いてみたいと思っています。



追伸1:
もちろん、皆さんが作ったグリッドもここで公開できれば楽しいなと思います。 そちらも募集しています。
追伸2:
現在休止中。 CGI版も新たに作り直しました。 パソコンが苦手な方はこちらをお試しください。 現在休止中。

1. オリジナル画像(背景に相当します)

下図がオリジナル画像(752x500画素)です。
本当は3008x2000画素の古いデジカメで撮ったものです。
それを縦横それぞれ1/4倍に縮小したものを見本としました。
これを今回の説明用の基本サイズとします。
実際にはさらに1/2倍に縮小してもいいかもしれません。


2. グリッド画像例

下図がグリッド画像例(752x500画素)です。
透過(背景が透けて見える)PNGファイルです。 境界を判り易くするために周囲を 白、厚み2画素で囲っています。


3. グリッド画像の作成手順

背景が透明なPNG形式の画像は、色々な方法で作成できます。 今回は、Webサーバーが動作しているLinux(CentOS 6.2)上で netpbm を使いました。 さらに、Webブラウザーが動作するWindowsXP上で 「ペイント」を使いました。
白色矩形を描画します
Linux$ ppmmake white 752 500 > plain.ppm 

PNG形式に変換します
Linux$ pnmtopng plain.ppm > plain.png 

ファイルをWindowsXPが動作するパソコンに転送します。
WindowsXPが動作するPC上にてグリッドを描きます
ファイルをLinuxが動作するパソコンに転送します。

白色を透過に指定して PNG 形式でファイルを出力します
Linux$ pngtopnm plain2.PNG | pnmtopng -transparent rgb:ff/ff/ff > plain3.png


4. 合成

下図が上記の二つの画像を合成しようとしたものです。
背景が写真で前景が透過な格子です、順序を間違えないようにしましょう。 位置を合せるために<tables></table>表として記述しています。
実際にはWebブラウザーが合成処理をしています。 Webサーバー側はHTML、PNG画像、JPEG画像それぞれを送信しているだけです。
<table>
<tr>
<td STYLE="background-image:url('PICT1046.jpg');background-size:contain;">
<IMG SRC="plain3.png">
</td>
</tr>
</table>


5. グリッド描画前と後の矩形画像



6. 参考URL

参考にさせていただいた情報のURLです。 先人に感謝の意を込めて紹介します。

7. CGI版

ちなみに従来は自作プログラム(C言語版)で画像に 直接グリッドを書き込んでいました。 グリッドを描画するCGIまで作って公開していました。 一時的とはいえ「わいせつ画像」をアップロードする 強者もおられましたので、私自身にリスクがありました。 しかし、HTMLを書くことが困難な環境の人達の多いのも事実です。

今回は Webサーバーが4台で負荷分散しながら動いている ので別の大変さがありましたが、 再びCGI(Perl版)を作ってみました。 とはいうものの、合成処理はお手元のWebブラウザーが行なっています。 Webサーバーはアップロードを受け付けて、 アップロードされたJPEG画像、 格子の描いてある透過PNG画像、HTMLを送信しているだけです。 従って、グリッドそのものは描かれていません。 勘違いされないようにお願いいたします。 なお、アップロードされた画像は約30分後に自動削除されます。