|
|
|
@ -938,34 +938,42 @@ var Jbig2Image = (function Jbig2ImageClosure() {
@@ -938,34 +938,42 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|
|
|
|
var combinationOperator = pageInfo.combinationOperatorOverride ? |
|
|
|
|
regionInfo.combinationOperator : pageInfo.combinationOperator; |
|
|
|
|
var buffer = this.buffer; |
|
|
|
|
for (var i = 0; i < height; i++) { |
|
|
|
|
var mask = 128 >> (regionInfo.x & 7); |
|
|
|
|
var offset = (i + regionInfo.y) * rowSize + (regionInfo.x >> 3); |
|
|
|
|
switch (combinationOperator) { |
|
|
|
|
case 0: // OR
|
|
|
|
|
switch (combinationOperator) { |
|
|
|
|
case 0: // OR
|
|
|
|
|
for (var i = 0; i < height; i++) { |
|
|
|
|
var mask = 128 >> (regionInfo.x & 7); |
|
|
|
|
var offset = (i + regionInfo.y) * rowSize + (regionInfo.x >> 3); |
|
|
|
|
for (var j = 0; j < width; j++) { |
|
|
|
|
buffer[offset] |= bitmap[i][j] ? mask : 0; |
|
|
|
|
if (bitmap[i][j]) { |
|
|
|
|
buffer[offset] |= mask; |
|
|
|
|
} |
|
|
|
|
mask >>= 1; |
|
|
|
|
if (!mask) { |
|
|
|
|
mask = 128; |
|
|
|
|
offset++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case 2: // XOR
|
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case 2: // XOR
|
|
|
|
|
for (var i = 0; i < height; i++) { |
|
|
|
|
var mask = 128 >> (regionInfo.x & 7); |
|
|
|
|
var offset = (i + regionInfo.y) * rowSize + (regionInfo.x >> 3); |
|
|
|
|
for (var j = 0; j < width; j++) { |
|
|
|
|
buffer[offset] ^= bitmap[i][j] ? mask : 0; |
|
|
|
|
if (bitmap[i][j]) { |
|
|
|
|
buffer[offset] ^= mask; |
|
|
|
|
} |
|
|
|
|
mask >>= 1; |
|
|
|
|
if (!mask) { |
|
|
|
|
mask = 128; |
|
|
|
|
offset++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
error('JBIG2 error: operator ' + combinationOperator + |
|
|
|
|
' is not supported'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
error('JBIG2 error: operator ' + combinationOperator + |
|
|
|
|
' is not supported'); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
onImmediateGenericRegion: |
|
|
|
|