硬汉嵌入式论坛

 找回密码
 立即注册
楼主: eric2013
收起左侧

[emWin教程入门篇] 第七期:BMP图片的显示方法(支持从外部Flash,SD等读取)

[复制链接]

2

主题

34

回帖

40

积分

新手上路

积分
40
发表于 2013-10-21 21:09:55 | 显示全部楼层
支持楼主,谢谢楼主,辛苦楼主了!
回复

使用道具 举报

0

主题

23

回帖

23

积分

新手上路

积分
23
发表于 2013-10-22 09:14:57 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

17

回帖

0

积分

新手上路

积分
0
发表于 2013-10-22 21:57:33 | 显示全部楼层
学习了
回复

使用道具 举报

0

主题

9

回帖

9

积分

新手上路

积分
9
发表于 2013-10-23 09:13:38 | 显示全部楼层
这个要看
回复

使用道具 举报

7

主题

33

回帖

17

积分

新手上路

积分
17
发表于 2013-10-23 16:31:00 | 显示全部楼层
支持,现在emwin的材料好少,只有这里比较全~
回复

使用道具 举报

1

主题

25

回帖

1

积分

新手上路

积分
1
发表于 2013-10-23 22:48:33 | 显示全部楼层
学习学习
回复

使用道具 举报

0

主题

17

回帖

0

积分

新手上路

积分
0
发表于 2013-10-24 10:37:48 | 显示全部楼层
学习了
回复

使用道具 举报

1

主题

25

回帖

1

积分

新手上路

积分
1
发表于 2013-10-24 20:49:09 | 显示全部楼层
请问如何将SD卡里面的图片显示在GUI窗体上(对话框),我现在只能让SD卡里面的图片显示在窗体创建之前的界面上,窗体创建之后就把图片 覆盖了看不到
void _ShowBMPEx(const char * sFilename,IMAGE_Handle hObj)
{   
    OS_ERR          err;      
    int XSize=0,YSize=0;
    /* ´ò¿ªÎļþ */        
    result = f_open(&file, sFilename, FA_OPEN_EXISTING | FA_READ | FA_OPEN_ALWAYS);
    if (result != FR_OK)
    {
        return;
    }
    //XSize = GUI_BMP_GetXSizeEx(_GetData, &file);
    //YSize = GUI_BMP_GetYSizeEx(_GetData, &file);
    OSSchedLock(&err);
      GUI_BMP_DrawEx(_GetData, &file, 0, 0);//窗体创建之前显示图片
                       //IMAGE_SetBMPEx(hObj,_GetData, &file);//在控件上显示图片
    OSSchedUnlock(&err);
      f_close(&file);
}
不知道IMAGE_SetBMPEx(hObj,_GetData, &file);这个函数用对没有
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2013-10-24 21:00:41 | 显示全部楼层

回 zhuhao 的帖子

zhuhao:请问如何将SD卡里面的图片显示在GUI窗体上(对话框),我现在只能让SD卡里面的图片显示在窗体创建之前的界面上,窗体创建之后就把图片 覆盖了看不到
void _ShowBMPEx(const char * sFilename,IMAGE_Handle hObj)
{    
    OS_ERR  .. (2013-10-24 20:49) 
emWin教程的后面几期的教程会专门的讲这个问题的,你可以先自己摸索一下。
回复

使用道具 举报

11

主题

59

回帖

11

积分

初级会员

积分
11
发表于 2013-10-24 21:00:42 | 显示全部楼层
2013-10-24-062.jpg
我的弄完了是这个样子的,不知道怎么回事
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2013-10-24 21:02:21 | 显示全部楼层

回 magusss 的帖子

magusss:
我的弄完了是这个样子的,不知道怎么回事 (2013-10-24 21:00) 
注意字节对齐,估计是你的fatfs没有解决字节对齐问题,DMA默认是4字节对齐的。
回复

使用道具 举报

11

主题

59

回帖

11

积分

初级会员

积分
11
发表于 2013-10-24 21:36:36 | 显示全部楼层

回 eric2013 的帖子

eric2013:注意字节对齐,估计是你的fatfs没有解决字节对齐问题,DMA默认是4字节对齐的。 (2013-10-24 21:02) 
能否讲得详细点,不太明白。
谢谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2013-10-24 21:39:57 | 显示全部楼层

回 magusss 的帖子

magusss:能否讲得详细点,不太明白。
谢谢 (2013-10-24 21:36) 
这样,你用裸机的方式,不使用UCGUI,你看看你能正常的显示么
回复

使用道具 举报

1

主题

25

回帖

1

积分

新手上路

积分
1
发表于 2013-10-24 21:43:40 | 显示全部楼层

回 eric2013 的帖子

eric2013:emWin教程的后面几期的教程会专门的讲这个问题的,你可以先自己摸索一下。 (2013-10-24 21:00)
IMAGE_SetBMPEx(hObj,_GetData, &file);这个函数用错了?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2013-10-24 22:23:53 | 显示全部楼层

回 zhuhao 的帖子

zhuhao:IMAGE_SetBMPEx(hObj,_GetData, &file);这个函数用错了? (2013-10-24 21:43) 
这个函数我还没有用过,不好给你回复
回复

使用道具 举报

1

主题

25

回帖

1

积分

新手上路

积分
1
发表于 2013-10-24 22:27:15 | 显示全部楼层

回 eric2013 的帖子

eric2013:这个函数我还没有用过,不好给你回复 (2013-10-24 22:23)
谢谢,可以在窗体上显示了,不过那个函数还是不会用
回复

使用道具 举报

0

主题

6

回帖

0

积分

新手上路

积分
0
发表于 2013-10-24 22:56:05 | 显示全部楼层
[s:148]
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2013-10-25 11:16:26 | 显示全部楼层
来看看
回复

使用道具 举报

11

主题

59

回帖

11

积分

初级会员

积分
11
发表于 2013-10-25 13:51:14 | 显示全部楼层

回 eric2013 的帖子

eric2013:这样,你用裸机的方式,不使用UCGUI,你看看你能正常的显示么 (2013-10-24 21:39)
for(i=0;!f_eof(&File1);i++)
    {   
        if(i==0)
        {
            unsigned short color[600];
            f_lseek(&File1,54);
            f_read (&File1,buf,1800, &cou);
            for(j=0;j<600;j++)
            {
                color[j] = 0;
                color[j] = buf[3*j]>>3;
                color[j] <<= 5;
                color[j] |= buf[3*j+1]>>2;
                color[j] <<= 6;
                color[j] |= buf[3*j+2]>>3;
            }
            XY_Coordinate(1,1);
            WriteCommand(0x02);//MRWC
            for(xsize=0;xsize <600; xsize++){
                WriteData(color[xsize]);
            }
            RA8875_WAITSTATUS();
        }
        else
        {
            unsigned short color[600];
            f_read (&File1,buf,1800, &cou);
            for(j=0;j<600;j++)
            {
                color[j] = 0;
                color[j] = buf[3*j]>>3;
                color[j] <<= 5;
                color[j] |= buf[3*j+1]>>2;
                color[j] <<= 6;
                color[j] |= buf[3*j+2]>>3;
            }
            XY_Coordinate(1,i+1);
            WriteCommand(0x02);//MRWC
            for(xsize=0;xsize <600; xsize++){
                WriteData(color[xsize]);
            }
            RA8875_WAITSTATUS();
        }
    }
裸机的代码这样写的,刷出的图片还是上面那样
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2013-10-25 13:56:53 | 显示全部楼层

回 magusss 的帖子

magusss:for(i=0;!f_eof(&File1);i++)
    {    
        if(i==0)
        {
             .. (2013-10-25 13:51) 
建议你看一下这个文章
http://www.amobbs.com/thread-5525014-1-1.html
回复

使用道具 举报

11

主题

59

回帖

11

积分

初级会员

积分
11
发表于 2013-10-25 16:08:34 | 显示全部楼层

回 eric2013 的帖子

eric2013:建议你看一下这个文章
http://www.amobbs.com/thread-5525014-1-1.html  (2013-10-25 13:56) 
谢谢,找到原因了,丢了两个字节,现在不用GUI可以正常显示了
回复

使用道具 举报

0

主题

2

回帖

0

积分

新手上路

积分
0
发表于 2013-10-26 15:25:43 | 显示全部楼层
正在做社一块,需要,谢谢楼主
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2013-10-26 18:31:42 | 显示全部楼层
好好学习天天向上
回复

使用道具 举报

0

主题

18

回帖

0

积分

新手上路

积分
0
发表于 2013-10-28 10:38:06 | 显示全部楼层
谢谢 ,看看
回复

使用道具 举报

1

主题

25

回帖

1

积分

新手上路

积分
1
发表于 2013-10-28 21:16:06 | 显示全部楼层
我的图片显示刷屏有点慢,一张160*130大小的BMP图片刷下来要0.5S左右,RAM分配的50KB,这张图片也就60KB,为什么刷屏慢呢?是SD卡慢还是RAM太小了?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2013-10-28 21:18:59 | 显示全部楼层

回 zhuhao 的帖子

zhuhao:我的图片显示刷屏有点慢,一张160*130大小的BMP图片刷下来要0.5S左右,RAM分配的50KB,这张图片也就60KB,为什么刷屏慢呢?是SD卡慢还是RAM太小了? (2013-10-28 21:16) 
你使用的边读边刷的吧,不过这么小的图片0.5s稍稍有点慢
回复

使用道具 举报

1

主题

25

回帖

1

积分

新手上路

积分
1
发表于 2013-10-28 21:38:30 | 显示全部楼层

回 eric2013 的帖子

eric2013:你使用的边读边刷的吧,不过这么小的图片0.5s稍稍有点慢 (2013-10-28 21:18)
使用的这个GUI_BMP_DrawEx() 函数,代码是用的你上面的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2013-10-28 21:41:10 | 显示全部楼层

回 zhuhao 的帖子

zhuhao:使用的这个GUI_BMP_DrawEx() 函数,代码是用的你上面的 (2013-10-28 21:38) 
差不多吧,因为用的是emWin自己的绘图函数,不好从底层做优化,只能一个点一个点的打出来,所以速度很慢
回复

使用道具 举报

1

主题

25

回帖

1

积分

新手上路

积分
1
发表于 2013-10-28 21:46:55 | 显示全部楼层

回 eric2013 的帖子

eric2013:差不多吧,因为用的是emWin自己的绘图函数,不好从底层做优化,只能一个点一个点的打出来,所以速度很慢 (2013-10-28 21:41)
那怎么把速度提上来,要看不出刷屏
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2013-10-29 17:08:36 | 显示全部楼层

回 zhuhao 的帖子

zhuhao:那怎么把速度提上来,要看不出刷屏 (2013-10-28 21:46) 
开辟内存,将图片先读到内存里面,然后再显示
回复

使用道具 举报

0

主题

10

回帖

10

积分

新手上路

积分
10
发表于 2013-10-31 16:20:26 | 显示全部楼层
顶一个,学习下
回复

使用道具 举报

1

主题

27

回帖

30

积分

新手上路

积分
30
发表于 2013-11-2 00:30:46 | 显示全部楼层
学习了。。。。。。[s:151]
回复

使用道具 举报

0

主题

23

回帖

23

积分

新手上路

积分
23
发表于 2013-11-5 20:01:49 | 显示全部楼层
继续学习
回复

使用道具 举报

1

主题

28

回帖

1

积分

新手上路

积分
1
发表于 2013-11-5 21:52:33 | 显示全部楼层
[s:141]  [s:141]
回复

使用道具 举报

0

主题

11

回帖

11

积分

新手上路

积分
11
发表于 2013-11-6 09:05:14 | 显示全部楼层
学习一下
回复

使用道具 举报

0

主题

8

回帖

0

积分

新手上路

积分
0
发表于 2013-11-10 17:43:17 | 显示全部楼层
非常感谢楼主[s:130]
回复

使用道具 举报

0

主题

12

回帖

0

积分

新手上路

积分
0
发表于 2013-11-11 14:27:50 | 显示全部楼层
顶一个,继续
回复

使用道具 举报

0

主题

12

回帖

0

积分

新手上路

积分
0
发表于 2013-11-11 14:29:05 | 显示全部楼层
继续学习
回复

使用道具 举报

0

主题

12

回帖

0

积分

新手上路

积分
0
发表于 2013-11-11 14:30:52 | 显示全部楼层
学习中。。。。。。。。。。。。
回复

使用道具 举报

0

主题

12

回帖

0

积分

新手上路

积分
0
发表于 2013-11-11 14:34:09 | 显示全部楼层
[s:151] [s:151] [s:151] [s:151]
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-12 00:46 , Processed in 0.344601 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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