08.12.2006, 17:36
общий
это ответ
Здравствуйте, Antares!
Объекты типа BitMap работают в непалитровых режимах только для 16 или 256 цветов. Если для вас это слишком мало, то можете воспользоваться попиксельной работой с картинками после загрзуки. Написать одну процедуру. Через Pixels[], конечно, не быстро но для одной обработки на загрузке пойдет.
Можно, конечно, воспользоваться TBitMap.ColorTable, но не совсем понятно, на какую именно таблицу цветов будет возвращен указатель... может быть, на системную. А ее менять не стоит и вам никто не даст. Да и формат знать надо... В MSDN про это что-то ничего не написано.
Можно еще сделать маскирование с прозрачностью по данному цвету, а фон залить другим... но это уже для настоящих, кхм, самураев =)
Приложение:
MoveColors(bmp: TBitamp; c1, c2: TColor);var i,j : integer;begin for i := 0 to bmp.width-1 do for j := 0 to bmp.height-1 do if bmp.Canvas.Pixels[i,j] = c1 then bmp.Canvas.Pixels[i,j] := c2;end;