[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 namespace Box\Spout\Writer\Style; 4 5 use Box\Spout\Writer\Exception\InvalidColorException; 6 7 /** 8 * Class Color 9 * This class provides constants and functions to work with colors 10 * 11 * @package Box\Spout\Writer\Style 12 */ 13 class Color 14 { 15 /** Standard colors - based on Office Online */ 16 const BLACK = '000000'; 17 const WHITE = 'FFFFFF'; 18 const RED = 'FF0000'; 19 const DARK_RED = 'C00000'; 20 const ORANGE = 'FFC000'; 21 const YELLOW = 'FFFF00'; 22 const LIGHT_GREEN = '92D040'; 23 const GREEN = '00B050'; 24 const LIGHT_BLUE = '00B0E0'; 25 const BLUE = '0070C0'; 26 const DARK_BLUE = '002060'; 27 const PURPLE = '7030A0'; 28 29 /** 30 * Returns an RGB color from R, G and B values 31 * 32 * @api 33 * @param int $red Red component, 0 - 255 34 * @param int $green Green component, 0 - 255 35 * @param int $blue Blue component, 0 - 255 36 * @return string RGB color 37 */ 38 public static function rgb($red, $green, $blue) 39 { 40 self::throwIfInvalidColorComponentValue($red); 41 self::throwIfInvalidColorComponentValue($green); 42 self::throwIfInvalidColorComponentValue($blue); 43 44 return strtoupper( 45 self::convertColorComponentToHex($red) . 46 self::convertColorComponentToHex($green) . 47 self::convertColorComponentToHex($blue) 48 ); 49 } 50 51 /** 52 * Throws an exception is the color component value is outside of bounds (0 - 255) 53 * 54 * @param int $colorComponent 55 * @return void 56 * @throws \Box\Spout\Writer\Exception\InvalidColorException 57 */ 58 protected static function throwIfInvalidColorComponentValue($colorComponent) 59 { 60 if (!is_int($colorComponent) || $colorComponent < 0 || $colorComponent > 255) { 61 throw new InvalidColorException("The RGB components must be between 0 and 255. Received: $colorComponent"); 62 } 63 } 64 65 /** 66 * Converts the color component to its corresponding hexadecimal value 67 * 68 * @param int $colorComponent Color component, 0 - 255 69 * @return string Corresponding hexadecimal value, with a leading 0 if needed. E.g "0f", "2d" 70 */ 71 protected static function convertColorComponentToHex($colorComponent) 72 { 73 return str_pad(dechex($colorComponent), 2, '0', STR_PAD_LEFT); 74 } 75 76 /** 77 * Returns the ARGB color of the given RGB color, 78 * assuming that alpha value is always 1. 79 * 80 * @param string $rgbColor RGB color like "FF08B2" 81 * @return string ARGB color 82 */ 83 public static function toARGB($rgbColor) 84 { 85 return 'FF' . $rgbColor; 86 } 87 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |