Это заменит белый цвет Gray
$imgname = "test.gif";
$im = imagecreatefromgif ($imgname);
$index = imagecolorclosest ( $im, 255,255,255 ); // get White COlor
imagecolorset($im,$index,92,92,92); // SET NEW COLOR
$imgname = "result.gif";
imagegif($im, $imgname ); // save image as gif
imagedestroy($im);
Я не попробовал его сам, но можно посмотреть на функцию imagecolorset () в библиотеке GD, Это делает цветную заливку как эффект, который мог помочь с белым фоном.
Вы могли попробовать функцию imagefilter http://lv.php.net/imagefilter - но это не предоставит Ваш прямой доступ для замены одного цвета другим, просто изменив r/g/b компоненты.
очень низкоуровневое решение для А могло быть реализовано с помощью imagesetpixel http://nl2.php.net/imagesetpixel для установки новых пиксельных значений.
Я не знаю ни о каких готовых функциях. Но я предполагаю, что Вы могли пойти канавка каждый пиксель изображения и измениться, это - цвет...
Мне не удалось заставить это решение работать. Изображение не может быть полноцветным. Сначала преобразуйте его с помощью imagetruecolortopalette ();
$imgname = "test.gif";
$im = imagecreatefromgif ($imgname);
imagetruecolortopalette($im,false, 255);
$index = imagecolorclosest ( $im, 255,255,255 ); // get White COlor
imagecolorset($im,$index,92,92,92); // SET NEW COLOR
$imgname = "result.gif";
imagegif($im, $imgname ); // save image as gif
imagedestroy($im);