F429图片显示实验中,怎么显示指定的一个图片

2019-07-20 06:19发布

阿波罗F429 开发板    图片显示实验中,图片是依次显示出来的,我没看到索引号自增啊,他是怎么实现依次显示PICTURE文件夹中下的图片的。
我现在只想实现指定PICTURE文件下的某一副图片。

图片显示实验中的代码如下:
主要是这两个函数不明白什么意思。

//记录索引
    res=f_opendir(&picdir,"1:/PICTURE"); //打开目录
        if(res==FR_OK)
        {
                curindex=0;//当前索引为0
                while(1)//全部查询一遍
                {
                        temp=picdir.dptr;                                                                //记录当前dptr偏移
                res=f_readdir(&picdir,picfileinfo);                       //读取目录下的一个文件
                if(res!=FR_OK||picfileinfo->fname[0]==0)break;        //错误了/到末尾了,退出                  
                        res=f_typetell((u8*)picfileinfo->fname);       
                        if((res&0XF0)==0X50)//取高四位,看看是不是图片文件       
                        {
                                picoffsettbl[curindex]=temp;//记录索引
                                curindex++;
                        }            
                }
        }   
        Show_Str(30,170,240,16,"开始显示...",16,0);
        delay_ms(1500);
        piclib_init();                                                                                //初始化画图                     
        curindex=0;                                                                                        //从0开始显示
           res=f_opendir(&picdir,(const TCHAR*)"1:/PICTURE");         //打开目录
        while(res==FR_OK)//打开成功
        {       
        dir_sdi(&picdir,picoffsettbl[curindex]);                        //改变当前目录索引          
        res=f_readdir(&picdir,picfileinfo);                       //读取目录下的一个文件
        if(res!=FR_OK||picfileinfo->fname[0]==0)break;        //错误了/到末尾了,退出
                strcpy((char*)pname,"1:/PICTURE/");                                //复制路径(目录)
                strcat((char*)pname,(const char*)picfileinfo->fname);//将文件名接在后面
                LCD_Clear(WHITE);
                ai_load_picfile(pname,0,0,800,1280,1);//显示图片   
                Show_Str(2,2,lcddev.width,16,pname,16,1);                                 //显示图片名字
                t=0;
                while(1)
                {
                        key=KEY_Scan(0);                //扫描按键
                        if(t>250)key=1;                        //模拟一次按下KEY0   
                        if((t%20)==0)LED0=!LED0;//LED0闪烁,提示程序正在运行.
                        if(key==KEY2_PRES)                //上一张
                        {
                                if(curindex)curindex--;
                                else curindex=totpicnum-1;
                                break;
                        }else if(key==KEY0_PRES)//下一张
                        {
                                curindex++;                          
                                if(curindex>=totpicnum)curindex=0;//到末尾的时候,自动从头开始
                                break;
                        }else if(key==WKUP_PRES)
                        {
                                pause=!pause;
                                LED1=!pause;         //暂停的时候LED1亮.  
                        }
                        if(pause==0)t++;
                        delay_ms(10);
                }                                            
                res=0;  
        }                                                             
        myfree(SRAMIN,picfileinfo);                        //释放内存                                                                       
        myfree(SRAMIN,pname);                                //释放内存                            
        myfree(SRAMIN,picoffsettbl);                        //释放内存
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
login_FAE
1楼-- · 2019-07-20 06:55
用这个函数显示你要显示的图片就可以,ai_load_picfile,第一个参数是文件路径+文件名的
比如:ai_load_picfile("0:/PICTURE/我的图片.jpg",0,0,800,1280,1);
Shmily1314
2楼-- · 2019-07-20 08:26
login_FAE 发表于 2018-9-6 11:23
用这个函数显示你要显示的图片就可以,ai_load_picfile,第一个参数是文件路径+文件名的
比如:ai_load_pi ...

非常感谢!!!!

一周热门 更多>