MCPcopy Create free account
hub / github.com/benfry/processing4 / labToXyz

Method labToXyz

app/src/processing/app/ui/Theme.java:309–337  ·  view source on GitHub ↗
(double el, double ay, double be)

Source from the content-addressed store, hash-verified

307// double var_X = lab[1] / 500 + var_Y;
308// double var_Z = var_Y - lab[2] / 200.0;
309 static private double[] labToXyz(double el, double ay, double be) {
310 double var_Y = (el + 16) / 116;
311 double var_X = ay / 500 + var_Y;
312 double var_Z = var_Y - be / 200;
313
314// if ( var_Y^3 > 0.008856 ) var_Y = var_Y^3
315// else var_Y = ( var_Y - 16 / 116 ) / 7.787
316// if ( var_X^3 > 0.008856 ) var_X = var_X^3
317// else var_X = ( var_X - 16 / 116 ) / 7.787
318// if ( var_Z^3 > 0.008856 ) var_Z = var_Z^3
319// else var_Z = ( var_Z - 16 / 116 ) / 7.787
320
321 final double amt = Math.pow(0.008856, 1/3.0);
322 var_Y = (var_Y > amt) ?
323 Math.pow(var_Y, 3) : (var_Y - 16/116.0) / 7.787;
324 var_X = (var_X > amt) ?
325 Math.pow(var_X, 3) : (var_X - 16/116.0) / 7.787;
326 var_Z = (var_Z > amt) ?
327 Math.pow(var_Z, 3) : (var_Z - 16/116.0) / 7.787;
328
329// X = ref_X * var_X //ref_X = 95.047 Observer= 2°, Illuminant= D65
330// Y = ref_Y * var_Y //ref_Y = 100.000
331// Z = ref_Z * var_Z //ref_Z = 108.883
332 return new double[] {
333 REF_X * var_X,
334 REF_Y * var_Y,
335 REF_Z * var_Z
336 };
337 }
338
339
340 static private double[] xzyToRgb(double[] xyz) {

Callers 1

makeGradientLabMethod · 0.95

Calls 1

powMethod · 0.80

Tested by

no test coverage detected