green.jpg
This takes an image and turns all the colours apart from the one defined to grey.

<?php
// Create a new image with everything transparent apart from the selected colour. 
// This image must be saved as a png due to the transparency.
$cmd " bathhat.jpg -matte ".
" \( +clone -fuzz 20% -transparent rgb\(38,134,71\) \) ".
" -compose DstOut -composite ";
exec("convert $cmd output_hat.png");

// Another temporary image is made from the original but completely grey.
$cmd " bathhat.jpg -colorspace Gray ";
exec("convert $cmd grey_background.png"); 

// The two images are combined and flattened into one image.
$cmd " grey_background.png -page +0+0 output_hat.png -flatten ";
exec("convert $cmd green.jpg");
 
// The tempory images are deleted.
unlink ('output_hat.png');
unlink ('grey_background.png');
?>

A rgb colour is used in this case - rgb(38,134,71) other colour formats can be used.

Back to the other examples index