找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4162|回复: 12
收起左侧

基于Liunx系统和6818开发板的电子相册 附源程序

  [复制链接]
leizhihao13 发表于 2019-8-5 19:29 | 显示全部楼层 |阅读模式
电子相册实现滑动解锁、JPG和BMP图片显示  用到的技巧有文件/系统IO函数,双向循环链表,目录检索和BMP,JPG图片显示的函数

源码在压缩包里

int main(int argc, char *argv[])
{        
        //初始化设备
        Lcd_Init();
        //显示锁屏界面
        Show_bmp(0, 0,"lock.bmp");
        usleep(1000);
        //显示锁屏logo
        Show_bmp(100, 370,"logo.bmp");
        
        while(1)
        {
                //获取坐标
                get_ts_xy();
               
                Show_bmp(100,370,"frame.bmp");
                usleep(10);
                //触摸得到x轴变化的坐标,锁屏界面和logo的图标交替刷新,达到logo移动的效果
                Show_bmp(a, 370,"logo.bmp");

                //判断滑块到达锁屏框最后,松手则跳出循环
                if(ts_x2 >= 420&&ts_y2>370&&ts_y2<450)
                {
                        break;
                }
               
        }
        //在锁屏框最后显示解锁成功的logo
        Show_bmp(420, 370,"unlock.bmp");
        usleep(500000);   //延时0.5秒
        printf("success!!\n");
        /*****************************************************************/
        d_list = Create_List();
        D_Node *p=NULL;
        
        //播放音乐
        system("madplay faded.mp3 &");
        
        //检索指定目录里的所有bmp图片,并添加进链表
        search_dir("./pic");
        
        p=d_list->next;
        printf("It's never too late to learn!\n");
        
        int flag1;
        while(1)
        {
                //显示解锁后的主页面
                Show_bmp(0, 0, "main.bmp");
                get_x1y1();
               
                //循环显示照片
                if(x_2>55&&x_2<315&&y_2>390&&y_2<460)
                {
                        flag1 = 0;
                        while(1)
                        {
                                //检测bmp图片并下拉显示bmp图片
                                if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0&&flag1 == 0)
                                {
                                        Show_4_bmp(p->picname);
                                        show_buf1();
                                        printf("This is bmp\n");
                                        flag1 = 1;
                                }
                                if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)
                                {
                                        p=p->next;
                                        usleep(1000000);
                                }
                                //跳出循环
                                if(strcmp("00.bmp", p->picname+strlen(p->picname)-6) == 0)
                                {               
                                        break;
                                }
                                
                                //检测bmp图片并上拉显示bmp图片
                                if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0&&flag1 == 1)
                                {
                                        Show_4_bmp(p->picname);
                                        show_buf2();
                                        printf("This is bmp\n");
                                        flag1 = 0;
                                }
                                //检测jpg图片并显示jpg图片
                                if( strcmp(".jpg", p->picname + strlen(p->picname)-4) == 0)
                                {
                                        show_jpg(p->picname);
                                        printf("This is jpg\n");
                                }
                                usleep(1000000);        //延时1秒
                                p=p->next;
                                
                                //跳出循环
                                if(strcmp("00.bmp", p->picname+strlen(p->picname)-6) == 0)
                                {               
                                        break;
                                }
                        }
                }
                //滑动显示照片
                if(x_2>490&&x_2<750&&y_2>390&&y_2<460)
                {        
                        flag1 = 0;        
                        p=d_list->next;
                        if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)
                        {
                                Show_4_bmp(p->picname);
                                show_buf1();
                                printf("This is bmp\n");
                        }
                        if( strcmp(".jpg", p->picname + strlen(p->picname)-4) == 0)
                        {
                                show_jpg(p->picname);
                                printf("This is jpg\n");
                        }
                        while(1)
                        {        
                                get_x1y1();
                                get_flag();        
                                //向右滑
                                if(i == 1)
                                {
                                        p = p->next;
                                        //向右慢慢显示bmp照片
                                        if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)
                                        {
                                                Show_4_bmp(p->picname);
                                                show_buf5();
                                                printf("This is bmp\n");
                                        }
                                        //显示jpg图片
                                        if( strcmp(".jpg", p->picname + strlen(p->picname)-4) == 0)
                                        {
                                                show_jpg(p->picname);
                                                printf("This is jpg\n");
                                        }
                                        if(p == d_list)
                                        {
                                                p = p->next;
                                        }

                                }
                                //向左滑
                                if(i == 2)
                                {
                                        p = p->prev;
                                        //向左慢慢显示bmp照片
                                        if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)
                                        {
                                                Show_4_bmp(p->picname);
                                                show_buf6();
                                                printf("This is bmp\n");
                                        }
                                        if( strcmp(".jpg", p->picname + strlen(p->picname)-4) == 0)
                                        {
                                                show_jpg(p->picname);
                                                printf("This is jpg\n");
                                        }                                       
                                        if(p == d_list)
                                        {
                                                p = p->prev;
                                        }                                       
                                                                        
                                }
                                //向上滑
                                if(i == 3)
                                {
                                        break;
                                }
                                //向下滑
                                if(i == 4)
                                {
                                        p=d_list->next;
                                        while(1)
                                        {
                                                //横向百叶窗显示bmp图片
                                                if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0&&flag1 == 0)
                                                {
                                                        Show_4_bmp(p->picname);
                                                        show_buf3();
                                                        printf("This is bmp\n");
                                                        flag1 = 1;
                                                }
                                                if(strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)
                                                {
                                                        p = p->next;
                                                        usleep(1000000);        //延时1秒
                                                }

                                                if(strcmp("00.bmp", p->picname+strlen(p->picname)-6) == 0)
                                                {               
                                                        break;
                                                }
                                                //纵向百叶窗显示bmp图片
                                                if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0&&flag1 == 1)
                                                {
                                                        Show_4_bmp(p->picname);
                                                        show_buf4();
                                                        printf("This is bmp\n");
                                                        flag1 = 0;
                                                }
                                                //显示jpg图片
                                                if( strcmp(".jpg", p->picname + strlen(p->picname)-4) == 0)
                                                {
                                                        show_jpg(p->picname);
                                                        printf("This is jpg\n");
                                                }
                                                usleep(1000000);        //延时1秒
                                                p=p->next;

               
                                                if(strcmp("00.bmp", p->picname+strlen(p->picname)-6) == 0)
                                                {               
                                                        break;
                                                }
                                        }
                                }
                        }

                }
                if(i == 3)
                {
                        break;
                }
/*                 //判断向上划退出
                if(((x_2-x_1)<(y_1-y_2))&&(x_2>x_1)&&(y_2<y_1))                //第一象限
                {
                        printf("sa yo la la!\n");
                        break;
                }               
                if(((x_1-x_2)<(y_1-y_2))&&(x_2<x_1)&&(y_2<y_1))                //第二象限
                {
                        printf("sa yo la la!\n");
                        break;
                }*/
        }         
        
        //音乐停止
        printf("stop!\n");
        system("killall -9 madplay");
        
        //居中显示
        show_middle_bmp("05.bmp");
        usleep(300000);
        //小惊喜
        printf("suprise!!!!!!!!!!!!!\n");
        p=d_list->prev;
        flag1 = 0;
        while(1)
        {               
                //显示bmp图片
                if( strcmp(".bmp", p->picname + strlen(p->picname)-4) == 0)
                {
                        Show_4_bmp(p->picname);
                        show_buf0();
                        printf("This is bmp\n");
                }
                usleep(30000);
                p = p->prev;
                if(p == d_list)
                {
                        flag1++;
                        p=d_list->prev;
                }
                if(flag1 == 2)
                {
                        break;
                }
        }
        
        show_middle_bmp("bye.bmp");
        
        //关闭设备
        Lcd_Uninit();

51hei图片_20190805192249.png 51hei图片_20190805192311.png 51hei图片_20190805192315.png 51hei图片_20190805192318.png 51hei图片_20190805192322.png


电子相册666.zip

19.9 KB, 下载次数: 90, 下载积分: 黑币 -5

源代码

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

1EJ1AHAO 发表于 2019-8-15 13:13 | 显示全部楼层
兄嘚,你也是粤嵌的吗,你的makefile文件里的虚拟机眼熟啊
回复

使用道具 举报

艾某 发表于 2019-10-18 11:07 | 显示全部楼层
学习到了很多
回复

使用道具 举报

chaunceylong 发表于 2020-7-30 14:49 | 显示全部楼层
学学,等我弄好也发一个
回复

使用道具 举报

Guey丶 发表于 2020-8-10 14:54 | 显示全部楼层
学习到了很多
回复

使用道具 举报

578lpt 发表于 2020-8-10 18:32 | 显示全部楼层
滑动解锁那里Show_bmp(a, 370,"logo.bmp");
回复

使用道具 举报

578lpt 发表于 2020-8-10 18:33 | 显示全部楼层
滑动解锁那
Show_bmp(a, 370,"logo.bmp");
这个a的逻辑是怎么想的
回复

使用道具 举报

李氏小胖 发表于 2020-8-16 11:38 | 显示全部楼层
这个里面只写了调用和主函数框架,子函数在压缩包
回复

使用道具 举报

李氏小胖 发表于 2020-8-16 18:04 | 显示全部楼层
1EJ1AHAO 发表于 2019-8-15 13:13
兄嘚,你也是粤嵌的吗,你的makefile文件里的虚拟机眼熟啊

你的做好了吗
兄弟
回复

使用道具 举报

李氏小胖 发表于 2020-8-17 16:17 来自手机 | 显示全部楼层
1EJ1AHAO 发表于 2019-8-15 13:13
兄嘚,你也是粤嵌的吗,你的makefile文件里的虚拟机眼熟啊

你有图没有
回复

使用道具 举报

asdjkliw12356 发表于 2020-9-27 10:46 | 显示全部楼层
谢谢  学习到了很多
回复

使用道具 举报

cj1232323 发表于 2020-11-9 17:01 | 显示全部楼层
压缩包里面没有图吗
回复

使用道具 举报

3151426821 发表于 2020-11-19 19:49 | 显示全部楼层
非常厉害,
学习到了很多
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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