Использование GD для изменения цвета одной цветовой формы на прозрачном фоне при сохранении прозрачности

У меня есть png, который представляет собой набор белой формы на прозрачном фоне. Я пытаюсь изменить цвет фигур, сохраняя прозрачный фон. Я экспериментировал с приведенным ниже кодом, который меняет цвет, но приводит к черному фону. Я думаю, что imagetruecolortopalette вызывает проблему, но цвет не меняется, если я удалю эту строку. Все предложения?

<?php $imgname = "whiteim.png"; $im = imagecreatefrompng ($imgname); imagetruecolortopalette($im,false, 255); $index = imagecolorclosest ( $im, 255,255,255 ); // get White COlor imagecolorset($im,$index,255,0,0); // SET NEW COLOR $imgname = "result.png"; imagepng($im, $imgname ); // save image as png imagedestroy($im); ?> 

Solutions Collecting From Web of "Использование GD для изменения цвета одной цветовой формы на прозрачном фоне при сохранении прозрачности"