初级会员

- 积分
- 161
- 金钱
- 161
- 注册时间
- 2013-2-15
- 在线时间
- 10 小时
|

楼主 |
发表于 2013-3-11 21:21:51
|
显示全部楼层
回复【10楼】正点原子:
---------------------------------
case 16: //16位图 64k色,高彩色
line_byte = bh.width * 2; //扫描一行的字节数
if (line_byte % 4) line_byte = ((line_byte / 4) + 1) * 4;
f_lseek(&f, bh.offset);
p=(u16*)buffer;
for (i = 0; i < bh.height; i++)
{
f_read(&f, buffer, line_byte, &counter);
XY_Coordinate(x,y + bh.height - i - 1);
WriteCommand(0x02);
for (j = 0; j < bh.width; j++)
{
if (bh.compression == BI_BITFIELDS )
{
if(bh.mask == 0xF800)
{
WriteData(p[j]);
}
else
{
a = (p[j]<<1) & 0xf800;
b = (p[j]<<1) & 0x07c0;
WriteData((p[j] & 0x1f) | a | b);
}
}
else if(bh.compression == BI_RGB)
{
a = (p[j]<<1) & 0xf800;
b = (p[j]<<1) & 0x07c0;
WriteData((p[j] & 0x1f) | a | b);
}
}
}
break; |
|