Merge pull request #1881 from yurydelendik/jbig2-2
Adds lossless segment types; fixes generic region prediction flag
This commit is contained in:
commit
f98db29e0c
12
src/jbig2.js
12
src/jbig2.js
@ -795,6 +795,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
data, position, end];
|
data, position, end];
|
||||||
break;
|
break;
|
||||||
case 6: // ImmediateTextRegion
|
case 6: // ImmediateTextRegion
|
||||||
|
case 7: // ImmediateLosslessTextRegion
|
||||||
var textRegion = {};
|
var textRegion = {};
|
||||||
textRegion.info = readRegionSegmentInformation(data, position);
|
textRegion.info = readRegionSegmentInformation(data, position);
|
||||||
position += RegionSegmentInformationFieldLength;
|
position += RegionSegmentInformationFieldLength;
|
||||||
@ -841,13 +842,14 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
args = [textRegion, header.referredTo, data, position, end];
|
args = [textRegion, header.referredTo, data, position, end];
|
||||||
break;
|
break;
|
||||||
case 38: // ImmediateGenericRegion
|
case 38: // ImmediateGenericRegion
|
||||||
|
case 39: // ImmediateLosslessGenericRegion
|
||||||
var genericRegion = {};
|
var genericRegion = {};
|
||||||
genericRegion.info = readRegionSegmentInformation(data, position);
|
genericRegion.info = readRegionSegmentInformation(data, position);
|
||||||
position += RegionSegmentInformationFieldLength;
|
position += RegionSegmentInformationFieldLength;
|
||||||
var genericRegionSegmentFlags = data[position++];
|
var genericRegionSegmentFlags = data[position++];
|
||||||
genericRegion.mmr = !!(genericRegionSegmentFlags & 1);
|
genericRegion.mmr = !!(genericRegionSegmentFlags & 1);
|
||||||
genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;
|
genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;
|
||||||
genericRegion.prediction = !!(genericRegionSegmentFlags & 4);
|
genericRegion.prediction = !!(genericRegionSegmentFlags & 8);
|
||||||
if (!genericRegion.mmr) {
|
if (!genericRegion.mmr) {
|
||||||
var atLength = genericRegion.template == 0 ? 4 : 1;
|
var atLength = genericRegion.template == 0 ? 4 : 1;
|
||||||
var at = [];
|
var at = [];
|
||||||
@ -988,6 +990,10 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
region.at, decodingContext);
|
region.at, decodingContext);
|
||||||
this.drawBitmap(regionInfo, bitmap);
|
this.drawBitmap(regionInfo, bitmap);
|
||||||
},
|
},
|
||||||
|
onImmediateLosslessGenericRegion:
|
||||||
|
function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() {
|
||||||
|
this.onImmediateGenericRegion.apply(this, arguments);
|
||||||
|
},
|
||||||
onSymbolDictionary:
|
onSymbolDictionary:
|
||||||
function SimpleSegmentVisitor_onSymbolDictionary(dictionary,
|
function SimpleSegmentVisitor_onSymbolDictionary(dictionary,
|
||||||
currentSegment,
|
currentSegment,
|
||||||
@ -1036,6 +1042,10 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
region.referenceCorner, region.combinationOperator, huffmanTables,
|
region.referenceCorner, region.combinationOperator, huffmanTables,
|
||||||
region.refinementTemplate, region.refinementAt, decodingContext);
|
region.refinementTemplate, region.refinementAt, decodingContext);
|
||||||
this.drawBitmap(regionInfo, bitmap);
|
this.drawBitmap(regionInfo, bitmap);
|
||||||
|
},
|
||||||
|
onImmediateLosslessTextRegion:
|
||||||
|
function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {
|
||||||
|
this.onImmediateTextRegion.apply(this, arguments);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user