палитру выковыривает из bmp изображения. а дальше можно поступить как угодно. в данном коде не сохраняет. там для себя выводил лист получившейся палитры:
;For i = 0 To ArraySize(WK_Pal())
; Debug WK_Pal(i)
;Next
сохранение у меня в других местах
![Улыбка :)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
не в этом коде. там где сохраняются регионы, где ментаты, где экраны и где большие иконки. там цвет надо перевернуть, так сказать, и потом сохранять. для переворачивания сделал что-то типа такого:
Procedure.a Parse1Color(inp.a, pbtosmd.a=0)
out.a
If pbtosmd = 0
Select inp
Case 0
out = 0
Case 2
out = 36
Case 4
out = 72
Case 6
out = 109
Case 8
out = 145
Case $A
out = 181
Case $C
out = 219
Case $E
out = 255
EndSelect
Else
Select inp
Case 0
out = 0
Case 36
out = 2
Case 72
out = 4
Case 109
out = 6
Case 145
out = 8
Case 181
out = $A
Case 219
out = $C
Case 255
out = $E
EndSelect
EndIf
ProcedureReturn out
EndProcedure
Procedure.l Parse3Color(inp.u)
out.l
r = GetBits(inp, 0, 3) ;: Debug Hex(b)
g = GetBits(inp, 4, 7) ;: Debug Hex(g)
b = GetBits(inp, 8, 11) ;: Debug Hex(r)
out = RGB(Parse1Color(r), Parse1Color(g), Parse1Color(b))
ProcedureReturn out
EndProcedure
хотя это чтение. ну сохранение примерно так-же, то есть полученный RGB конвертируется в значение, как оно в файлах палитры идет двухбайтовое... эээ... BGR? хотя насчет таблицы значений я в последнее время не уверен. цвета то похожи, но где-то в соседней теме видел чуть чуть другие значения, то есть числа рядышком, но все-таки другие. ну мне колхознику пойдет
Добавлено позже:и у меня вроде что-то получается
![Улыбка :)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
насильно засунул фиолетовый в просчитываемые цвета и в результате он всегда есть в выходной палитре, независимо от того, есть ли он на изображении или нет. теперь надо сделать вилку, даже тройник. три варианта развития событий - как есть, учитывать фиолетовый есть или нету на изображении, учитывать черный есть или нету на изображении. и то, причем не фиолетовый, а любой какой укажешь. доволен как слон
![Улыбка :)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
НО! спасти красный цвет так и не получилось. слишком мало места красным цветом на Трампе покрашено и в результате у красного маленький рейтинг. не смотря что он ярче, так сказать, в палитру в итоге вошел более блеклый какой-то цвет, просто у него был лучше рейтинг.