发 帖  
原厂入驻New
用 文件系统把bmp图片从SD卡中读取出来显示黑边 的原因是什么?
22 文件系统
分享
我使用 文件系统把 bmp 图片 (ARPG 的)从SD卡中读取出来,然后显示,绘制出来的图片有黑边
同一张图片 使用 BmpCvt 转换成 C 文件,放到代码里显示就没有黑边,怎么解决
[C] 纯文本查看 复制代码
LCD_Show_Picture_SD("1:/SYSTEM/APP/APPS/ICOS/app03_48.bmp",0,30,30,1,1);GUI_DrawBitmap(&bmapp03_48,88,88);void LCD_Show_Picture_SD(const char *sFilename,u8 type,u16 x,u16 y,u16 Num,u16 Denom){int XSize,YSize;GUI_HMEM hMem;int i;GUI_JPEG_INFO JpegInfo;GUI_GIF_INFO InfoGif1;GUI_GIF_IMAGE_INFO InfoGif2;hMem=GUI_ALLOC_AllocZero(1024*1024);Picture_Buffer=GUI_ALLOC_h2p(hMem);Picture_result = f_open(&Picture_file,sFilename,FA_OPEN_EXIStiNG|FA_READ|FA_OPEN_ALWAYS);if(Picture_result != FR_OK){return;}Picture_result=f_read(&Picture_file,Picture_Buffer,Picture_file.fsize,&Picture_bw);if(Picture_result != FR_OK){return;}XSize=GUI_BMP_GetXSize(Picture_Buffer);YSize=GUI_BMP_GetYSize(Picture_Buffer);if(type==0){if(Num==Denom){GUI_BMP_Draw(Picture_Buffer,x,y);}else{GUI_BMP_DrawScaLED(Picture_Buffer,x,y,Num,Denom);}}else if(type==1){GUI_JPEG_GetInfo(Picture_Buffer,Picture_file.fsize,&JpegInfo);if(Num==Denom){GUI_JPEG_Draw(Picture_Buffer,Picture_file.fsize,x,y);}else{GUI_JPEG_DrawScaled(Picture_Buffer,Picture_file.fsize,x,y,Num,Denom);}}else if(type==2){GUI_GIF_GetInfo(Picture_Buffer,Picture_file.fsize,&InfoGif1);i=0;if(i<InfoGif1.NumImages){GUI_GIF_GetImageInfo(Picture_Buffer,Picture_file.fsize,&InfoGif2,i);if(Num==Denom){GUI_GIF_DrawSub(Picture_Buffer,Picture_file.fsize,(LCD_GetXSize()-InfoGif1.xSize)/2,(LCD_GetYSize()-InfoGif1.ySize)/2,i++);}else{GUI_GIF_DrawSubScaled(Picture_Buffer,Picture_file.fsize,(LCD_GetXSize()-InfoGif1.xSize*2)/2,(LCD_GetYSize()-InfoGif1.ySize*2)/2,i++,2,1);}}else{i=0;}}else{}GUI_ALLOC_Free(hMem);f_close(&Picture_file);}
0
2020-8-28 08:02:19   评论 分享淘帖 邀请回答
3个回答
2020-8-28 11:44:05 评论

举报

2020-8-28 11:50:12 评论

举报

只有小组成员才能发言,加入小组>>

297个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表