WPDK  1.5.0
WordPress Development Kit
 All Data Structures Files Functions Variables Pages
wpdk-colors.php
Go to the documentation of this file.
1 <?php
12 class WPDKColors extends WPDKObject {
13 
21  public $__version = '1.0.2';
22 
36  public static function rgb2hex( $value )
37  {
38  if ( empty( $value ) ) {
39  return false;
40  }
41  $value = trim( $value );
42  $out = false;
43  if ( preg_match( "/^[0-9ABCDEFabcdef\#]+$/i", $value ) ) {
44  $value = str_replace( '#', '', $value );
45  $l = strlen( $value ) == 3 ? 1 : ( strlen( $value ) == 6 ? 2 : false );
46 
47  if ( $l ) {
48  unset( $out );
49  $out['red'] = hexdec( substr( $value, 0, 1 * $l ) );
50  $out['green'] = hexdec( substr( $value, 1 * $l, 1 * $l ) );
51  $out['blue'] = hexdec( substr( $value, 2 * $l, 1 * $l ) );
52  }
53  else {
54  $out = false;
55  }
56 
57  }
58  elseif ( preg_match( "/^[0-9]+(,| |.)+[0-9]+(,| |.)+[0-9]+$/i", $value ) ) {
59  $spr = str_replace( array( ',', ' ', '.' ), ':', $value );
60  $e = explode( ":", $spr );
61  if ( count( $e ) != 3 ) {
62  return false;
63  }
64  $out = '#';
65  for ( $i = 0; $i < 3; $i++ ) {
66  $e[$i] = dechex( ( $e[$i] <= 0 ) ? 0 : ( ( $e[$i] >= 255 ) ? 255 : $e[$i] ) );
67  }
68 
69  for ( $i = 0; $i < 3; $i++ ) {
70  $out .= ( ( strlen( $e[$i] ) < 2 ) ? '0' : '' ) . $e[$i];
71  }
72  $out = strtoupper( $out );
73  }
74  else {
75  $out = false;
76  }
77  return $out;
78  }
79 
93  public static function hexAddition( $hex, $num )
94  {
95  $rgb = self::rgb2hex( $hex );
96  if ( empty( $rgb ) ) {
97  return $hex;
98  }
99 
100  foreach ( $rgb as $key => $val ) {
101  $rgb[$key] += $num;
102  $rgb[$key] = ( $rgb[$key] < 0 ) ? 0 : $rgb[$key];
103  }
104  $hex = self::rgb2hex( implode( ',', $rgb ) );
105 
106  return $hex;
107  }
108 
109 }