写真のコンタクトシートを作成する:非Lightroom/非Photoshop路線

写真のコンタクトシートを作成する:非Lightroom/非Photoshop路線

2021年2月17日
写真処理ユーティリティ

フィルムの時代、印画紙にフィルム原寸コマを焼き付けて、写真の資料的保存、セレクト用の道具としていた。コンタクトプリントという。コンタクトシートとも呼ばれる。

デジタル時代になって「フィルム原寸」の概念がかわったけど、手軽に画像一覧したいことにはかわりはない。むしろお客様的には「コンタクトシート」があってあたりまえとなっている。紙に印刷するわけではなくPDFや縮小画像の束にして提供する。

シートの作成は、定番のLightroom/Photoshopにも機能搭載されている。データ管理・現像・編集をAdobe CC配下で全体コントロールしている場合は、シートもその中で作るだろう。

しかし作業の流れをLightroomありきにしたくないひと(わたしのことだ)は、シートをつくるためにLightroomなりPhotoshopなりを立ち上げるのは作業均衡に欠ける。

というわけで、現在使っている手法を簡単にメモしておく。

PDF化して使う

専用のソフトを使う。PDF化の場合、後述するImageMagickなどでも画像ー>PDF変換はできるが、こちらのほうが簡便。

ネットを探すといくつもあるが、個人的にはFastStone社の画像閲覧統合ソフト FastStone Image Viewerが使いやすいので愛用している。 機能は豊富すぎるが、contact sheet作成以外はほとんど使ったことはない。

非商用の場合は「無料」(ドネーションを希望している)だが、商用利用も日本円で3000円ぐらいの永久ライセンスである。多言語対応だが、メニューやヘルプは日本語対応していない。昨今の日本翻訳文化の衰退を示している。ただし普通の日本語文字は通るので(中国語、韓国語等マルチバイト対応しているからまあ当然とは言えるが)、利用に問題はない。delphiで作成されている。なつかしい。

画像フォルダのビュー
コンタクトシート設定画面

縮小JPEG画像にして並べる

JPEG縮小・圧縮して、ハイパーリンク(つまりはWEBで)で供する。

モニタ・スマホ液晶画面用のコンタクトシートなので高画質のものは作らない。

インデックスになる長辺が250pixel程度のものと(いわゆるサムネール画像)、インデックスをクリックすると表示される画像も長辺800pixel程度のものでいい。この二種類を作成する。

一括変換はimagemagickのmogrify(複数ファイル対応)とconvertコマンドに委ねる。

GUIのソフトもいろいろあるだろうけど、この手のものはコマンドラインスクリプトでのバッチ処理が簡便である。

コンタクトシート用画像であることがわかるように透かし文字を写真の中に入れておきたい。
PNGで文字を作って、convert コマンドの-gravityオプションで埋め込む。閲覧にじゃまにならないように、画面右下(-gravity SouthEast)に文字入れするようにしている。

透かし文字 convert -gravity SouthEast -composite foo.JPG /bar/path/contact-sheet-watermark.png foo.JPG
サムネール mofrify -resize 250×250 *JPG

あとは認証付きのWEBサイトにアップロードするだけである。
画像リンクと画像表示はJQueryプラグインでサクッとできてしまう。モバイル対応もしている。

プラグインにはfancyBox3を使っている(商用の場合はシングルライセンスで永久利用可能で3千円ちょっと。お安いと思います※そもそも発行ライセンスキーをつかってアクティベートするようなコードは一切書くことはない、単に「購入した」っていうだけのとっても緩いライセンスなんですが、購入しています)。

お客さん向けのセレクトシートなので、各画像にファイル名とは別に簡潔な番号を振っておく必要があるが、これはHTML生成用ループを回す時に番号をつけるだけでいい(わたしはLaravelのviewで行っている)。

なおImagiMagickで画像に連番文字を埋め込むというやりかたもあるがスマートではない。