打印

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

[复制链接]
325|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小小的人呀|  楼主 | 2018-9-11 13:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
电子相册实现滑动解锁、JPG和BMP图片显示  用到的技巧有文件/系统IO函数,双向循环链表,目录检索和BMP,JPG图片显示的函数



源码在压缩包里



int main(int argc, char *argv[])

{        

        //初始化设备

        Lcd_Init();

        //显示锁屏界面

        Show_bmp(0, 0,"lock.bmp");

        usleep(1000);

        //显示锁屏**

        Show_bmp(100, 370,"**.bmp");

        

        while(1)

        {

                //获取坐标

                get_ts_xy();

               

                Show_bmp(100,370,"frame.bmp");

                usleep(10);

                //触摸得到x轴变化的坐标,锁屏界面和**的图标交替刷新,达到**移动的效果

                Show_bmp(a, 370,"**.bmp");



                //判断滑块到达锁屏框最后,松手则跳出循环

                if(ts_x2 >= 420&&ts_y2>370&&ts_y2<450)

                {

                        break;

                }

               

        }

        //在锁屏框最后显示解锁成功的**

        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();

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

399

主题

399

帖子

0

粉丝