export class ColorService { colorToHex(lncolor: number): string { let rgb=this.colorToRGB(lncolor); return this.RGBToHex(rgb[0],rgb[1],rgb[2]); } colorToRGB(lncolor: number ): number[] { let b=Math.floor(lncolor/(256*256)); let g=Math.floor((lncolor-(b*256*256))/256); let r=Math.floor(lncolor-b*256*256-g*256); return [r,g,b]; } RGBToHex(r,g,b): string { let bin = r << 16 | g << 8 | b; return '#'+(function(h){ return new Array(7-h.length).join("0")+h; })(bin.toString(16).toUpperCase()); } hexToColor(hex: string): number { if (hex.length<6) { let shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; hex = hex.replace(shorthandRegex, function(m, r, g, b) { return r + r + g + g + b + b; }); } let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); let color=parseInt(result[1], 16)+parseInt(result[2], 16)*256+parseInt(result[3], 16)*256*256; return color; } }