mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2025-01-01 02:38:43 -05:00
Invert Color#gray component.
This commit is contained in:
parent
727db4c5f2
commit
ca1a395dbd
2 changed files with 21 additions and 21 deletions
|
@ -178,21 +178,20 @@ var Color = this.Color = Base.extend(new function() {
|
|||
// Using the standard NTSC conversion formula that is used for
|
||||
// calculating the effective luminance of an RGB color:
|
||||
// http://www.mathworks.com/support/solutions/en/data/1-1ASCU/index.html?solution=1-1ASCU
|
||||
return [1 - (r * 0.2989 + g * 0.587 + b * 0.114)];
|
||||
return [r * 0.2989 + g * 0.587 + b * 0.114];
|
||||
},
|
||||
|
||||
'gray-rgb': function(g) {
|
||||
var comp = 1 - g;
|
||||
return [comp, comp, comp];
|
||||
return [g, g, g];
|
||||
},
|
||||
|
||||
'gray-hsb': function(g) {
|
||||
return [0, 0, 1 - g];
|
||||
return [0, 0, g];
|
||||
},
|
||||
|
||||
'gray-hsl': function(g) {
|
||||
// TODO: Is lightness really the same as brightness for gray?
|
||||
return [0, 0, 1 - g];
|
||||
return [0, 0, g];
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -310,7 +309,7 @@ var Color = this.Color = Base.extend(new function() {
|
|||
}
|
||||
// Default fallbacks: rgb, black
|
||||
this._type = type || 'rgb';
|
||||
this._components = components || (type === 'gray' ? [1] : [0, 0, 0]);
|
||||
this._components = components || (type === 'gray' ? [0] : [0, 0, 0]);
|
||||
this._alpha = alpha;
|
||||
if (this._read)
|
||||
this._read = read;
|
||||
|
|
|
@ -40,7 +40,7 @@ test('Set color to object', function() {
|
|||
var path = new Path();
|
||||
path.fillColor = { gray: 0.2 };
|
||||
compareColors(path.fillColor, new Color(0.2));
|
||||
equals(path.fillColor.toCss(), 'rgb(204, 204, 204)');
|
||||
equals(path.fillColor.toCss(), 'rgb(51, 51, 51)');
|
||||
});
|
||||
|
||||
test('Set color to array', function() {
|
||||
|
@ -73,15 +73,15 @@ test('Creating colors', function() {
|
|||
|
||||
test('Get gray from RGB Color', function() {
|
||||
var color = new Color(1, 0.5, 0.2);
|
||||
compareNumbers(color.gray, 0.3848);
|
||||
compareNumbers(color.gray, 0.6152);
|
||||
|
||||
var color = new Color(0.5, 0.2, 0.1);
|
||||
compareNumbers(color.gray, 0.72175);
|
||||
compareNumbers(color.gray, 0.27825);
|
||||
});
|
||||
|
||||
test('Get gray from HSB Color', function() {
|
||||
var color = new HsbColor(0, 0, 0.2);
|
||||
compareNumbers(color.gray, 0.80002);
|
||||
compareNumbers(color.gray, 0.19998);
|
||||
});
|
||||
|
||||
test('Get red from HSB Color', function() {
|
||||
|
@ -97,28 +97,29 @@ test('Get hue from RGB Color', function() {
|
|||
|
||||
test('Gray Color', function() {
|
||||
var color = new Color(1);
|
||||
compareNumbers(color.gray, 1);
|
||||
compareNumbers(color.red, 0);
|
||||
compareNumbers(color.blue, 0);
|
||||
compareNumbers(color.gray, 1, 'color.gray');
|
||||
compareNumbers(color.red, 1, 'color.red');
|
||||
compareNumbers(color.blue, 1, 'color.blue');
|
||||
|
||||
color.red = 0.5;
|
||||
compareNumbers(color.gray, 0.85055);
|
||||
console.log(color + '');
|
||||
compareNumbers(color.gray, 0.85045, 'color.gray');
|
||||
|
||||
color.green = 0.2;
|
||||
|
||||
compareNumbers(color.red, 0.5);
|
||||
compareNumbers(color.green, 0.2);
|
||||
compareNumbers(color.blue, 0);
|
||||
compareNumbers(color.red, 0.5, 'color.red');
|
||||
compareNumbers(color.green, 0.2, 'color.green');
|
||||
compareNumbers(color.blue, 1, 'color.blue');
|
||||
|
||||
compareNumbers(color.gray, 0.73315);
|
||||
compareNumbers(color.gray, 0.38085, 'color.gray');
|
||||
});
|
||||
|
||||
test('Converting Colors', function() {
|
||||
var rgbColor = new Color(1, 0.5, 0.2);
|
||||
compareNumbers(rgbColor.gray, 0.3848);
|
||||
compareNumbers(rgbColor.gray, 0.6152);
|
||||
var grayColor = new Color(0.2);
|
||||
compareColors(grayColor.convert('rgb'), new Color(0.8, 0.8, 0.8));
|
||||
compareColors(grayColor.convert('hsb'), { hue: 0, saturation: 0, brightness: 0.8 });
|
||||
compareColors(grayColor.convert('rgb'), new Color(0.2, 0.2, 0.2));
|
||||
compareColors(grayColor.convert('hsb'), { hue: 0, saturation: 0, brightness: 0.2 });
|
||||
compareColors(new Color(1, 0, 0).convert('hsb'), { hue: 0, saturation: 1, brightness: 1 });
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in a new issue