Используйте библиотеку GD
Перебирайте изображение по пикселям.
Есть замечательные функции:
* int ImageColorAt(int image, int x, int y)
Возвращает цвет точки (x,y) в изображении image.
Проверяйте условием и заменяйте на нужны цвет.
Можно сделать по другому.
Перебрать все изображение с помощью ImageColorAt(int image, int x, int y)
Составить массив из всех цветов которые есть.
Затем из этого массива убрать цвета которые вы хотите оставить
Затем произвести замену всех цветов на прозрачность ImageColorTransparent(int image, int color)