This example shows how to replace color of an image in php gd.
This example shows how to replace color of an image in php gd.<?php
$image = "images.jpg";
$data = getimagesize($image);
$width = intval($data[0]);
$height = intval($data[1]);
$cloneH = 0;
$hex = "FF0000";
$oldhex = "FCFF00";
$im = imagecreatefromJPEG($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']}");
imageJPEG($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;
}
?>
After running the program you will get the following output