我在识别一些损坏的图像时遇到问题,运行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
您是否有一些想法如何检测这些图像?
提前致谢!
答案 0 :(得分:0)
判断JPEG是否损坏的唯一方法是解码它。我怀疑你使用的程序只检查JPEG流的结构。当压缩数据被搞砸时,这可能会很好。
答案 1 :(得分:0)
我有答案:这是一个有效的JPEG。有趣的图像是图像文件中存储的内容。