"GIF", IMG_JPG => "JPG", IMG_PNG => "PNG", IMG_WBMP => "WBMP" ); foreach ( $arrTypeBits as $intTypeBits => $strType ) { if ( imageTypes() & $intTypeBits ) { $arrTypes[] = $strType; } } return $arrTypes; } function gdVersion() { if ( ! extension_loaded( "gd" ) ) { return; } ob_start(); phpinfo( 8 ); $info = ob_get_contents(); ob_end_clean(); $info = stristr( $info, "gd version" ); preg_match( "/\d/", $info, $gd ); return $gd[ 0 ]; } function hsv2rgb( $h, $s, $v ) { if ( $s == 0 ) { $r = $g = $b = $v; return array( $r * 255, $g * 255, $b * 255 ); } else { $h %= 360; $h /= 60; $i = floor( $h ); $f = $h - $i; $p = $v * ( 1 - $s ); $q = $v * ( 1 - $s * $f ); $t = $v * ( 1 - $s * ( 1 - $f ) ); switch( $i ) { case 0: $r = $v; $g = $t; $b = $p; break; case 1: $r = $q; $g = $v; $b = $p; break; case 2: $r = $p; $g = $v; $b = $t; break; case 3: $r = $p; $g = $q; $b = $v; break; case 4: $r = $t; $g = $p; $b = $v; break; default: $r = $v; $g = $p; $b = $q; break; } return array( $r * 255, $g * 255, $b * 255 ); } } function rgb2hsv( $red, $green, $blue ) { $r = $red / 255; $g = $green / 255; $b = $blue / 255; $min = min( $r, $g, $b ); $max = max( $r, $g, $b ); $v = $max; $delta = $max - $min; if ( $max != 0 ) { $s = $delta / $max; } else { $s = 0; $h = -1; return array( $h, $s, $v ); } if ( $delta ) { if ( $r == $max ) { $h = ( $g - $b ) / $delta; } else if ( $g == $max ) { $h = 2 + ( $b - $r ) / $delta; } else { $h = 4 + ( $r - $g ) / $delta; } } else { $h = 0; } $h *= 60; if ( $h < 0 ) { $h += 360; } return array( $h, $s, $v ); } ?>