|
|
@ -668,9 +668,11 @@ var JpegImage = (function jpegImage() { |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)
|
|
|
|
case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)
|
|
|
|
|
|
|
|
case 0xFFC1: // SOF1 (Start of Frame, Extended DCT)
|
|
|
|
case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT)
|
|
|
|
case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT)
|
|
|
|
readUint16(); // skip data length
|
|
|
|
readUint16(); // skip data length
|
|
|
|
frame = {}; |
|
|
|
frame = {}; |
|
|
|
|
|
|
|
frame.extended = (fileMarker === 0xFFC1); |
|
|
|
frame.progressive = (fileMarker === 0xFFC2); |
|
|
|
frame.progressive = (fileMarker === 0xFFC2); |
|
|
|
frame.precision = data[offset++]; |
|
|
|
frame.precision = data[offset++]; |
|
|
|
frame.scanLines = readUint16(); |
|
|
|
frame.scanLines = readUint16(); |
|
|
@ -792,6 +794,21 @@ var JpegImage = (function jpegImage() { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
case 2: |
|
|
|
|
|
|
|
// PDF might compress two component data in custom colorspace
|
|
|
|
|
|
|
|
component1 = this.components[0]; |
|
|
|
|
|
|
|
component2 = this.components[1]; |
|
|
|
|
|
|
|
for (y = 0; y < height; y++) { |
|
|
|
|
|
|
|
component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)]; |
|
|
|
|
|
|
|
component2Line = component1.lines[0 | (y * component2.scaleY * scaleY)]; |
|
|
|
|
|
|
|
for (x = 0; x < width; x++) { |
|
|
|
|
|
|
|
Y = component1Line[0 | (x * component1.scaleX * scaleX)]; |
|
|
|
|
|
|
|
data[offset++] = Y; |
|
|
|
|
|
|
|
Y = component2Line[0 | (x * component2.scaleX * scaleX)]; |
|
|
|
|
|
|
|
data[offset++] = Y; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
break; |
|
|
|
case 3: |
|
|
|
case 3: |
|
|
|
// The default transform for three components is true
|
|
|
|
// The default transform for three components is true
|
|
|
|
colorTransform = true; |
|
|
|
colorTransform = true; |
|
|
|