デジタル映像サービス
安くて高機能なパソコン・デジカメ・カラープリンタ・インターネットなどが普及したおかげで、フィルム時代と写真の楽しみ方が大きく変化しました。ご自身の手で写真を活用できるのです。さあ眠っていた写真たちに魂を吹き込んで復活させましょう。

徒然小ネタ集

写真やフィルムにまつわる小ネタ、デジタル画像にまつわる小ネタ、へぇそうなんだ、これって便利、ちょっとしたことを書き綴っていきます。

画像にサムネイルを埋め込む

やってみた
Picasaのデータベースを再構築したり、新規でまとめて画像を登録するとき、恐ろしく登録速度が落ちることがあります。その原因はサムネイル。デジカメの写真などは画像データ内にサムネイルが埋め込まれているのですごいスピードで登録されます。本当に読み込んでるのか?と疑うくらい。その逆に読込みが遅い画像はサムネイルが埋め込まれていないので、画像全体を読み込む必要があります。それで時間がかかってるんですね。あ、本来サムネイルが埋め込まれている必要は無いので、逆でした。恐ろしく遅いんじゃなくて、サムネイルが埋め込まれてる画像が速すぎるのか…

例えば、当社で扱う35mmのデータサイズを想定して、だいたい4MBと仮定すると、サムネイルは数kB~10kBなので1/1000~1/500程度しかありません。500倍~1000倍の速さで読み込めるということになります。 確かに速い。

これを利用しないわけにはいきません。サムネイルを埋め込んでしまいましょう。こういう処理はGUIでちまちまやるよりも、Unix風にバッチ処理で一気にやってしまうのがよいです。googleで探してみるとjhead、ExifTool、Exiv2などが挙がってきました。まずはjheadから調査を始めてExifToolで目的を達成できたのでそれでよしとしました。もしかしたら調べていないExiv2が一番便利かもしれません。

ExifToolでサムネイルを操作する

それではExifToolでサムネイルを操作してみましょう。 画像ファイルdata.jpgにどんなサムネイルが埋め込まれているか

>exiftool.exe -ThumbnailImage data.jpg
埋め込まれている場合は
Thumbnail Image                 : (Binary data xxxx bytes, use -b option to extract)
とう表示されxxxxバイトのサムネイル画像が埋め込まれていることが分かります。 埋め込まれていなければ何も表示されません。 次に埋め込まれている画像を抽出してみます。上でコメントされているように-bオプションを使います。
>exiftool.exe -ThumbnailImage -b data.jpg > thumbnail.jpg
これで埋め込まれている画像がthumbnail.jpgへ保存されました。このファイルは通常のjpegなので普通のビューアーで見ることができます。

次にこの記事のメイン、サムネイルの埋め込みをやってみましょう。 対象とする画像ですが、せっかくなので既に埋め込まれている画像ではなくてサムネイルのエントリさえ無い画像を使ってみます。まずは埋め込むためのサムネイルを作成します。ここではExifTool同様、UnixライクなツールImageMagickのconvert.exeを使って縮小します。ImageMagickの使い方については他のサイトを参照してください。そして縮小後の画像から余計なEXIFなどのタグを削除します。

>convert.exe -resize 160x160 -quality 50 data.jpg thumbnail.jpg
>exiftool.exe "-all=" -m -q -P -overwrite_original thumbnail.jpg
品質を100段階で50まで下げているせいか 4,767,094バイトのdata.jpgが3,269バイトまで小さくなりました。約1,460分の1です。

サムネイルができたので実際に埋め込んでみます。

>exiftool.exe "-ThumbnailImage<=thumbnail.jpg" -m -q -P -overwrite_original data.jpg
これで完成です。念のためにExifToolで確認してみましょう。
>exiftool.exe -ThumbnailImage data.jpg
Thumbnail Image                 : (Binary data 3269 bytes, use -b option to extract)
大丈夫です。thumbnail.jpgはもう必要ないので削除してかまいません。 おまけでPicasaでのプロパティ表示です。

Picasaでプロパティを確認

中間ファイルを作りたくない場合

上の例ではサムネイル画像という中間ファイルを作りましたが、Unix流にパイプでつなぐと中間ファイルを作らずに埋め込みができます。

>convert.exe -resize 160x160 -quality 50 data.jpg - | exiftool.exe "-all=" -m -q -P - | exiftool.exe "-ThumbnailImage<=-" -m -q -P -overwrite_original data.jpg

jheadの場合

jheadではもっと簡単にできるけれども、関与したくないEXIFの他の項目についても変更されてしまいます。というか消えてしまう。jheadでサムネイルを操作するには、既に埋め込まれているサムネイルと交換という方法しか取れません。埋め込まれていない場合はjheadの「簡素なタグを埋め込む」コマンドを実行してサムネイルの項目を作成するが、この時点で既存の項目が消えてしまうのです。それが気にならないならjheadでの作業はとても便利だと思います。が、気になる…

おまけ

ExifToolのホームページからダウンロードできるWindows版のバイナリはファイル名がexiftool.exeではなくなぜかexiftool(-k).exeとなっています。変なファイル名だなぁと思っていたら、これが賢いんです。「GUIお得意のドラッグ&ドロップで動作させるときにオプションを追加できない」という不都合をファイル名にオプションを埋め込んで解消しているのです。この場合、デフォルトで-kオプションを有効にしています。これが有効だとコマンドの動作後に-- press any key --と表示されてキーを打ち込まないといけません。実行後すぐにウィンドウが閉じてしまうのを防いでいます。なるほど。

しかし、コマンドラインで作業しているときにはこれがすごく不便です。いちいち止められるのでリズムが崩れます。しかも実行ファイル名をダブルクォーテーションで囲まないといけません。最近のコマンドラインは自動補完があるからいいじゃないか?いや、バッチファイルを書くこともあるのでやっぱり不便です。ということでファイル名をexiftool.exeにリネームしましょう。

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18
総合目次
Language:

● 営業日カレンダー ●

● 更新履歴 ●

まずはサンプル画像集で確認だ
無料でフィルムスキャン!香港えこひいき企画
未使用フィルムでお値引きサービス
Google drive ダウンロード納品