GD, changing an images pixel color, color matching, fuzzy picture

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Okay I created a script that changes a basic smiley face into a red smiley face..but it doesn't replace all the yellow, it looks like a yellow shadow in the background:

<?php
$image = "smiley.png";
$data = getimagesize($image);
$width = intval($data[0]);
$height = intval($data[1]);
$cloneH = 0;
$hex = "FF0000";
$oldhex = "FCFF00";
$im = imagecreatefrompng($image);
$color = imagecolorallocate($im,hexdec(substr($hex,0,2)),hexdec(substr($hex,2,2)),hexdec(substr($hex,4,6)));
for($cloneH=0;$cloneH<$height;$cloneH++)
{
   for($x=0;$x<$width;$x++)
   {
       if( colormatch($im,$x,$cloneH, $oldhex) )
           imagesetpixel($im, $x, $cloneH, $color);
} }
header("Content-Type: {$data['mime']}");
imagepng($im);
function colormatch($image,$x,$y,$hex)
{
   $rgb = imagecolorat($image,$x,$y);
   $r = ($rgb >> 16) & 0xFF;
   $g = ($rgb >> 8) & 0xFF;
   $b = $rgb & 0xFF;
$r2 = hexdec(substr($hex,0,2));
   $g2 = hexdec(substr($hex,2,2));
   $b2 = hexdec(substr($hex,4,6));
   if( $r == $r2 && $b == $b2 && $g == $g2 )
       return true;
   return false;
   //echo "$r $r2, $g $g2, $b $b2";
}
?>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux