- 注册时间
- 2004-12-26
- 最后登录
- 1970-1-1
|
我原先构思并设计的好好的游戏引擎,在其中加入
了一个在游戏中调用任意灰度BMP图片的函数,
可是恼人的BMP格式出来的效果却是这个
原图:
打开BMP文件读取数据,再显示就变成了这样:
源码:
char MMdir[]="/LavaData/MetalMax";
void WritePic(int x,int y,int width,int height,int type,addr name)
{
char fp;
char pic_name[256];
long pic_msg[2];
char pic_data[160*80/2];
strcpy(pic_name,MMdir);
strcat(pic_name,"/");
strcat(pic_name,name);
if((fp=fopen(pic_name,"r"))==0){printf("打开%s失败!",name);exit(0);}
fseek(fp,0x12,0);
fread(pic_msg,1,4,fp);
if(pic_msg[0]!=width&&pic_msg[1]!=height){printf("图片%s大小有误!",name);getchar();}
fseek(fp,0x76,0);
fread(pic_data,1,width*height/2,fp);
WriteBlock(x,y,width,height,type|0x8,pic_data);
fclose(fp);
}
void main()
{
SetGraphMode(4);
WritePic(0,0,160,80,0x41,"MM.bmp");
getchar();
}
汗啊!
不知是我方法错了还是怎么的,如果这个不行,那我只能把BMP的事先做成dat文件再用,
这到底是什么问题啊???????? |
|