Если я правильно понял, то при использовании 24 битных изображений пиксель состоит из R G B, а в 8 битных изображениях, вместо цвета, указывается позиция нужного цвета в палитре. Значит тупо считываем пиксели, записываем значение цвета в палитру и заменяем цвета пикселя на индекс. Но возникает вопрос, а что делать если количество цветов в 24 битном изображении больше чем 256 ?
именно по этому и надо вычислять каким цветом надо жертвовать. чаще всего похожие цвета надо объединять