RAWファイルに埋め込まれたJPEGプレビューを取り出します。RAWデコーダは使いません
RAW(生データ)ファイルは、イメージセンサーが受け取った値をほぼそのまま記録したものです。センサーの各画素は1色分の明るさしか持たないため、人が見られる画像にするにはデモザイクと呼ばれる補間処理が必要で、これがいわゆる「RAW現像」です。
一方で、カメラは撮影のたびに背面液晶へ画像を表示する必要があります。そのため、多くのカメラは撮影時に自分でJPEGを生成し、RAWファイルの中に一緒に格納します。機種によっては、ほぼフルサイズのJPEGが入っています。撮って出しの確認や、写真の選別(セレクト)用途であれば、このJPEGで十分なことが少なくありません。
本ツールはRAWのデコード処理を一切行いません。行っているのは次の2つだけです。
II*\0 / MM\0*)、Panasonic RW2(IIU\0)、Olympus ORF(IIRO など)、FUJIFILM RAF(FUJIFILMCCD-RAW)、Canon CR3(ISO BMFF の ftyp+crx)、SIGMA X3F(FOVb)を見分けます。FF D8 FF(SOI)を探し、そこからJPEGのマーカー構造を順にたどって FF D9(EOI)まで到達できるかを検証します。到達できたものだけを本物のJPEGとみなし、SOFマーカーから縦横のピクセル数を読み取ります。マーカー構造の検証を通しているため、たまたま FF D8 FF という並びがセンサーデータ中に現れただけの偽陽性は除外されます。取り出したバイト列はファイル内のJPEGそのままで、再エンコードは行っていないため画質の劣化もありません。
RAWを完全にデコードするには LibRaw のようなライブラリが必要です。LibRawはLGPL 2.1 または CDDL 1.0 の選択制で提供されており(2026年7月20日確認、COPYRIGHT)、どちらを選んでも一定の義務が生じます。WebAssemblyに移植して自サイトで配信すれば、その義務は配信側にかかります。
埋め込みJPEGの取り出しはJPEGのマーカー構造を読むだけで完結し、RAWデコーダを必要としません。「できることは限られるが、ライセンス上の関係が単純」というのが本ツールの立ち位置です。この背景は解説記事で詳しく整理しています。
| 状況 | 結果 |
|---|---|
| 大きなJPEGプレビューを埋め込む機種 | フルサイズに近い画像が取り出せることがある |
| サムネイルしか埋め込まない機種・設定 | 数百ピクセル程度の小さな画像のみ |
| プレビューを暗号化・独自圧縮している場合 | 取り出せない(本ツールは復号を行わない) |
| 可逆圧縮RAWのみでJPEGを持たない場合 | 取り出せない |
本ツールは見つかったプレビューをすべて一覧表示し、それぞれの実寸とサイズを示します。何も見つからなかった場合はその旨を表示します。特定の機種で必ず取り出せることを保証するものではありませんので、実際のファイルでお確かめください。
いいえ。ファイルの解析と取り出しはすべてお使いのブラウザ内のJavaScriptで完結します。選択したファイルがサーバーへ送信・保存されることはありません。RAWファイルは数十MBになることが多いため、この方式は転送量の面でも有利です。
いいえ。本ツールはRAWのセンサーデータをデモザイク(現像)しません。多くのRAWファイルには、撮影時にカメラ自身が生成したJPEGプレビューが埋め込まれています。本ツールはそのJPEGの位置を探して、そのままのバイト列を取り出しているだけです。ホワイトバランスや露出を後から調整するといったRAW現像本来の利点は得られません。
カメラと設定によって異なります。フルサイズに近い大きなJPEGを埋め込む機種もあれば、数百ピクセル程度のサムネイルしか持たない機種もあります。本ツールは見つかったプレビューをすべて一覧表示し、それぞれの実際のピクセル寸法とファイルサイズを示すので、取り出す前に確認できます。
RAWを完全にデコードするにはLibRawなどのライブラリが必要で、LGPL 2.1やCDDL 1.0といったライセンス上の義務が生じます。埋め込みJPEGの取り出しはJPEGのマーカー構造を読むだけで済み、RAWデコーダを一切必要としません。ライセンス面の詳細は解説記事を参照してください。