初中生
最后登录1970-1-1
在线时间 小时
注册时间2017-7-3
|
- static void _ShowBMP(const char *sFilename, uint32_t x0, uint32_t y0)
- {
-
- FIL file;
- FRESULT result;
- FILINFO finfo;
- uint8_t *pData;
- uint32_t bw;
- WM_HMEM hMem;
- uint32_t xSize, ySize;
-
-
- result = f_open(&file, sFilename, FA_READ);
- if (result != FR_OK)
- {
- return;
- }
-
- result = f_stat( sFilename, &finfo );
- if( result != FR_OK )
- {
- return;
- }
-
- //finfo.fsize = 12342Byte
- //#define GUI_NUMBYTES 40*1024
- //定义分配给STemWin的内存足够
- hMem = GUI_ALLOC_AllocZero(finfo.fsize);
- pData = GUI_ALLOC_h2p(hMem);
-
- result = f_read(&file, pData, finfo.fsize, &bw);
- if( result != FR_OK )
- {
- return;
- }
- xSize = GUI_BMP_GetXSize(pData);
- ySize = GUI_BMP_GetYSize(pData);
-
- GUI_BMP_Draw(pData, x0, y0);
- f_close(&file);
- GUI_ALLOC_Free(hMem);
- }
复制代码
问题点:
1、使用f_read,读取12342个字节,直接报错;但是我定义一个大小为12342的数组,数据读取是成功的;
2、直接使用大小为12342的数组,使用f_read读取数据,并且数据无误,得到的xSize 和ySize 也是无误的,但是就是显示不了BMP图片。
注:
1、使用的STemWin版本是V5.32。
2、图片大小为64*64的BMP图片,存放于SD卡。
3、同样的BMP图片使用GUI_DrawBitmap,可以正常显示。
|
|