硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2317|回复: 9
收起左侧

[μCGUI] 请问uCGUI怎么显示U盘里的各种格式的图片?

[复制链接]

20

主题

92

回帖

152

积分

初级会员

积分
152
发表于 2018-7-16 13:59:43 | 显示全部楼层 |阅读模式
之前做过把BMP图片转换成C文件后显示的实验;
但是JPEG、GIF、PNG好像没有合适的处理方法,并且当图片文件太多时,转换成C文件好像也不可行了,内部FLASH装不了那么多数据;
于是移植了USB Device,把SPI FLASH虚拟成U盘,从电脑上把几十张图片文件放入这个虚拟U盘中;
打算通过FatFs读取图片文件,然后通过uCGUI显示出来。

请问一下:
1. uCGUI怎么显示U盘里的图片文件呢?看了点介绍,貌似uCGUI操作各种格式的图片文件有点麻烦,那我需要暂时放弃cCGUI而转向emWin吗?
2. 电脑读写SPI FLASH (虚拟U盘)时,会不会导致FatFs对这个U盘的读写有冲突?需要做资源的互斥操作吗?



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-7-16 14:06:26 | 显示全部楼层
1、老版本的没问题的,只有有BMP,JPEG,PNG的API函数即可。
2、不要同时操作,如果使用模拟U盘的话,界面里面直接弄个模态窗口。如果同时操作,即使底层的api做了互斥,但是模拟U盘很容易造成无法识别。
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2018-7-24 20:22:48 | 显示全部楼层
本帖最后由 tovax 于 2018-7-24 20:25 编辑
eric2013 发表于 2018-7-16 14:06
1、老版本的没问题的,只有有BMP,JPEG,PNG的API函数即可。
2、不要同时操作,如果使用模拟U盘的话,界面 ...

谢谢eric2013!
移植了FatFs和USB Device MSC,可以从电脑上拷贝图片到虚拟的U盘中,FatFs也可以正常读写;
FatFs读取的BMP文件,uCGUI也可以正常显示;
目前的显示方式是:先把U盘中的BMP文件读取到外部SDRAM中,然后从SDRAM中显示,即GUI_BMP_Draw(bmp, 400, 240);

请问:
1. JPEG, PNG, GIF这些图片格式怎么显示呢?貌似uCGUI3.98中只有BMP格式的显示函数。
2. 看到论坛里有说“当RAM不够时,可以边读取BMP文件边显示”,也就是读一点显示一点,还可以这样的吗?请问是什么原理呢?这种边读边显示的方式是不是适用于“纯图像数据”的BMP格式,像这种“BMP文件”可以边读边显示吗?

回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2018-7-24 21:06:34 | 显示全部楼层
太粗心了,看到GIF的显示函数了,等会儿试试看
JPEG和PNG估计得有专门的解码函数吧
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-7-25 00:24:59 | 显示全部楼层
tovax 发表于 2018-7-24 20:22
谢谢eric2013!
移植了FatFs和USB Device MSC,可以从电脑上拷贝图片到虚拟的U盘中,FatFs也可以正常读 ...

1、3.98里面有JPEG的库,可以调用实现的。
2、PNG是需要移植的,现在的emWin5.x版本也得移植下,因为PNG库有授权问题,不能集成的GUI里面,详情可以看我们的新版emWin教程的PNG章节:http://www.armbbs.cn/forum.php?m ... &extra=page%3D1

3、速度太慢,你有了SDRAM,不要考虑这种方式了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-7-25 00:25:19 | 显示全部楼层
tovax 发表于 2018-7-24 21:06
太粗心了,看到GIF的显示函数了,等会儿试试看
JPEG和PNG估计得有专门的解码函数吧

是的,楼上回复你了。
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2018-7-25 08:35:55 | 显示全部楼层
eric2013 发表于 2018-7-25 00:25
是的,楼上回复你了。

我这3.98的版本应该是不全,这个源码包里就找到两个跟JPEG有关的地方:a. GUI.h里有几个JPEG函数声明,但是没有实现的代码;b. GUI_BMP.c的注释里有个不支持JPEG的字样。
你有包含JPEG的3.98完整版吗,方便提供个下载链接吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-7-25 09:56:06 | 显示全部楼层
tovax 发表于 2018-7-25 08:35
我这3.98的版本应该是不全,这个源码包里就找到两个跟JPEG有关的地方:a. GUI.h里有几个JPEG函数声明,但 ...

这里:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=2125
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2018-7-25 22:24:37 | 显示全部楼层
eric2013 发表于 2018-7-25 09:56
这里:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=2125

谢谢你!
用源码包里的JPEG代码可以正常显示图片了;
BMP,GIF,JPEG都可以了,还有个PNG,看了你说的教程,emwin专门整理了png库,移植到ucgui好像有点麻烦;
目前这三种格式的图片应该够用了,先不折腾PNG了,后续用到再移植吧。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-7-26 03:22:15 | 显示全部楼层
tovax 发表于 2018-7-25 22:24
谢谢你!
用源码包里的JPEG代码可以正常显示图片了;
BMP,GIF,JPEG都可以了,还有个PNG,看了你说的教 ...

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 13:06 , Processed in 0.345707 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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