野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15327|回复: 1

图片显示

[复制链接]
发表于 2015-4-23 22:11:59 | 显示全部楼层 |阅读模式

#include "bsp_bmp.h"
#include "bsp_ili9341.h"

FATFS bmpfs[2];
FIL bmpfsrc ,bmpfdst;
FRESULT bmpres;
UINT read_num;




void LCD_Show_Bmp(unsigned short int x, unsigned short int y,unsigned char *file_name)
{
        int i, j, k;
        int width, height, l_width;

        BYTE red,green,blue;
        BITMAPFILEHEADER bitfilehead;
        BITMAPINFOHEADER bitinfohead;
        WORD fileType;


        unsigned char temp_name[20];
        BYTE pColorData[960];       
        sprintf((char*)temp_name,"0:%s",file_name);

        f_mount(0, &bmpfs[0]);

        bmpres = f_open( &bmpfsrc , (char *)temp_name, FA_OPEN_EXISTING | FA_READ);       
//-------------------------------------------------------------------------------------------------------
        if(bmpres == FR_OK)
        {

                f_read(&bmpfsrc,&fileType,sizeof(WORD),&read_num);            
                f_read(&bmpfsrc,&bitfilehead,sizeof(bitfilehead),&read_num);               
                f_read(&bmpfsrc,&bitinfohead,sizeof(bitinfohead),&read_num);               
}   
//-------------------------------------------------------------------------------------------------------
        width = bitinfohead.biWidth;
        height = bitinfohead.biHeight;

// ¼ÆËãλí¼μÄêμ¼ê¿í¶è2¢è·±£ËüÎa32μı¶êy       
        l_width =Standard_width(width* bitinfohead.biBitCount);       

        if(l_width > 960)
        {
                return;
        }
       
//éèÖÃLcd Gram é¨Ãè·½ÏòÎa: óòϽÇ->×óéϽÇ
        LCD_GramScan( 3 );
       
//¿aò»¸öí¼Æ¬′óD¡μÄ′°¿ú
        LCD_OpenWindows(x, y, width, height);

       
//ÅD¶ÏêÇ·ñêÇ24bitÕæ2êé«í¼
        if(bitinfohead.biBitCount >= 24)
        {
                for(i=0;i< height; i++)
                {          

                       
//                #if 0
//                                for(j=0; j< l_width; j++)                                                                                                                
//                                {               
//                                        f_read(&bmpfsrc,pColorData+j,1,&read_num);
//                                }            
//                        #elif 1                               
                                f_read(&bmpfsrc,pColorData,l_width/2,&read_num);
                                f_read(&bmpfsrc,pColorData+l_width/2,l_width/2,&read_num);
//                #else

//                        f_read(&bmpfsrc,pColorData,l_width,&read_num);
//                        #endif

                        for(j=0; j<width; j++)                                                                                            //ò&#187;DDóDD§D&#197;&#207;¢
                        {
                                k = j*3;                                                                                                                                         //ò&#187;DD&#214;DμúK&#184;&#246;&#207;&#241;&#203;&#216;μ&#196;&#198;eμ&#227;
                                red = pColorData[k+2];
                                green = pColorData[k+1];
                                blue =         pColorData[k];                       
                                LCD_WR_Data(RGB24TORGB16(red,green,blue)); //D′è&#235;LCD-GRAM
                        }            
                }                                                                                                                                                                                              
        }   
        else        
                return ;
        f_close(&bmpfsrc);   
}
为什么把FIL bmpfsrc ,bmpfdst中的bmpfdst注释了就不能显示图片



回复

使用道具 举报

发表于 2015-4-23 22:43:45 | 显示全部楼层
程序中没用到的话,去掉是应该的,怎么反而会运行出错呢,应该是程序哪里搞错了吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-28 00:37 , Processed in 0.058351 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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