Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- HSV Palette Creator
- Author: fastman92
- Site: fastman92.ml
- */
- function HSV_TO_RGB ($H, $S, $V) // HSV Values:Number 0-1
- { // RGB Results:Number 0-255
- $RGB = array();
- if($S == 0)
- {
- $R = $G = $B = $V * 255;
- }
- else
- {
- $var_H = $H * 6;
- $var_i = floor( $var_H );
- $var_1 = $V * ( 1 - $S );
- $var_2 = $V * ( 1 - $S * ( $var_H - $var_i ) );
- $var_3 = $V * ( 1 - $S * (1 - ( $var_H - $var_i ) ) );
- if ($var_i == 0) { $var_R = $V ; $var_G = $var_3 ; $var_B = $var_1 ; }
- else if ($var_i == 1) { $var_R = $var_2 ; $var_G = $V ; $var_B = $var_1 ; }
- else if ($var_i == 2) { $var_R = $var_1 ; $var_G = $V ; $var_B = $var_3 ; }
- else if ($var_i == 3) { $var_R = $var_1 ; $var_G = $var_2 ; $var_B = $V ; }
- else if ($var_i == 4) { $var_R = $var_3 ; $var_G = $var_1 ; $var_B = $V ; }
- else { $var_R = $V ; $var_G = $var_1 ; $var_B = $var_2 ; }
- $R = $var_R * 255;
- $G = $var_G * 255;
- $B = $var_B * 255;
- }
- $RGB['R'] = $R;
- $RGB['G'] = $G;
- $RGB['B'] = $B;
- return $RGB;
- }
- function getZAngleForPoint($x, $y)
- {
- return fmod((360.0 + fmod(rad2deg(atan2($y, $x))-90.0, 360.0)), 360.0);
- }
- set_time_limit (0);
- define('PALETTE_SIZE', 512);
- define('PALETTE_HALF', PALETTE_SIZE/2);
- $im = imagecreatetruecolor(PALETTE_SIZE, PALETTE_SIZE);
- $white = imagecolorallocate($im, 255, 255, 255);
- imagecolortransparent($im, $white);
- ImageFillToBorder($im, 0, 0, $white, $white);
- // $count = 0;
- for($x = 0; $x < PALETTE_SIZE; $x++)
- {
- for($y = 0; $y < PALETTE_SIZE; $y++)
- {
- $distance = sqrt(pow(($x-PALETTE_HALF), 2) + pow(($y-PALETTE_HALF), 2));
- if($distance <= PALETTE_HALF)
- {
- $angle = fmod((90.0 + getZAngleForPoint($x - PALETTE_HALF, $y - PALETTE_HALF))/360.0, 1.0);
- $distance /= PALETTE_HALF;
- $color = HSV_TO_RGB($angle, $distance, 1.0);
- $color = imagecolorallocate($im, $color['R'], $color['G'], $color['B']);
- imagesetpixel($im, $x, $y, $color);
- imagecolordeallocate($im, $color);
- // $count++;
- }
- }
- }
- // echo $count;
- header('Content-Type: image/png');
- imagepng($im);
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement