/** * class constructor. * @param mixed $value * @return SassColour */ public function __construct($value) { $this->value = $this->getComponents($value); if (empty(self::$_svgColours)) { self::$_svgColours = array_flip(self::$svgColours); } }
/** * Converts the colour to a string. * @param boolean whether to use CSS3 SVG1.0 colour names * @return string the colour as a named colour, rgba(r,g,g,a) or #rrggbb */ public function toString($css3 = true) { $rgba = $this->getRgba(); foreach ($rgba as $k => $v) { if (is_object($v)) { $rgba[$k] = $v->value; } } if ($rgba[3] == 0) { return 'transparent'; } elseif ($rgba[3] < 1) { $rgba[3] = round($rgba[3], 2); return sprintf('rgba(%d, %d, %d, %s)', $rgba[0], $rgba[1], $rgba[2], $rgba[3]); } else { $colour = sprintf('#%02x%02x%02x', round($rgba[0]), round($rgba[1]), round($rgba[2])); } if ($css3) { if (empty(self::$_svgColours)) { self::$_svgColours = array_flip(self::$svgColours); } return array_key_exists($colour, self::$_svgColours) ? self::$_svgColours[$colour] : $colour; } else { return array_key_exists($colour, self::$_html4Colours) ? self::$_html4Colours[$colour] : $colour; } }
/** * Converts the colour to a string. * @param boolean whether to use CSS3 SVG1.0 colour names * @return string the colour as a named colour, rgba(r,g,g,a) or #rrggbb */ public function toString($css3 = false) { $rgba = $this->rgba; if ($rgba[3] == 0) { return 'transparent'; } elseif ($rgba[3] < 1) { return sprintf('rgba(%d,%d,%d,%1.2f)', $rgba[0], $rgba[1], $rgba[2], $rgba[3]); } else { $colour = sprintf('#%02x%02x%02x', $rgba[0], $rgba[1], $rgba[2]); } if ($css3) { if (empty(self::$_svgColours)) { self::$_svgColours = array_flip(self::$svgColours); } return array_key_exists($colour, self::$svgColours) ? self::$_svgColours[$colour] : $colour; } else { return array_key_exists($colour, self::$_html4Colours) ? self::$_html4Colours[$colour] : $colour; } }