Last active
October 28, 2016 14:49
-
-
Save silvandiepen/d61e815cb55995edcbe11a87b6b90745 to your computer and use it in GitHub Desktop.
Convert different color formats using an Angular service
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
app.service('ColorService', [function() { | |
'use strict'; | |
var self = this; | |
// RGB to CMYK | |
self.hexToCmyk = function hexToCmyk(hex) { | |
var tint = tint | 'all'; | |
var rgb = self.hexToRgb(hex); | |
var r, g, b, c, m, y, max, k; | |
r = rgb.r / 255; | |
g = rgb.g / 255; | |
b = rgb.b / 255; | |
max = Math.max(r, g, b); | |
k = 1 - max; | |
if (k !== 1) { | |
c = (1 - r - k) / (1 - k); | |
m = (1 - g - k) / (1 - k); | |
y = (1 - b - k) / (1 - k); | |
} else { | |
c = 0; | |
m = 0; | |
y = 0; | |
} | |
var color = { | |
cyan: parseInt(c), | |
magenta: parseInt(m), | |
yellow: parseInt(y), | |
black: parseInt(k) | |
}; | |
return color; | |
}; | |
// RGB to HEX | |
self.rgbToHex = function rgbToHex(input) { | |
var rgb = self.hexToRgb(input); | |
var color = (rgb && rgb.length === 3) ? "#" + | |
("0" + parseInt(rgb[0], 10).toString(16)).slice(-2) + | |
("0" + parseInt(rgb[1], 10).toString(16)).slice(-2) + | |
("0" + parseInt(rgb[2], 10).toString(16)).slice(-2) : ''; | |
return color; | |
}; | |
// RGB to Pantone | |
self.rgbToPantone = function rgbToPantone(input) { | |
var color = input; | |
return color; | |
}; | |
// Hex to RGB | |
self.hexToRgb = function hexToRgb(hex, opacity) { | |
var tint = tint | 'all'; | |
opacity = opacity | 1; | |
hex = hex.replace('#', ''); | |
var color = { | |
red: parseInt(hex.substring(0, 2), 16), | |
green: parseInt(hex.substring(2, 4), 16), | |
blue: parseInt(hex.substring(4, 6), 16) | |
}; | |
return color; | |
}; | |
}]); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment