24位真彩的值转换的问题(100分)

  • 主题发起人 主题发起人 中原象
  • 开始时间 开始时间

中原象

Unregistered / Unconfirmed
GUEST, unregistred user!
1)现有一副256色纯绿的位图
2)其字节值为28
3)其真彩24位值为(0,255,0)
请指教:怎么把(0,255,0)进行转换,得到的值为28
 
说得不具体不明白,你的意思. 你不会是把(0,255,0) 变成28吧
 
调色板的问题,试试下面的方法:
28=GetNearestPaletteIndex(Bitmap.Palette,$00FF00);
 
TO fftou:
不好意思,就是这个意思
 
To pihome,如果256色的位图不是纯的,怎么办?
 
看来你还是不太明白调色板的意思,与你的位图纯不纯是没关系的
256色位图中只能表示256种颜色,我们可以定义一个调色板,比如让 0 代表 $00000F,1 代表 $0000FF 。。。 28 代表 $00FF00 。。。,实际显示时是根据调色板来决定对应的实际显示的颜色值的,比如有时候我们在游戏中抓下来的图,粘帖到我们的位图中,效果却与游戏中的完全不一样,就是调色板不一致的结果
 
to pihome:
我看懂了意思了,不过事情是这样的:
现有一副256色纯绿的位图,在同一程序里,我用一种方法得到一个28的值,就是直接读位图,用另一种方法得到(0,255,0)的值.就是用API函数获得当前坐标的颜色.现在问题是我找不到一种方法把(0,255,0)转换成28:
COLORREF color
color:=RGB(0,255,0);
可是color的值 不是28
 
后退
顶部