讨论贴,关于宇龙coolpad N900 wince 6.0 的使用24位位图的问题

WceUi 2010-03-18 10:06:47

int x = GetDeviceCaps(hdc, BITSPIXEL);
//x = 24


我实在是没有想通,宇龙为什么会选择24,而不是32,按理说,24位的位图的访问速度是比较慢的,因为不是字节对齐,我觉得应该搞成32,像PC上微软的真彩色一样,就是32,要么就是增强色16位,,

偏偏的24,,

各位做驱动的来评价一下,使用24有什么好处,为什么不用32?
...全文
88 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunrain_hjb 2010-03-19
  • 打赏
  • 举报
回复
我们的平台用的是32位的。
个人觉得在某些状态下比24位的要更好操作一些,就像楼主所说的这种情况。
使用24位色估计是考虑节省内存使用吧。
如果不考虑内存占用的话,用32位色应该比24位色要好一些,效率也会高一些。
风中老长 2010-03-19
  • 打赏
  • 举报
回复
我的个人理解,有两种可能性,第一个,是主芯片BSP的设计如此。第二个,为了节约内存带宽。
博说医械研发 2010-03-19
  • 打赏
  • 举报
回复
你可以看下BMP图片的属性及格式,实际上都是24位的(非16位及8位等情况),RGB各一个字节,详细计算一下图片的尺寸,也的确是RGB共三个字节再加上一些BMP的文件头和尾。
WceUi 2010-03-19
  • 打赏
  • 举报
回复
其实是这样的,如果是32位的话,我可以每次取一个DWORD出来,取出来的DWORD是字节对齐的,,
而24位的,只能一个byte一个byte的取,不过你说得有道理,

但有没有wince6也是用的24,而不是32呢??
我之前遇到的都是32,,而24是第一次见到.


[Quote=引用 3 楼 domworldjohn 的回复:]

你是想对每一个像素颜色进行运算对吧?其实一个像素,24位位图就是RGB3个字节,32位位图就是RGBA4个字节。所以对每一个像素颜色进行运算,24位与32位位图都是一样的,它们没有根本区别。
[/Quote]
domworldjohn 2010-03-19
  • 打赏
  • 举报
回复
你是想对每一个像素颜色进行运算对吧?其实一个像素,24位位图就是RGB3个字节,32位位图就是RGBA4个字节。所以对每一个像素颜色进行运算,24位与32位位图都是一样的,它们没有根本区别。
WceUi 2010-03-18
  • 打赏
  • 举报
回复
理解你的意思,但如果我想针对每个点做运算的话,就很痛苦了.
[Quote=引用 1 楼 domworldjohn 的回复:]

其实24位的图片RGB各占一个字节,也就是R一个字节(8位)、G一个字节、B一个字节,如此刚刚好3个字节24位,而存储是以字节对齐的,因此24位的位图是字节对齐的。32位位图占用4个字节,其中RGB占3个字节,另外一个字节代表透明度。因此,32位位图只不过是24位位图的扩展复杂版而已,更占空间,而信息量并不增加多少。因此,位图一般都是使用24位的,这样访问速度更快,存储空间更小。特殊场合才会用到……
[/Quote]
domworldjohn 2010-03-18
  • 打赏
  • 举报
回复
其实24位的图片RGB各占一个字节,也就是R一个字节(8位)、G一个字节、B一个字节,如此刚刚好3个字节24位,而存储是以字节对齐的,因此24位的位图是字节对齐的。32位位图占用4个字节,其中RGB占3个字节,另外一个字节代表透明度。因此,32位位图只不过是24位位图的扩展复杂版而已,更占空间,而信息量并不增加多少。因此,位图一般都是使用24位的,这样访问速度更快,存储空间更小。特殊场合才会用到32位位图,比如PNG、TGA等,它们需要用一个字节代表透明度。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧