123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?php
- namespace Grafika;
- /**
- * Holds the color information.
- * @package Grafika
- */
- class Color {
- /**
- * @var string Hex string: #FFFFFF
- */
- protected $hexString;
- /**
- * @var float Transparency value 0-1
- */
- protected $alpha;
- /**
- * Color constructor.
- *
- * @param string $hexString Hex string
- * @param float $alpha Transparency value 0-1
- */
- public function __construct( $hexString = '', $alpha = 1.0 ){
- $this->hexString = $hexString; // TODO: Validate hexstring
- $this->alpha = $alpha;
- }
- /**
- * Get RGB array
- *
- * @return array Contains array($r, $g, $b)
- */
- public function getRgb(){
- return $this->hexToRgb( $this->hexString );
- }
- /**
- * Get RGBA array
- *
- * @return array Contains array($r, $g, $b, $a)
- */
- public function getRgba(){
- $rgba = $this->hexToRgb( $this->hexString );
- $rgba[] = $this->alpha;
- return $rgba;
- }
- /**
- * Convert hex string to RGB
- * @param string $hex Hex string. Possible values: #ffffff, #fff, fff
- * @return array Contains (RGB) values red, green and blue
- */
- public function hexToRgb( $hex ) {
- $hex = ltrim($hex, '#'); // Remove #
- if(strlen($hex) == 3) {
- $r = hexdec(substr($hex,0,1).substr($hex,0,1));
- $g = hexdec(substr($hex,1,1).substr($hex,1,1));
- $b = hexdec(substr($hex,2,1).substr($hex,2,1));
- } else {
- $r = hexdec(substr($hex,0,2));
- $g = hexdec(substr($hex,2,2));
- $b = hexdec(substr($hex,4,2));
- }
- return array($r, $g, $b); // Returns an array with the rgb values
- }
- /**
- * Get hex string.
- *
- * @return string
- */
- public function getHexString() {
- return $this->hexString;
- }
- /**
- * Set hex string.
- *
- * @param string $hexString
- */
- public function setHexString($hexString) {
- $this->hexString = $hexString;
- }
- /**
- * Alpha value.
- * @return float
- */
- public function getAlpha() {
- return $this->alpha;
- }
- /**
- * @param float $alpha
- */
- public function setAlpha($alpha) {
- $this->alpha = $alpha;
- }
- }
|