@ -600,10 +600,6 @@ var JpegImage = (function JpegImageClosure() {
@@ -600,10 +600,6 @@ var JpegImage = (function JpegImageClosure() {
return component . blockData ;
}
function clamp0to255 ( a ) {
return a <= 0 ? 0 : a >= 255 ? 255 : a ;
}
function findNextFileMarker ( data , currentPos , startPos ) {
function peekUint16 ( pos ) {
return ( data [ pos ] << 8 ) | data [ pos + 1 ] ;
@ -919,7 +915,7 @@ var JpegImage = (function JpegImageClosure() {
@@ -919,7 +915,7 @@ var JpegImage = (function JpegImageClosure() {
var output ;
var numComponents = this . components . length ;
var dataLength = width * height * numComponents ;
var data = new Uint8Array ( dataLength ) ;
var data = new Uint8Clamped Array ( dataLength ) ;
var xScaleBlockOffset = new Uint32Array ( width ) ;
var mask3LSB = 0xfffffff8 ; // used to clear the 3 LSBs
@ -985,12 +981,12 @@ var JpegImage = (function JpegImageClosure() {
@@ -985,12 +981,12 @@ var JpegImage = (function JpegImageClosure() {
_convertYccToRgb : function convertYccToRgb ( data ) {
var Y , Cb , Cr ;
for ( var i = 0 , length = data . length ; i < length ; i += 3 ) {
Y = data [ i ] ;
Y = data [ i ] ;
Cb = data [ i + 1 ] ;
Cr = data [ i + 2 ] ;
data [ i ] = clamp0to255 ( Y - 179.456 + 1.402 * Cr ) ;
data [ i + 1 ] = clamp0to255 ( Y + 135.459 - 0.344 * Cb - 0.714 * Cr ) ;
data [ i + 2 ] = clamp0to255 ( Y - 226.816 + 1.772 * Cb ) ;
data [ i ] = Y - 179.456 + 1.402 * Cr ;
data [ i + 1 ] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr ;
data [ i + 2 ] = Y - 226.816 + 1.772 * Cb ;
}
return data ;
} ,
@ -999,12 +995,12 @@ var JpegImage = (function JpegImageClosure() {
@@ -999,12 +995,12 @@ var JpegImage = (function JpegImageClosure() {
var Y , Cb , Cr , k ;
var offset = 0 ;
for ( var i = 0 , length = data . length ; i < length ; i += 4 ) {
Y = data [ i ] ;
Y = data [ i ] ;
Cb = data [ i + 1 ] ;
Cr = data [ i + 2 ] ;
k = data [ i + 3 ] ;
var r = - 122.67195406894 +
data [ offset ++ ] = - 122.67195406894 +
Cb * ( - 6.60635669420364 e - 5 * Cb + 0.000437130475926232 * Cr -
5.4080610064599 e - 5 * Y + 0.00048449797120281 * k -
0.154362151871126 ) +
@ -1014,7 +1010,7 @@ var JpegImage = (function JpegImageClosure() {
@@ -1014,7 +1010,7 @@ var JpegImage = (function JpegImageClosure() {
0.48357088451265 ) +
k * ( - 0.000336197177618394 * k + 0.484791561490776 ) ;
var g = 107.268039397724 +
data [ offset ++ ] = 107.268039397724 +
Cb * ( 2.19927104525741 e - 5 * Cb - 0.000640992018297945 * Cr +
0.000659397001245577 * Y + 0.000426105652938837 * k -
0.176491792462875 ) +
@ -1024,7 +1020,7 @@ var JpegImage = (function JpegImageClosure() {
@@ -1024,7 +1020,7 @@ var JpegImage = (function JpegImageClosure() {
0.25802910206845 ) +
k * ( - 0.000318913117588328 * k - 0.213742400323665 ) ;
var b = - 20.810012546947 +
data [ offset ++ ] = - 20.810012546947 +
Cb * ( - 0.000570115196973677 * Cb - 2.63409051004589 e - 5 * Cr +
0.0020741088115012 * Y - 0.00288260236853442 * k +
0.814272968359295 ) +
@ -1033,10 +1029,6 @@ var JpegImage = (function JpegImageClosure() {
@@ -1033,10 +1029,6 @@ var JpegImage = (function JpegImageClosure() {
Y * ( 0.00174418132927582 * Y - 0.00255243321439347 * k +
0.116935020465145 ) +
k * ( - 0.000343531996510555 * k + 0.24165260232407 ) ;
data [ offset ++ ] = clamp0to255 ( r ) ;
data [ offset ++ ] = clamp0to255 ( g ) ;
data [ offset ++ ] = clamp0to255 ( b ) ;
}
return data ;
} ,
@ -1044,12 +1036,12 @@ var JpegImage = (function JpegImageClosure() {
@@ -1044,12 +1036,12 @@ var JpegImage = (function JpegImageClosure() {
_convertYcckToCmyk : function convertYcckToCmyk ( data ) {
var Y , Cb , Cr ;
for ( var i = 0 , length = data . length ; i < length ; i += 4 ) {
Y = data [ i ] ;
Y = data [ i ] ;
Cb = data [ i + 1 ] ;
Cr = data [ i + 2 ] ;
data [ i ] = clamp0to255 ( 434.456 - Y - 1.402 * Cr ) ;
data [ i + 1 ] = clamp0to255 ( 119.541 - Y + 0.344 * Cb + 0.714 * Cr ) ;
data [ i + 2 ] = clamp0to255 ( 481.816 - Y - 1.772 * Cb ) ;
data [ i ] = 434.456 - Y - 1.402 * Cr ;
data [ i + 1 ] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr ;
data [ i + 2 ] = 481.816 - Y - 1.772 * Cb ;
// K in data[i + 3] is unchanged
}
return data ;
@ -1058,45 +1050,42 @@ var JpegImage = (function JpegImageClosure() {
@@ -1058,45 +1050,42 @@ var JpegImage = (function JpegImageClosure() {
_convertCmykToRgb : function convertCmykToRgb ( data ) {
var c , m , y , k ;
var offset = 0 ;
var min = - 255 * 255 * 255 ;
var scale = 1 / 255 / 255 ;
var scale = 1 / 255 ;
for ( var i = 0 , length = data . length ; i < length ; i += 4 ) {
c = data [ i ] ;
m = data [ i + 1 ] ;
y = data [ i + 2 ] ;
k = data [ i + 3 ] ;
c = data [ i ] * scale ;
m = data [ i + 1 ] * scale ;
y = data [ i + 2 ] * scale ;
k = data [ i + 3 ] * scale ;
var r =
data [ offset ++ ] = 255 +
c * ( - 4.387332384609988 * c + 54.48615194189176 * m +
18.82290502165302 * y + 212.25662451639585 * k -
72734.4411664936 ) +
285.2331026137004 ) +
m * ( 1.7149763477362134 * m - 5.6096736904047315 * y -
17.873870861415444 * k - 1401.7366389350734 ) +
17.873870861415444 * k - 5.497006427196366 ) +
y * ( - 2.5217340131683033 * y - 21.248923337353073 * k +
4465.541406466231 ) -
k * ( 21.86122147463605 * k + 48317.86113160301 ) ;
var g =
17.5119270841813 ) -
k * ( 21.86122147463605 * k + 189.48180835922747 ) ;
data [ offset ++ ] = 255 +
c * ( 8.841041422036149 * c + 60.118027045597366 * m +
6.871425592049007 * y + 31.159100130055922 * k -
20220.756542821975 ) +
79.2970844816548 ) +
m * ( - 15.310361306967817 * m + 17.575251261109482 * y +
131.35250912493976 * k - 48691.05921601825 ) +
131.35250912493976 * k - 190.9453302588951 ) +
y * ( 4.444339102852739 * y + 9.8632861493405 * k -
6341.191035517494 ) -
k * ( 20.737325471181034 * k + 47890.15695978492 ) ;
var b =
24.86741582555878 ) -
k * ( 20.737325471181034 * k + 187.80453709719578 ) ;
data [ offset ++ ] = 255 +
c * ( 0.8842522430003296 * c + 8.078677503112928 * m +
30.89978309703729 * y - 0.23883238689178934 * k -
3616.812083916688 ) +
14.183576799673286 ) +
m * ( 10.49593273432072 * m + 63.02378494754052 * y +
50.606957656360734 * k - 28620.9048469840 8) +
50.606957656360734 * k - 112.2388425371924 8) +
y * ( 0.03296041114873217 * y + 115.60384449646641 * k -
49363.43385999684 ) -
k * ( 22.33816807309886 * k + 45932.16563550634 ) ;
data [ offset ++ ] = r >= 0 ? 255 : r <= min ? 0 : 255 + r * scale | 0 ;
data [ offset ++ ] = g >= 0 ? 255 : g <= min ? 0 : 255 + g * scale | 0 ;
data [ offset ++ ] = b >= 0 ? 255 : b <= min ? 0 : 255 + b * scale | 0 ;
193.58209356861505 ) -
k * ( 22.33816807309886 * k + 180.12613974708367 ) ;
}
return data ;
} ,
@ -1110,7 +1099,7 @@ var JpegImage = (function JpegImageClosure() {
@@ -1110,7 +1099,7 @@ var JpegImage = (function JpegImageClosure() {
if ( this . numComponents === 1 && forceRGBoutput ) {
var dataLength = data . length ;
var rgbData = new Uint8Array ( dataLength * 3 ) ;
var rgbData = new Uint8Clamped Array ( dataLength * 3 ) ;
var offset = 0 ;
for ( var i = 0 ; i < dataLength ; i ++ ) {
var grayColor = data [ i ] ;