Fix for #3181: jbig2 encoding for number of instances greater than 1

This commit is contained in:
Manas (prometheansacrifice) 2014-03-24 11:05:07 +05:30
parent 42679e1f8b
commit 3025445cbe

View File

@ -445,8 +445,19 @@ var Jbig2Image = (function Jbig2ImageClosure() {
// 6.5.8.2 Refinement/aggregate-coded symbol bitmap
var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder);
if (numberOfInstances > 1) {
error('JBIG2 error: number of instances > 1 is not supported');
}
bitmap = decodeTextRegion(huffman, refinement,
currentWidth, currentHeight, 0,
numberOfInstances, 1, //strip size
symbols.concat(newSymbols),
symbolCodeLength,
0, //transposed
0, //ds offset
1, //top left 7.4.3.1.1
0, //OR operator
huffmanTables,
refinementTemplateIndex, refinementAt,
decodingContext);
} else {
var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);
var rdx = decodeInteger(contextCache, 'IARDX', decoder); // 6.4.11.3
var rdy = decodeInteger(contextCache, 'IARDY', decoder); // 6.4.11.4
@ -455,6 +466,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
bitmap = decodeRefinement(currentWidth, currentHeight,
refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt,
decodingContext);
}
} else {
// 6.5.8.1 Direct-coded symbol bitmap
bitmap = decodeBitmap(false, currentWidth, currentHeight,