当jpeginfo和识别没有错误时,识别明显损坏的jpeg

时间:2016-03-25 17:45:18

标签: jpeg identify

我在识别一些损坏的图像时遇到问题,运行e-clasified网站,用户每天上传数千张图片,有些图片看起来像那样 Broken image

它显然已被打破。但是 - 识别 jpeginfo 都没有看错。 我用谷歌搜索了所有可能的方法来检查这些图像,尝试了所有图像但没有成功。

我试图在该文件上运行jpegdump,但它没有显示任何错误(对于损坏和未损坏的图像,输出几乎相同):

jpegdump  < 1.jpg 
Offset 0x0000 Marker 0xffd8 SOI Start of Image 
Offset 0x0002 Marker 0xffdb DQT Define Quantization Table(s) length variable 0x43 
  JPEG_DQT_Parameters:
     QuantizationTableElementPrecision = 0
     QuantizationTableIdentifier = 0
       QuantizationTableElement 0 = 8
       QuantizationTableElement 1 = 6
       QuantizationTableElement 2 = 6
       QuantizationTableElement 3 = 7
       QuantizationTableElement 4 = 6
       QuantizationTableElement 5 = 5
       QuantizationTableElement 6 = 8
       QuantizationTableElement 7 = 7
       QuantizationTableElement 8 = 7
       QuantizationTableElement 9 = 7
       QuantizationTableElement 10 = 9
       QuantizationTableElement 11 = 9
       QuantizationTableElement 12 = 8
       QuantizationTableElement 13 = 10
       QuantizationTableElement 14 = 12
       QuantizationTableElement 15 = 20
       QuantizationTableElement 16 = 13
       QuantizationTableElement 17 = 12
       QuantizationTableElement 18 = 11
       QuantizationTableElement 19 = 11
       QuantizationTableElement 20 = 12
       QuantizationTableElement 21 = 25
       QuantizationTableElement 22 = 18
       QuantizationTableElement 23 = 19
       QuantizationTableElement 24 = 15
       QuantizationTableElement 25 = 20
       QuantizationTableElement 26 = 29
       QuantizationTableElement 27 = 26
       QuantizationTableElement 28 = 31
       QuantizationTableElement 29 = 30
       QuantizationTableElement 30 = 29
       QuantizationTableElement 31 = 26
       QuantizationTableElement 32 = 28
       QuantizationTableElement 33 = 28
       QuantizationTableElement 34 = 32
       QuantizationTableElement 35 = 36
       QuantizationTableElement 36 = 46
       QuantizationTableElement 37 = 39
       QuantizationTableElement 38 = 32
       QuantizationTableElement 39 = 34
       QuantizationTableElement 40 = 44
       QuantizationTableElement 41 = 35
       QuantizationTableElement 42 = 28
       QuantizationTableElement 43 = 28
       QuantizationTableElement 44 = 40
       QuantizationTableElement 45 = 55
       QuantizationTableElement 46 = 41
       QuantizationTableElement 47 = 44
       QuantizationTableElement 48 = 48
       QuantizationTableElement 49 = 49
       QuantizationTableElement 50 = 52
       QuantizationTableElement 51 = 52
       QuantizationTableElement 52 = 52
       QuantizationTableElement 53 = 31
       QuantizationTableElement 54 = 39
       QuantizationTableElement 55 = 57
       QuantizationTableElement 56 = 61
       QuantizationTableElement 57 = 56
       QuantizationTableElement 58 = 50
       QuantizationTableElement 59 = 60
       QuantizationTableElement 60 = 46
       QuantizationTableElement 61 = 51
       QuantizationTableElement 62 = 52
       QuantizationTableElement 63 = 50

Offset 0x0047 Marker 0xffdb DQT Define Quantization Table(s) length variable 0x43 
  JPEG_DQT_Parameters:
     QuantizationTableElementPrecision = 0
     QuantizationTableIdentifier = 1
       QuantizationTableElement 0 = 9
       QuantizationTableElement 1 = 9
       QuantizationTableElement 2 = 9
       QuantizationTableElement 3 = 12
       QuantizationTableElement 4 = 11
       QuantizationTableElement 5 = 12
       QuantizationTableElement 6 = 24
       QuantizationTableElement 7 = 13
       QuantizationTableElement 8 = 13
       QuantizationTableElement 9 = 24
       QuantizationTableElement 10 = 50
       QuantizationTableElement 11 = 33
       QuantizationTableElement 12 = 28
       QuantizationTableElement 13 = 33
       QuantizationTableElement 14 = 50
       QuantizationTableElement 15 = 50
       QuantizationTableElement 16 = 50
       QuantizationTableElement 17 = 50
       QuantizationTableElement 18 = 50
       QuantizationTableElement 19 = 50
       QuantizationTableElement 20 = 50
       QuantizationTableElement 21 = 50
       QuantizationTableElement 22 = 50
       QuantizationTableElement 23 = 50
       QuantizationTableElement 24 = 50
       QuantizationTableElement 25 = 50
       QuantizationTableElement 26 = 50
       QuantizationTableElement 27 = 50
       QuantizationTableElement 28 = 50
       QuantizationTableElement 29 = 50
       QuantizationTableElement 30 = 50
       QuantizationTableElement 31 = 50
       QuantizationTableElement 32 = 50
       QuantizationTableElement 33 = 50
       QuantizationTableElement 34 = 50
       QuantizationTableElement 35 = 50
       QuantizationTableElement 36 = 50
       QuantizationTableElement 37 = 50
       QuantizationTableElement 38 = 50
       QuantizationTableElement 39 = 50
       QuantizationTableElement 40 = 50
       QuantizationTableElement 41 = 50
       QuantizationTableElement 42 = 50
       QuantizationTableElement 43 = 50
       QuantizationTableElement 44 = 50
       QuantizationTableElement 45 = 50
       QuantizationTableElement 46 = 50
       QuantizationTableElement 47 = 50
       QuantizationTableElement 48 = 50
       QuantizationTableElement 49 = 50
       QuantizationTableElement 50 = 50
       QuantizationTableElement 51 = 50
       QuantizationTableElement 52 = 50
       QuantizationTableElement 53 = 50
       QuantizationTableElement 54 = 50
       QuantizationTableElement 55 = 50
       QuantizationTableElement 56 = 50
       QuantizationTableElement 57 = 50
       QuantizationTableElement 58 = 50
       QuantizationTableElement 59 = 50
       QuantizationTableElement 60 = 50
       QuantizationTableElement 61 = 50
       QuantizationTableElement 62 = 50
       QuantizationTableElement 63 = 50

Offset 0x008c Marker 0xffc0 SOF0 Huffman Baseline DCT length variable 0x11 
  JPEG_SOF_Parameters:
     SamplePrecision = 8
     nLines = 800
     nSamplesPerLine = 450
     nComponentsInFrame = 3
     component 0
       ComponentIdentifier = 1
       HorizontalSamplingFactor = 2
       VerticalSamplingFactor = 2
       QuantizationTableDestinationSelector = 0
     component 1
       ComponentIdentifier = 2
       HorizontalSamplingFactor = 1
       VerticalSamplingFactor = 1
       QuantizationTableDestinationSelector = 1
     component 2
       ComponentIdentifier = 3
       HorizontalSamplingFactor = 1
       VerticalSamplingFactor = 1
       QuantizationTableDestinationSelector = 1

Offset 0x009f Marker 0xffc4 DHT Define Huffman Table(s) length variable 0x1c 
  JPEG_DHT_Parameters:
     TableClass = 0
     HuffmanTableIdentifier = 0
       nHuffmanCodesOfLength 0 = 1
         ValueOfHuffmanCode 0 = 0
       nHuffmanCodesOfLength 1 = 0
       nHuffmanCodesOfLength 2 = 2
         ValueOfHuffmanCode 0 = 3
         ValueOfHuffmanCode 1 = 4
       nHuffmanCodesOfLength 3 = 3
         ValueOfHuffmanCode 0 = 1
         ValueOfHuffmanCode 1 = 2
         ValueOfHuffmanCode 2 = 5
       nHuffmanCodesOfLength 4 = 1
         ValueOfHuffmanCode 0 = 8
       nHuffmanCodesOfLength 5 = 1
         ValueOfHuffmanCode 0 = 6
       nHuffmanCodesOfLength 6 = 1
         ValueOfHuffmanCode 0 = 7
       nHuffmanCodesOfLength 7 = 0
       nHuffmanCodesOfLength 8 = 0
       nHuffmanCodesOfLength 9 = 0
       nHuffmanCodesOfLength 10 = 0
       nHuffmanCodesOfLength 11 = 0
       nHuffmanCodesOfLength 12 = 0
       nHuffmanCodesOfLength 13 = 0
       nHuffmanCodesOfLength 14 = 0
       nHuffmanCodesOfLength 15 = 0

Offset 0x00bd Marker 0xffc4 DHT Define Huffman Table(s) length variable 0x47 
  JPEG_DHT_Parameters:
     TableClass = 1
     HuffmanTableIdentifier = 0
       nHuffmanCodesOfLength 0 = 1
         ValueOfHuffmanCode 0 = 0
       nHuffmanCodesOfLength 1 = 0
       nHuffmanCodesOfLength 2 = 2
         ValueOfHuffmanCode 0 = 1
         ValueOfHuffmanCode 1 = 2
       nHuffmanCodesOfLength 3 = 2
         ValueOfHuffmanCode 0 = 3
         ValueOfHuffmanCode 1 = 17
       nHuffmanCodesOfLength 4 = 0
       nHuffmanCodesOfLength 5 = 4
         ValueOfHuffmanCode 0 = 4
         ValueOfHuffmanCode 1 = 18
         ValueOfHuffmanCode 2 = 33
         ValueOfHuffmanCode 3 = 49
       nHuffmanCodesOfLength 6 = 2
         ValueOfHuffmanCode 0 = 5
         ValueOfHuffmanCode 1 = 65
       nHuffmanCodesOfLength 7 = 6
         ValueOfHuffmanCode 0 = 19
         ValueOfHuffmanCode 1 = 34
         ValueOfHuffmanCode 2 = 81
         ValueOfHuffmanCode 3 = 97
         ValueOfHuffmanCode 4 = 129
         ValueOfHuffmanCode 5 = 209
       nHuffmanCodesOfLength 8 = 8
         ValueOfHuffmanCode 0 = 20
         ValueOfHuffmanCode 1 = 50
         ValueOfHuffmanCode 2 = 113
         ValueOfHuffmanCode 3 = 145
         ValueOfHuffmanCode 4 = 147
         ValueOfHuffmanCode 5 = 161
         ValueOfHuffmanCode 6 = 193
         ValueOfHuffmanCode 7 = 240
       nHuffmanCodesOfLength 9 = 2
         ValueOfHuffmanCode 0 = 66
         ValueOfHuffmanCode 1 = 177
       nHuffmanCodesOfLength 10 = 6
         ValueOfHuffmanCode 0 = 6
         ValueOfHuffmanCode 1 = 21
         ValueOfHuffmanCode 2 = 35
         ValueOfHuffmanCode 3 = 82
         ValueOfHuffmanCode 4 = 225
         ValueOfHuffmanCode 5 = 241
       nHuffmanCodesOfLength 11 = 7
         ValueOfHuffmanCode 0 = 36
         ValueOfHuffmanCode 1 = 51
         ValueOfHuffmanCode 2 = 52
         ValueOfHuffmanCode 3 = 68
         ValueOfHuffmanCode 4 = 98
         ValueOfHuffmanCode 5 = 99
         ValueOfHuffmanCode 6 = 115
       nHuffmanCodesOfLength 12 = 7
         ValueOfHuffmanCode 0 = 83
         ValueOfHuffmanCode 1 = 84
         ValueOfHuffmanCode 2 = 100
         ValueOfHuffmanCode 3 = 131
         ValueOfHuffmanCode 4 = 146
         ValueOfHuffmanCode 5 = 148
         ValueOfHuffmanCode 6 = 178
       nHuffmanCodesOfLength 13 = 5
         ValueOfHuffmanCode 0 = 37
         ValueOfHuffmanCode 1 = 85
         ValueOfHuffmanCode 2 = 130
         ValueOfHuffmanCode 3 = 132
         ValueOfHuffmanCode 4 = 210
       nHuffmanCodesOfLength 14 = 0
       nHuffmanCodesOfLength 15 = 0

Offset 0x0106 Marker 0xffc4 DHT Define Huffman Table(s) length variable 0x19 
  JPEG_DHT_Parameters:
     TableClass = 0
     HuffmanTableIdentifier = 1
       nHuffmanCodesOfLength 0 = 1
         ValueOfHuffmanCode 0 = 0
       nHuffmanCodesOfLength 1 = 1
         ValueOfHuffmanCode 0 = 2
       nHuffmanCodesOfLength 2 = 1
         ValueOfHuffmanCode 0 = 1
       nHuffmanCodesOfLength 3 = 1
         ValueOfHuffmanCode 0 = 3
       nHuffmanCodesOfLength 4 = 1
         ValueOfHuffmanCode 0 = 4
       nHuffmanCodesOfLength 5 = 1
         ValueOfHuffmanCode 0 = 5
       nHuffmanCodesOfLength 6 = 0
       nHuffmanCodesOfLength 7 = 0
       nHuffmanCodesOfLength 8 = 0
       nHuffmanCodesOfLength 9 = 0
       nHuffmanCodesOfLength 10 = 0
       nHuffmanCodesOfLength 11 = 0
       nHuffmanCodesOfLength 12 = 0
       nHuffmanCodesOfLength 13 = 0
       nHuffmanCodesOfLength 14 = 0
       nHuffmanCodesOfLength 15 = 0

Offset 0x0121 Marker 0xffc4 DHT Define Huffman Table(s) length variable 0x22 
  JPEG_DHT_Parameters:
     TableClass = 1
     HuffmanTableIdentifier = 1
       nHuffmanCodesOfLength 0 = 1
         ValueOfHuffmanCode 0 = 0
       nHuffmanCodesOfLength 1 = 1
         ValueOfHuffmanCode 0 = 1
       nHuffmanCodesOfLength 2 = 0
       nHuffmanCodesOfLength 3 = 2
         ValueOfHuffmanCode 0 = 2
         ValueOfHuffmanCode 1 = 17
       nHuffmanCodesOfLength 4 = 2
         ValueOfHuffmanCode 0 = 33
         ValueOfHuffmanCode 1 = 49
       nHuffmanCodesOfLength 5 = 3
         ValueOfHuffmanCode 0 = 3
         ValueOfHuffmanCode 1 = 18
         ValueOfHuffmanCode 2 = 65
       nHuffmanCodesOfLength 6 = 0
       nHuffmanCodesOfLength 7 = 3
         ValueOfHuffmanCode 0 = 19
         ValueOfHuffmanCode 1 = 81
         ValueOfHuffmanCode 2 = 97
       nHuffmanCodesOfLength 8 = 1
         ValueOfHuffmanCode 0 = 4
       nHuffmanCodesOfLength 9 = 1
         ValueOfHuffmanCode 0 = 34
       nHuffmanCodesOfLength 10 = 1
         ValueOfHuffmanCode 0 = 145
       nHuffmanCodesOfLength 11 = 0
       nHuffmanCodesOfLength 12 = 0
       nHuffmanCodesOfLength 13 = 0
       nHuffmanCodesOfLength 14 = 0
       nHuffmanCodesOfLength 15 = 0

Offset 0x0145 Marker 0xffda SOS Start of Scan length variable 0x0c 
  JPEG_SOS_Parameters:
     nComponentsPerScan = 3
     component 0
       ScanComponentSelector = 1
       DCEntropyCodingTableSelector = 0
       ACEntropyCodingTableSelector = 0
       MappingTableSelector(LS) = 0
     component 1
       ScanComponentSelector = 2
       DCEntropyCodingTableSelector = 1
       ACEntropyCodingTableSelector = 1
       MappingTableSelector(LS) = 17
     component 2
       ScanComponentSelector = 3
       DCEntropyCodingTableSelector = 1
       ACEntropyCodingTableSelector = 1
       MappingTableSelector(LS) = 17
     StartOfSpectralOrPredictorSelection/NearLosslessDifferenceBound(LS) = 0
     EndOfSpectralSelection/InterleaveMode(LS) = 63
     SuccessiveApproximationBitPositionHigh = 0
     SuccessiveApproximationBitPositionLowOrPointTransform = 0
Offset 0x020d Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x0230 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x02c9 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x0306 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x030f Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x0322 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x0349 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x0399 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x03a8 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x0438 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x044b Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x045c Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x0460 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x0471 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x0492 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x04da Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x04fb Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x052d Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x0584 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x05a9 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x05ba Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x0a74 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x1271 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x132a Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x1344 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x15bc Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x179b Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x19e9 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x1d11 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x1dff Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x1e58 Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x1ecb Encoded 0xff in entropy-coded segment followed by stuffed zero byte
Offset 0x261d Marker 0xffd9 EOI End of Image (JPEG 2000 EOC End of codestream) 
End of file

您是否有一些想法如何检测这些图像?

提前致谢!

2 个答案:

答案 0 :(得分:0)

判断JPEG是否损坏的唯一方法是解码它。我怀疑你使用的程序只检查JPEG流的结构。当压缩数据被搞砸时,这可能会很好。

答案 1 :(得分:0)

我有答案:这是一个有效的JPEG。有趣的图像是图像文件中存储的内容。