int dispbmp(u8 *BMPFileName, u8 mode, u16 x, u16 y, int member, int denom)
{
u16 bread;
char result;
int XSize,YSize;
float Xflag,Yflag;
u16 *_aMemory = (u16 *)EXT_SRAM_ADDR;
if( SD_Detect() == SD_NOT_PRESENT ) //检测磁盘是否插好
return 1;
if(f_mount(&fs_sd, "0:", 0) != FR_OK) // Register a work area for logical drive 0 挂载SD卡
return 1;
result = f_open(&BMPFile, (const TCHAR*)BMPFileName, FA_READ); //打开32位的.bmp图片时,出错,不知道为何 ??
//文件打开错误或者文件大于BMPMEMORYSIZE
if((result != FR_OK) || (BMPFile.fsize > BMPMEMORYSIZE))
return 1;
result = f_read(&BMPFile, (u8 *)_aMemory, BMPFile.fsize, (UINT *)&bread); //读取数据
if(result != FR_OK) return 3;
switch(mode)
{
case 0: //在指定位置显示图片
if((member == 1) && (denom == 1)) //无需缩放,直接绘制
{
GUI_BMP_Draw((u8 *)_aMemory, x, y); //在指定位置显示BMP图片
}else //否则图片需要缩放
{
GUI_BMP_DrawScaled((u8 *)_aMemory,x,y,member,denom);
}
break;
case 1: //在LCD中间显示图片
XSize = GUI_BMP_GetXSize((u8 *)_aMemory); //获取图片的X轴大小
YSize = GUI_BMP_GetYSize((u8 *)_aMemory); //获取图片的Y轴大小
if((member == 1) && (denom == 1)) //无需缩放,直接绘制
{
//在LCD中间显示图片
GUI_BMP_Draw((u8 *)_aMemory,(LCD_35_WIDTH-XSize)/2-1,(LCD_35_HEIGHT-YSize)/2-1);
}
else //否则图片需要缩放
{
Xflag = (float)XSize*((float)member/(float)denom);
Yflag = (float)YSize*((float)member/(float)denom);
XSize = (LCD_35_WIDTH-(int)Xflag)/2-1;
YSize = (LCD_35_HEIGHT-(int)Yflag)/2-1;
GUI_BMP_DrawScaled((u8 *)_aMemory,XSize,YSize,member,denom);
}
break;
default : break;
}
f_close(&BMPFile); //关闭BMPFile文件
f_mount(NULL, "0:", 0); //f_mount(0, NULL); // 卸载文件系统 , 文件挂起来
return 0;
}
// 打开这个32位图片的.bmp 图片出错,请问是什么情况 ????
dispbmp("48032032.bmp",0, 0, 0, 1,1); // 显示480x320.bmp图片,32位的bmp图片
// 打开下面这些图片文件都正常,
dispbmp("4803201.bmp",0, 0, 0, 1,1); // 显示480x320.bmp图片,1位的bmp图片
dispbmp("4803204.bmp",0, 0, 0, 1,1); // 显示480x320.bmp图片,4位的bmp图片
dispbmp("4803208.bmp",0, 0, 0, 1,1); // 显示480x320.bmp图片,8位的bmp图片
dispbmp("48032016.bmp",0, 0, 0, 1,1); // 显示480x320.bmp图片,16位的bmp图片
dispbmp("48032024.bmp",0, 0, 0, 1,1); // 显示480x320.bmp图片,24位的bmp图片
还有使用 下面这个函数打开32位的.bmp图片文件,完全木有任何问题。
dispbmpEx("48032032.bmp",0, 0, 0, 1,1); // 显示480x320.bmp图片,32位的bmp图片
一周热门 更多>