PEF2JPEG Ver.1.3.6 : *istD シリーズ,K シリーズの raw から L☆ jpeg を抽出

*istDウェブリング、ホーム

お知らせ:

Ver. 1.2.1〜1.2.4をお持ちの方/お試しになった方へ.
上記バージョンでは,新規インストールの場合,起動に失敗します. 旧バージョンからの更新で PEF2JPEG.ini ファイルが存在するときは正常に動作します. Ver. 1.2.5 でこの問題を修正しました.

Ver.1.3.6 で K-5,K-x,K-r に対応しました (K-5 のみ動作確認).Windows 7 でも動作します.
Ver.1.3.5 で K-7 に対応しました.
Ver. 1.3.4 で K-m の場合,Ver.1.3.3 で K20D/K200D の場合も処理するようにしてみました.
Ver. 1.3.0 で K10D での動作を確認しました.
一応どれも抽出できるようですが,バグレポート募集中.また,動くとは思いますが,K100D-super での動作報告を募集中です.

追加されているかもしれないタグについては検証中ですが,いずれの場合も実用上問題ない EXIF 付き JPEG を抽出できています.

Ver.1.3.1 から抽出ファイルの識別子を変更しました.
1.3.1 から _L1 を付加するように変更しました.IMGP0001_L1.jpg のような名前のファイルを出力します.

[まずはお約束: 無保証と無責任]
このソフトは 無料で自由に使っていただいてかまいません が,その出来栄えや動作結果には一切の保証はいたしかねます.
このソフトを使った上で発生したなんらかの損害や障害についても,作者は一切関知しません し,もちろん責任も持ちません
ソフトウェアのバグや使用感についての報告は常時歓迎いたします.
配布等の制限もとくにしませんが,お金を取ったりしてはだめですよ.

著作権は当然放棄していませんので,念のため.

[ダウンロード]
非圧縮の exe ファイルです.セキュリティソフトに怒られちゃうかも? こちらから.

[何をするソフトか]
というと,Pentax のデジタル一眼レフカメラ *istD*istDS*istDL*istDS2*istDL2K100DK10DK20DK200DK-mK-7 の raw ファイル (PEF ファイル) から,L☆グレード (いわゆる"エコノミー") の JPEG 画像を抽出するものです.確認はできていませんが,K110D でも動作するのではないかと思います. 現像するのではなく,もともと持っているデータを切り出すだけなので高速ですが,通常の JPEG 撮影と同じようにカメラ内の現像エンジンで処理されたものがそのまま出てきます.

ミソは,メーカー独自情報を含めて Exif ヘッダをある程度復元するところで,純正 Pentax Browser はもちろん,吉本龍司氏作の Exif Reader,しろあずき 氏作の *istD View を使えば,抽出されたファイルで撮影時の主要な情報が表示可能です.
とくに *istD View では みんと☆氏の Lens-ID データ を併用することで使用レンズまで表示可能なため,本ソフトの出力も *istD View でそういった情報が表示されることを狙いました.

[使い方]
Visual Basic 6.0 SP5 で作っていますので,対応するランタイムライブラリをインストールしておいてください.Vector 等にあります (たとえばこれ).
インストール自体はダウンロードした実行ファイルを適当なフォルダに置くだけ.同じフォルダに設定内容を保存する pef2jpeg.ini というファイルが作られます.アンインストール時には実行ファイルと ini ファイルをただ単純に消してください.

使い方というほどのことはありません.ファイルを選んで Execute ボタンを押せば,JPEG ファイルができます.複数ファイルを選ぶことも,フォルダ内を全部まとめて処理することもできます (リストボックス中の全ファイルを選択するか,"Extract from All PEF files" チェックボックスにチェックを入れる).

抽出された JPEG ファイルの出力先は,(1) 元の PEF ファイルと同じ場所,(2) PEF ファイルのあるフォルダの下の JPEG フォルダ,(3) 任意に選択したフォルダ,のいずれかを選べます.
(2) の場合,JPEG という名前の「ファイル」があると,エラーを出して処理を停止します.その場合は,当該ファイルをどこかに動かすか名前を変えるかしてください.

ドラッグ&ドロップにも対応しています.エクスプローラ等から PEF ファイルか PEF ファイルのあるフォルダを PEF2JPEG のアイコンに渡してやれば,そのフォルダを開いて起動します.ショートカットにも渡せますので,デスクトップにショートカットを作っておくと便利かもしれません.起動後に左上の Source Files エリアに渡してもかまいません.

マイドキュメントとデスクトップへは直接そこを開くためのショートカットボタンもあります.

抽出された JPEG 画像のファイル名は元のファイル名のベースネームに "_L1" を付加して,拡張子が jpg になったものになります.たとえば IMGP0001.PEF だと IMGP0001_L1.jpg となります (Ver.1.3.1 以降で変更になっています).すでに同名のファイルがあれば,警告なしに上書きされます.

抽出された JPEG ファイルの「更新日時」は,「オリジナル撮影時刻」になります.OS の内部処理の関係で1秒程度の誤差が発生することがあります.

なお,拡張子が PEF のファイルしかリストボックスに表示されません.また,内部で本当に PEF ファイルかどうかのチェックも一応やっているので,他のファイルがフォルダ内に混在していてもかまいません.

[ごたくなど]
デジタル一眼といえば,やはり raw 撮影.しかし,現像が面倒なのも事実です.ちょっと web ページに載せたいという程度なら,面倒な現像処理をせずに,気楽に JPEG を使いたいことも多々あります.カメラによっては raw 撮影時に同時に JPEG ファイルも記録されるものがありますが,私の使っている Pentax *istD にはそういう機能はないうえ,JPEG と raw の切り替えは結構面倒だし (1アクションではできないってだけですが),JPEG に切り替えてしまうとあとで「やっぱり raw で撮っておけばよかった〜」ということもあるし,で,できるなら raw 固定にしておいて,ちょっとした用途には現像の手間をかけずに JPEG が得られると便利だろうなあ,と.現像前に撮った写真を見て,これはちゃんと現像しようとか考えるにも,JPEG の原寸画像があると便利なような気もします (たいがいの現像ソフトはサムネイルを一覧表示できますが).

前述のように *istD は raw 撮影モードにすると JPEG ファイルの同時記録はされないのですが,じつは raw ファイルには,フルサイズ (*istD は 3008×2008,*istDS 以降は 3008×2000,K10D では 3872x2592) の JPEG 画像 (品位は L☆相当) がサムネイルとして埋め込まれています.そこで,最初は単純にその JPEG を抽出するプログラムを作りました.

*istD の PEF ファイルに埋め込まれているサムネイル関係の情報はとっくに解析されていて,サムネイルを取り出すプログラムも公開されていましたが,一括処理ができなかったりするので,そこの情報を参考に自分で書いたのが初版です.

その時点では VB で書いたことと複数ファイルが選択できること,フォルダ内一括処理ができること,くらいしか違いがありませんでしたが,拙作「日付で分類」で日付情報を取るために PEF を読むルーチンを書いた勢いもあって,タグ情報をちゃんと読んでサムネイル位置を探すようにし,*istDS にも対応し,さらに,ここがポイントなのですが (苦笑),Exif ヘッダも (不完全ながら) ついた形で出力できるようになりました.処理速度はもうひとつですが,現像に比べればあっという間です (^^;.

なお,Pentax Photo Browser 3.0 には,埋め込み JPEG の抽出機能がついたようです.このソフトの役割は終わったかもしれません.
→ と思いましたが,動作が軽いのは実際にはたいへん大きく,個人的には PPB を使う気になれませんでした (^^;
K20D/K200D では RAW+JPEG の同時記録ができるので,そもそも必要ないと言えばないのですが,一応,同じように処理はできるようなので対応させてあります.

念のため.出力される Exif 情報は,メーカーノートを含めて完全ではありません.あくまでも「ある程度」です.意図的に出力していない項目もあります.

[その他]
例によって Visual Basic 6.0 SP6 / Windows XP SP3 環境で作っています.
動作確認は同環境以外は Windows 7 のみ.
ファイルアクセスがボトルネックになるのは VB のお約束かも.それでもちょっとは工夫してるんですが.

[ご意見等は]
苦情とかはご遠慮願いたいところですが,一応連絡先は,こちらでございます.
頻繁にチェックしてるわけでもないので,あんまり迅速な応答を期待しないでね(^^;

[感謝]
初期バージョンではこちらの情報に基づいてサムネイルのありかを取得していました.
*istDS の raw ファイルは2chの関連スレッドで提供されたものを解析させていただきました.
Exif ヘッダの解読には橘家鶴蔵氏の解説資料が大変参考になりました.
K100D の PEF ファイルはリトアニアのMartynas_ds氏に,
K-m の PEF ファイルは iwana@mixi 氏に,
K-5 の PEF ファイルは ドイツのU. Witte氏に提供いただきました.

開発に当たっては web 上の VB 関係の tips や,いくつもの有用なフリーソフトを援用させていただいております.
今回はとくに Stirling (バイナリエディタ) と Exif Reader に大変にお世話になりました.

[変更履歴] (単なる個人的メモです)
Ver.1.3.6 K-5,K-x,K-r に対応.
Ver.1.3.5 K-7 に対応.
Ver.1.3.4 K-m に対応.
Ver.1.3.3 K20D/200D に仮対応.バグフィックス.
Ver.1.3.2 抽出ファイルの識別子を L1 から _L1 に変更.
Ver.1.3.0 K100D に正式対応.メーカーノーツの情報修正.K10D での動作確認 (Alexandar Kurjakov 氏の報告後,作者確認).
Ver.1.2.7 K100D の PEF ファイルに対応 (暫定).
Ver.1.2.6 DS2/DL2 での動作確認.
Ver.1.2.5 iniファイルがないときに起動できないバグの修正 (Jens Rösener 氏の報告による) (1.2.1〜1.2.4 で発生).
Ver.1.2.4 DS 以降の Orientation tag を復元するように (Nathanaël Lécaudé 氏のリクエストによる)
Ver.1.2.3 DL に対応.未確認ながら DS2 でも動くと思う.
Ver.1.2.2 ショートカットをドロップされたときにリンク先を開くように.ファイルの個別選択時のプログレスバーの表示の修正.
Ver.1.2.1 画像データの書き込み部のバグフィックス,D&D のバグの修正
Ver.1.2.0 書き込みタグの追加 (Pentax Browser 1.1 で完全表示)
Ver.1.1.0 Sub IFD のエントリ数が間違っていたのを修正.スペシャルフォルダーへのショートカットボタン
Ver.1.0.0 Exif もどき出力に対応
Ver.0.4.1 抽出ファイルのタイムスタンプを撮影日時に.
Ver.0.4.0 出力先フォルダを選択可能に (Akaoka Katsuaki 氏のリクエストによる)
Ver.0.3.0 タグの正統的なw解析に変更
Ver.0.2.0 *istDS の PEF に暫定対応
Ver.0.1.0 公開初版