硬汉嵌入式论坛

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

[emWin] 按钮函数BUTTON_SetStreamedBitmap函数还是无法使用,因为找不到流位图结构GUI_BIT

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107759
QQ
发表于 2016-10-13 12:43:56 | 显示全部楼层 |阅读模式
今天全工程搜索emWin,与流位图结构体GUI_BITMAP_STREAM相关的有几个
5.png




但是都无法使用。特别是函数GUI__ReadHeaderFromStream,以为可以读取出来的流位图结构体,发现还是不行。
现在还是采用间接的调用方法吧,通过函数GUI_CreateBitmapFromStream将流位图转换成位图,再用按钮的位图显示函数显示出来
BUTTON_SetBitmapEx


使用流位图的最大好处就是可以将其存储到任何外部存储器,使用很方便。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107759
QQ
 楼主| 发表于 2016-10-13 12:53:27 | 显示全部楼层
我觉得流位图的结构体定义就有问题,这个结构体没有给出数据位置。。
typedef struct {
  U16 ID;
  U16 Format;
  U16 XSize;
  U16 YSize;
  U16 BytesPerLine;
  U16 BitsPerPixel;
  U16 NumColors;
  U16 HasTrans;
} GUI_BITMAP_STREAM;

而我们使用位图的时候都是有相应指针变量的。

typedef struct {
  U16P XSize;
  U16P YSize;
  U16P BytesPerLine;
  U16P BitsPerPixel;
  const U8 * pData;
  const GUI_LOGPALETTE * pPal;
  const GUI_BITMAP_METHODS * pMethods;
} GUI_BITMAP;
回复

使用道具 举报

2

主题

19

回帖

2

积分

新手上路

积分
2
发表于 2016-10-13 22:37:12 | 显示全部楼层
是不是为了实现Button按键上可以贴图的效果?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107759
QQ
 楼主| 发表于 2016-10-14 10:22:58 | 显示全部楼层

回 guohaidao 的帖子

guohaidao:是不是为了实现Button按键上可以贴图的效果? (2016-10-13 22:37) 
是的,这个流位图函数暂时已经放弃了,还是直接使用位图函数绘制。
回复

使用道具 举报

36

主题

110

回帖

218

积分

高级会员

积分
218
发表于 2016-10-15 10:22:48 | 显示全部楼层

回 eric2013 的帖子

eric2013:是的,这个流位图函数暂时已经放弃了,还是直接使用位图函数绘制。 (2016-10-14 10:22) 
原来发的帖子“60期教程第9章中button上面显示流位图问题已经解决”,不可以从SD卡中读取吗?
还是说这一个函数不能显示,可以用其他的函数进行代替进行流位图显示在BUTTON上啊?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107759
QQ
 楼主| 发表于 2016-10-15 10:26:54 | 显示全部楼层

回 坚持再坚持 的帖子

坚持再坚持:原来发的帖子“60期教程第9章中button上面显示流位图问题已经解决”,不可以从SD卡中读取吗?
还是说这一个函数不能显示,可以用其他的函数进行代替进行流位图显示在BUTTON上啊? (2016-10-15 10:22) 
依然是流位图,只是把流位图转换成位图显示。
回复

使用道具 举报

6

主题

231

回帖

249

积分

高级会员

积分
249
发表于 2016-10-15 10:49:10 | 显示全部楼层

回 eric2013 的帖子

eric2013:我觉得流位图的结构体定义就有问题,这个结构体没有给出数据位置。。
typedef struct {
  U16 ID;
  U16 Format;
  U16 XSize;
....... (2016-10-13 12:53)
这种情况是不能使用指针来表示数据位置的,只能使用偏移量。或许数据的位置就在GUI_BITMAP_STREAM结构之后呢?

还有我记得上次有人问过为什么GUI_DrawBitmapEx显示的位图都是自下而上的?根据一般常识很多显示BMP位图的代码都支持将位图高度设置为负值,负值表示要自上而下显示BMP图像。

如果有源代码看一看就知道是怎么回事了,没有源代码的东西我不太敢使用,除非是大公司或者是非常著名的项目。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107759
QQ
 楼主| 发表于 2016-10-15 11:06:22 | 显示全部楼层

回 novice 的帖子

novice:这种情况是不能使用指针来表示数据位置的,只能使用偏移量。或许数据的位置就在GUI_BITMAP_STREAM结构之后呢?

还有我记得上次有人问过为什么GUI_DrawBitmapEx显示的位图都是自下而上的?根据一般常识很多显示BMP位图的代码都支持将位图高度设置为负值,负值表示要自上而下显示B .. (2016-10-15 10:49)
emWin小软件生成的位图只能从左到右,从上到下显示。BMP图片是从下往上的,因为BMP图片数据格式本身就是这样的,设置负值显示需要内部处理下了。

现在的社会就是这样的,开源的到最后只有死路一条,需要源码用户花钱购买即可。emWin在小型嵌入式GUI领域已经做的非常棒了,我比较喜欢。
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2018-9-1 16:20:56 | 显示全部楼层
学习位图流中。感谢分享
Releasing your creativity
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-13 07:19 , Processed in 0.183004 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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