function hslToRgbString($hsl_object) { $rgb = hslToRgb($hsl_object[0], $hsl_object[1], $hsl_object[2]); return "rgb({$rgb[0]},{$rgb[1]},{$rgb[2]})"; }
$b = ($b + $m) * 255; return array(floor($r), floor($g), floor($b)); } $hueAdjustment = -180; $tar = array('red' => 47, 'green' => 116, 'blue' => 118); $img = imagecreatefrompng('core/imageColor/img.png'); $x = imagesx($img); $y = imagesy($img); $yMin = $y / 3; $yMax = $y * 2 / 3; $xMin = $x / 3; $xMax = $x * 2 / 3; $red = imagecolorallocate($img, 255, 0, 0); for ($i = $xMin; $i < $xMax; ++$i) { for ($j = $yMin; $j < $yMax; ++$j) { $ind = imagecolorat($img, $i, $j); $val = imagecolorsforindex($img, $ind); if (getDist($tar, $val) < 65) { $hsl = rgbToHsl($val['red'], $val['green'], $val['blue']); //$h = $hsv['H'] + .2; $h = $hsl[0] + $hueAdjustment; // if ($h > 1) --$h; $rgb = hslToRgb($h, $hsl[1], $hsl[2]); $newCol = imagecolorallocate($img, $rgb[0], $rgb[1], $rgb[2]); imagesetpixel($img, $i, $j, $newCol); } } } $file = 'core/imageColor/result.png'; imagepng($img, $file); echo '<img src="' . $file . '">';