Browse Source

Merge pull request #4346 from p01/patch-2

Fill the initial JBIG2 buffer with 0xFF only if defaultPixelValue is set
Yury Delendik 11 years ago
parent
commit
4763e3fe51
  1. 14
      src/core/jbig2.js

14
src/core/jbig2.js

@ -115,7 +115,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
} }
}, },
readBit: function ArithmeticDecoder_readBit(contexts, pos) { readBit: function ArithmeticDecoder_readBit(contexts, pos) {
// contexts are packed into 1 byte: // contexts are packed into 1 byte:
// highest 7 bits carry cx.index, lowest bit carries cx.mps // highest 7 bits carry cx.index, lowest bit carries cx.mps
var cx_index = contexts[pos] >> 1, cx_mps = contexts[pos] & 1; var cx_index = contexts[pos] >> 1, cx_mps = contexts[pos] & 1;
var qeTableIcx = QeTable[cx_index]; var qeTableIcx = QeTable[cx_index];
@ -607,7 +607,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
var offsetT = t - ((referenceCorner & 1) ? 0 : symbolHeight); var offsetT = t - ((referenceCorner & 1) ? 0 : symbolHeight);
var offsetS = currentS - ((referenceCorner & 2) ? symbolWidth : 0); var offsetS = currentS - ((referenceCorner & 2) ? symbolWidth : 0);
if (transposed) { if (transposed) {
// Place Symbol Bitmap from T1,S1 // Place Symbol Bitmap from T1,S1
for (var s2 = 0; s2 < symbolHeight; s2++) { for (var s2 = 0; s2 < symbolHeight; s2++) {
var row = bitmap[offsetS + s2]; var row = bitmap[offsetS + s2];
if (!row) { if (!row) {
@ -994,9 +994,13 @@ var Jbig2Image = (function Jbig2ImageClosure() {
this.currentPageInfo = info; this.currentPageInfo = info;
var rowSize = (info.width + 7) >> 3; var rowSize = (info.width + 7) >> 3;
var buffer = new Uint8Array(rowSize * info.height); var buffer = new Uint8Array(rowSize * info.height);
var fill = info.defaultPixelValue ? 0xFF : 0; // The contents of ArrayBuffers are initialized to 0.
for (var i = 0, ii = buffer.length; i < ii; i++) // Fill the buffer with 0xFF only if info.defaultPixelValue is set
buffer[i] = fill; if (info.defaultPixelValue) {
for (var i = 0, ii = buffer.length; i < ii; i++) {
buffer[i] = 0xFF;
}
}
this.buffer = buffer; this.buffer = buffer;
}, },
drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) { drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) {

Loading…
Cancel
Save