事例集 ファイルに不要データが有る場合 Back
ここから具体的な修復についての説明です。まずは、簡単な物から説明します。

不要データの除去

JPEGファイルのヘッダーより前に、不要なデータが有れば普通は表示出来ません。
但し、
Macintosh で作られたJPEGファイルはMACバイナリといって、128バイトの情報をそのファイルの先頭に付加している場合があり、一部の画像ビュアは先頭にSOIマーカが無いと128バイト目を捜してMACバイナリを無視しようとするものがあります。

JpegAnalyzer は、このような不要なデータを簡単に削除する事が出来ます。
Address Length Message
00000000     <=== 不明な領域 128 bytes
00000080 ****** SOI :Start Of Image ******
00000082 [0010] APP0 :JPEG File Interchange Format Ver 1.1 (JFIF)
         密度 72:72 dots/inch
00000094 [0084] DQT :Define Quantization Table
         00000098 QT0-8bit IJG輝度 画質90
         000000D9 QT1-8bit IJG色差 画質90
0000011A [0011] SOF0 :Start Of Frame 0 - Baseline DCT
         896[0] x 672[0] pixel - 24bit color (YCbCr 4:2:0)
         ComponentID-01 Y 2x2 QT0
         ComponentID-02 Cb 1x1 QT1
         ComponentID-03 Cr 1x1 QT1
0000012D [009F] DHT :Define Huffman Table
         00000131 HT0-DC CRC-DFDEB7C0
         0000014B HT0-AC CRC-783BB561
         0000017C HT1-DC CRC-3D792A5C
         00000195 HT1-AC CRC-31B49DFD
000001CE [000C] SOS :Start Of Scan 0-63[00]
         HT Selector[DC/AC] Y[0/0] Cb[1/1] Cr[1/1]
000001DC ****** Image Data ******
         Data Size 541,154 bytes
000843BE ****** EOI :End Of Image ******


        ◆ SOIマーカ以前に 128 バイトの無効なデータが有ります ◆

     Analyze End.

←リストのここをクリックして反転させ、領域切り取りを選ぶ



上記例では、先頭に128バイトの無効なデータがあります。
まず、
無効な領域を選択し、編集メニューまたはポップアップメニューの、領域切り取りを選びます。
他に問題が無ければ、プレビューボタンを押すと画像が確認出来ます。
その後、保存ボタンかファイルメニューの、名前を付けて保存を選び、修復したファイルを保存します。

画像の抜き出し

上記例では、表示を妨げている不要データを除去しましたが、1ファイル内に複数の画像が入っていた場合、削除だけでは効率が悪い場合があります。
同じファイルでの別の修復例を挙げます。
ケースバイケースで修復方法を変えれますので、使い方をいろいろ考えてみて下さい。


Address Length Message
00000000     <=== 不明な領域 128 bytes

00000080 ****** SOI :Start Of Image ******
00000082 [0010] APP0 :JPEG File Interchange Format Ver 1.1 (JFIF)
         密度 72:72 dots/inch
00000094 [0084] DQT :Define Quantization Table
         00000098 QT0-8bit IJG輝度 画質90
         000000D9 QT1-8bit IJG色差 画質90
0000011A [0011] SOF0 :Start Of Frame 0 - Baseline DCT
         896[0] x 672[0] pixel - 24bit color (YCbCr 4:2:0)
         ComponentID-01 Y 2x2 QT0
         ComponentID-02 Cb 1x1 QT1
         ComponentID-03 Cr 1x1 QT1
0000012D [009F] DHT :Define Huffman Table
         00000131 HT0-DC CRC-DFDEB7C0
         0000014B HT0-AC CRC-783BB561
         0000017C HT1-DC CRC-3D792A5C
         00000195 HT1-AC CRC-31B49DFD
000001CE [000C] SOS :Start Of Scan 0-63[00]
         HT Selector[DC/AC] Y[0/0] Cb[1/1] Cr[1/1]
000001DC ****** Image Data ******
         Data Size 541,154 bytes
000843BE ****** EOI :End Of Image ******





        ◆ SOIマーカ以前に 128 バイトの無効なデータが有ります ◆

     Analyze End.


上のリストのSOIからEOI(青色で反転している部分)を選択し、作業範囲を指定します。
編集メニューまたはポップアップメニューの、領域画像表示を選ぶと、正常ならプレビュー画面に画像が表示されます。
画像を保存する場合、範囲指定はそのままで、
分割ボタンを押します。
読み込んだ画像のあるフォルダーに元ファイル名に連番が付いたファイル名でファイルが出来ます。

ファイルの分割

上の例では分割ボタンで指定した部分をファイルにしましたが、分割ボタンはリストを選択していない場合、SOIマーカ単位でファイルを一度に分割する機能も持ちます。

※既にリストの一部が選択状態になっている場合、リストを
Wクリックするか[ESC]キーを押せば未選択状態にすることが出来ます。

Address Length Message
00000000     <=== 不明な領域 128 bytes

←ここはファイルにならない
00000080 ****** SOI :Start Of Image ******
00000082 [0010] APP0 :JPEG File Interchange Format Ver 1.1 (JFIF)
         密度 72:72 dots/inch
00000094 [0084] DQT :Define Quantization Table
         00000098 QT0-8bit IJG輝度 画質90
         000000D9 QT1-8bit IJG色差 画質90
0000011A [0011] SOF0 :Start Of Frame 0 - Baseline DCT
         896[0] x 672[0] pixel - 24bit color (YCbCr 4:2:0)
         ComponentID-01 Y 2x2 QT0
         ComponentID-02 Cb 1x1 QT1
         ComponentID-03 Cr 1x1 QT1
0000012D [009F] DHT :Define Huffman Table
         00000131 HT0-DC CRC-DFDEB7C0
         0000014B HT0-AC CRC-783BB561
         0000017C HT1-DC CRC-3D792A5C
         00000195 HT1-AC CRC-31B49DFD
000001CE [000C] SOS :Start Of Scan 0-63[00]
         HT Selector[DC/AC] Y[0/0] Cb[1/1] Cr[1/1]
000001DC ****** Image Data ******
         Data Size 541,154 bytes
000843BE ****** EOI :End Of Image ******

000843C0     <=== 不明な領域 17 bytes 
←ここは残ってしまう
←SOI一つ目から









【ファイル一つ目】










←SOI二つ目の前まで
000843D1 ****** SOI :Start Of Image ******
000843D3 [0010] APP0 :JPEG File Interchange Format Ver 1.1 (JFIF)
         密度 72:72 dots/inch
000843E5 [0043] DQT :Define Quantization Table
         000843E9 QT0-8bit IJG輝度 画質90
0008442A [0043] DQT :Define Quantization Table
         0008442E QT1-8bit IJG色差 画質90
0008446F [0011] SOF0 :Start Of Frame 0 - Baseline DCT
         896[0] x 672[0] pixel - 24bit color (YCbCr 4:2:0)
         ComponentID-01 Y 2x2 QT0
         ComponentID-02 Cb 1x1 QT1
         ComponentID-03 Cr 1x1 QT1
00084482 [001C] DHT :Define Huffman Table
         00084486 HT0-DC CRC-FC8302B3
000844A0 [0036] DHT :Define Huffman Table
         000844A4 HT0-AC CRC-889FC3DD
000844D8 [001C] DHT :Define Huffman Table
         000844DC HT1-DC CRC-FB07D079
000844F6 [003A] DHT :Define Huffman Table
         000844FA HT1-AC CRC-8FFDFBCF
00084532 [000C] SOS :Start Of Scan 0-63[00]
         HT Selector[DC/AC] Y[0/0] Cb[1/1] Cr[1/1]
00084540 ****** Image Data ******
         Data Size 552,954 bytes
0010B53A ****** EOI :End Of Image ******

←SOI二つ目から











【ファイル二つ目】











←終わりまで

        ◆ SOIマーカが 2個有ります ◆
        ◆ EOIマーカが 2個有ります ◆
        ◆ SOIマーカ以前に 128 バイトの無効なデータが有ります ◆
        ◆ 異常な領域・セグメントがあります ◆


     Analyze End.







上のリストの場合に、分割ボタンをリスト未選択で押せば、矢印で指定された範囲に分割され、ファイルが2つ出来ます。
SOIマーカから次のSOIマーカまでを一つのファイルとして分割しているだけで、JPEG構造までチェックしていないので、出来たファイルの中には正常に表示しないものが含まれるかもしれません。
例では最初の分割ファイルの不要な領域と書いている部分は残ってしまいます。
この場合、EOI以降に不要なデータが残るので表示には影響しません。

Top