|
|
@ -477,7 +477,7 @@ var Jbig2Image = (function Jbig2ImageClosure() { |
|
|
|
firstS += deltaFirstS; |
|
|
|
firstS += deltaFirstS; |
|
|
|
var currentS = firstS; |
|
|
|
var currentS = firstS; |
|
|
|
do { |
|
|
|
do { |
|
|
|
var currentT = (stripSize == 1 ? 0 : |
|
|
|
var currentT = (stripSize === 1 ? 0 : |
|
|
|
decodeInteger(contextCache, 'IAIT', decoder)); // 6.4.9
|
|
|
|
decodeInteger(contextCache, 'IAIT', decoder)); // 6.4.9
|
|
|
|
var t = stripSize * stripT + currentT; |
|
|
|
var t = stripSize * stripT + currentT; |
|
|
|
var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); |
|
|
|
var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); |
|
|
@ -582,7 +582,7 @@ var Jbig2Image = (function Jbig2ImageClosure() { |
|
|
|
var referredToCount = (referredFlags >> 5) & 7; |
|
|
|
var referredToCount = (referredFlags >> 5) & 7; |
|
|
|
var retainBits = [referredFlags & 31]; |
|
|
|
var retainBits = [referredFlags & 31]; |
|
|
|
var position = start + 6; |
|
|
|
var position = start + 6; |
|
|
|
if (referredFlags == 7) { |
|
|
|
if (referredFlags === 7) { |
|
|
|
referredToCount = readUint32(data, position - 1) & 0x1FFFFFFF; |
|
|
|
referredToCount = readUint32(data, position - 1) & 0x1FFFFFFF; |
|
|
|
position += 3; |
|
|
|
position += 3; |
|
|
|
var bytes = (referredToCount + 7) >> 3; |
|
|
|
var bytes = (referredToCount + 7) >> 3; |
|
|
@ -590,7 +590,7 @@ var Jbig2Image = (function Jbig2ImageClosure() { |
|
|
|
while (--bytes > 0) { |
|
|
|
while (--bytes > 0) { |
|
|
|
retainBits.push(data[position++]); |
|
|
|
retainBits.push(data[position++]); |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (referredFlags == 5 || referredFlags == 6) { |
|
|
|
} else if (referredFlags === 5 || referredFlags === 6) { |
|
|
|
error('JBIG2 error: invalid referred-to flags'); |
|
|
|
error('JBIG2 error: invalid referred-to flags'); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -600,8 +600,8 @@ var Jbig2Image = (function Jbig2ImageClosure() { |
|
|
|
var referredTo = []; |
|
|
|
var referredTo = []; |
|
|
|
var i, ii; |
|
|
|
var i, ii; |
|
|
|
for (i = 0; i < referredToCount; i++) { |
|
|
|
for (i = 0; i < referredToCount; i++) { |
|
|
|
var number = (referredToSegmentNumberSize == 1 ? data[position] : |
|
|
|
var number = (referredToSegmentNumberSize === 1 ? data[position] : |
|
|
|
(referredToSegmentNumberSize == 2 ? readUint16(data, position) : |
|
|
|
(referredToSegmentNumberSize === 2 ? readUint16(data, position) : |
|
|
|
readUint32(data, position))); |
|
|
|
readUint32(data, position))); |
|
|
|
referredTo.push(number); |
|
|
|
referredTo.push(number); |
|
|
|
position += referredToSegmentNumberSize; |
|
|
|
position += referredToSegmentNumberSize; |
|
|
@ -616,7 +616,7 @@ var Jbig2Image = (function Jbig2ImageClosure() { |
|
|
|
segmentHeader.length = readUint32(data, position); |
|
|
|
segmentHeader.length = readUint32(data, position); |
|
|
|
position += 4; |
|
|
|
position += 4; |
|
|
|
|
|
|
|
|
|
|
|
if (segmentHeader.length == 0xFFFFFFFF) { |
|
|
|
if (segmentHeader.length === 0xFFFFFFFF) { |
|
|
|
// 7.2.7 Segment data length, unknown segment length
|
|
|
|
// 7.2.7 Segment data length, unknown segment length
|
|
|
|
if (segmentType === 38) { // ImmediateGenericRegion
|
|
|
|
if (segmentType === 38) { // ImmediateGenericRegion
|
|
|
|
var genericRegionInfo = readRegionSegmentInformation(data, position); |
|
|
|
var genericRegionInfo = readRegionSegmentInformation(data, position); |
|
|
@ -639,12 +639,12 @@ var Jbig2Image = (function Jbig2ImageClosure() { |
|
|
|
while (j < searchPatternLength && searchPattern[j] === data[i + j]) { |
|
|
|
while (j < searchPatternLength && searchPattern[j] === data[i + j]) { |
|
|
|
j++; |
|
|
|
j++; |
|
|
|
} |
|
|
|
} |
|
|
|
if (j == searchPatternLength) { |
|
|
|
if (j === searchPatternLength) { |
|
|
|
segmentHeader.length = i + searchPatternLength; |
|
|
|
segmentHeader.length = i + searchPatternLength; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (segmentHeader.length == 0xFFFFFFFF) { |
|
|
|
if (segmentHeader.length === 0xFFFFFFFF) { |
|
|
|
error('JBIG2 error: segment end was not found'); |
|
|
|
error('JBIG2 error: segment end was not found'); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
@ -671,7 +671,7 @@ var Jbig2Image = (function Jbig2ImageClosure() { |
|
|
|
segment.end = position; |
|
|
|
segment.end = position; |
|
|
|
} |
|
|
|
} |
|
|
|
segments.push(segment); |
|
|
|
segments.push(segment); |
|
|
|
if (segmentHeader.type == 51) { |
|
|
|
if (segmentHeader.type === 51) { |
|
|
|
break; // end of file is found
|
|
|
|
break; // end of file is found
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -826,7 +826,7 @@ var Jbig2Image = (function Jbig2ImageClosure() { |
|
|
|
resolutionX: readUint32(data, position + 8), |
|
|
|
resolutionX: readUint32(data, position + 8), |
|
|
|
resolutionY: readUint32(data, position + 12) |
|
|
|
resolutionY: readUint32(data, position + 12) |
|
|
|
}; |
|
|
|
}; |
|
|
|
if (pageInfo.height == 0xFFFFFFFF) { |
|
|
|
if (pageInfo.height === 0xFFFFFFFF) { |
|
|
|
delete pageInfo.height; |
|
|
|
delete pageInfo.height; |
|
|
|
} |
|
|
|
} |
|
|
|
var pageSegmentFlags = data[position + 16]; |
|
|
|
var pageSegmentFlags = data[position + 16]; |
|
|
@ -866,10 +866,10 @@ var Jbig2Image = (function Jbig2ImageClosure() { |
|
|
|
|
|
|
|
|
|
|
|
function parseJbig2(data, start, end) { |
|
|
|
function parseJbig2(data, start, end) { |
|
|
|
var position = start; |
|
|
|
var position = start; |
|
|
|
if (data[position] != 0x97 || data[position + 1] != 0x4A || |
|
|
|
if (data[position] !== 0x97 || data[position + 1] !== 0x4A || |
|
|
|
data[position + 2] != 0x42 || data[position + 3] != 0x32 || |
|
|
|
data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || |
|
|
|
data[position + 4] != 0x0D || data[position + 5] != 0x0A || |
|
|
|
data[position + 4] !== 0x0D || data[position + 5] !== 0x0A || |
|
|
|
data[position + 6] != 0x1A || data[position + 7] != 0x0A) { |
|
|
|
data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) { |
|
|
|
error('JBIG2 error: invalid header'); |
|
|
|
error('JBIG2 error: invalid header'); |
|
|
|
} |
|
|
|
} |
|
|
|
var header = {}; |
|
|
|
var header = {}; |
|
|
|