hehe
逻辑调色板就是定义一个缩引,某个整数和某个颜色联系,如gif图片常用这种格式。
逻辑调色板就是定义一个缩引,某个整数和某个颜色联系,如gif图片常用这种格式。
解决方案 »
- 浮点数问题,是DELPHI的BUG吗?谁能给个合理的解释?谢谢~~UP有分
- 请教:原生ADO记录集赋值问题
- 如果李维都要弃Borland而去,我又还在留念什么呢??
- 求助,请帮帮小弟。
- 开贴补500分,请 ly_liuyang(Liu Yang) 进来接分(4)
- 倾家荡产,只为解决这个问题,vc与delphi的翻译------------在线等答
- 本人寻找兼职,本人在广州,那位朋友需要我业余时间帮忙做开发,只限广州内
- DriveComboBox1的问题???
- 数字字符串能转化为Longint吗?
- 如何改变TBUTTON的字体颜色?
- 当插入一条有bit类型字段的记录时,格式该怎么写?
- TListView中如何使用自定义的位图?
在图片得文件头坑定可以看到这个映射
打开这个图片,程序就会为你Create一个调色板。
比如,我下面这个程序读取一个有索引的图片得第一个点的颜色(呵呵,some bugs).
function GetBitMapFirstColor(ABitMap:TBitMap):TColor;
var
P : PByteArray;
Pal:TPALETTEENTRY;
Begin
P:=ABitMap.Scanline[0];
result:=clWhite;
if ABitMap.Palette<>0 then //如果位图使用了调色板
Begin
P:=ABitMap.Scanline[0];//我没有定义2色图
if ABitMap.PixelFormat=pf4bit then P[0]:=P[0] and $0F;
GetPaletteEntries(ABitMap.Palette,P[0],1,Pal);
//有索引呢,呵呵,读取物理颜色(真实颜色)
result:=RGB(Pal.peRed,pal.peGreen,Pal.peBlue);
exit;
End
else
case ABitMap.PixelFormat of
pf4Bit:Result:=P[0] and $0F;
pf8Bit:Result:=P[0];//256色
pf16Bit:Result:=PInt16(@P[0])^;//真彩色代表对应为真实颜色
pf24Bit:Result:=RGB(P[2],p[1],p[0]);
pf32Bit:Result:=PInt32(@P[0])^;
end;
end;