| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 577 人关注过本帖
标题:像素读写的一段基础概念,大家说它说的对吗
只看楼主 加入收藏
yaoguai2005
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2005-9-11
收藏
 问题点数:0 回复次数:8 
像素读写的一段基础概念,大家说它说的对吗
下面这个基础概念说的对吗 -----像素点的读写(最关键的地方,难道读和写的顺序都是一样的吗)顺序是从左到右从下到上,也就是说第一个点是这幅图的第一列的最后一个点(左下角的那个点),之后是它上面的那个点,就这样由下至上直到第一列的第一个点(左上角的那个点),然后是第二列也是从下至上的顺序。直到写完所有的点。 请大家指点~```````
搜索更多相关主题的帖子: 像素 概念 基础 
2005-10-21 17:43
jxing
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-3
收藏
得分:0 
左到右,上到下吧
2005-10-21 18:24
leon2
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:731
专家分:0
注 册:2005-3-18
收藏
得分:0 
是正确的,楼主说得一定是关于 BMP 文件的结构概念,一般 BMP 文件的位图数据都是按照这样的顺序来存储的。至于读和写的顺序,要注意 BMP 文件的一个像素点的存储方式是 B, G, R 而非 R, G, B。例如,蓝色的存储方式是:
255
0
0
而不是 0,0,255。写的时候也是这样。
2005-10-22 11:22
yaoguai2005
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2005-9-11
收藏
得分:0 
如过上面的话是正确的,
那么,它就是按照列读取的,先从下面最左边第一个像素至上读完第1列,然后
在从下面至上读取第2列,
是这样的情况吗.

2005-10-22 12:39
leon2
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:731
专家分:0
注 册:2005-3-18
收藏
得分:0 
我刚才做了一个 4 像素的 BMP 文件,分别是红、蓝、绿、白,如下: 然后编了一个程序来查看数据,发现像素数据段是按照绿、白、红、蓝的顺序存储的: 0 255 0 255 255 255 '以下两个 0 表示行尾 0 0 0 0 255 255 0 0以下三个 0 表示文件尾 0 0 0 从上面的数据可以看到,这个 BMP 文件是先从左到右,后从下到上存储像素数据的。

[此贴子已经被作者于2005-10-22 13:41:09编辑过]

2005-10-22 13:39
yaoguai2005
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2005-9-11
收藏
得分:0 
leon2你真是高人 连例题都作的如此清晰,明了, 太感谢了 还是有点出乎我的意料,这样看来,它是先把最底下的一行读完, 然后在读倒数第2行, 而我最上面的理论概念是,先把最左边的列读完,然后在读左边起的第2列. 这个概念很多书说的不一样.有的写从左到右,从下到上 有的写从下到上, 从左到右 话的顺序不一样,意思当然错了.偏偏他们都不详说, 今天看来从左到右,从下到上,是对的. 那我最上面的写的概念是错的,这个文章它说的话的顺序是对的(从左到右,从下到上) .但是它的解释是错的.太害人了.刚学位图结构的初学者绝对被它骗了. 再一次感谢你leon2

[此贴子已经被作者于2005-10-22 17:25:12编辑过]


2005-10-22 17:20
leon2
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:731
专家分:0
注 册:2005-3-18
收藏
得分:0 
其实我也是实践得来的结论,我怀疑不同大小的 BMP 文件都有不同的存储数据方式。
2005-10-22 19:03
yaoguai2005
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2005-9-11
收藏
得分:0 
BMP 文件
不会那么离谱,因该只有这样了,

2005-10-23 01:26
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
yaoguai2005, BMP 是从左到右, 从下到上的. 你说的没错. 至于RGB 还是BGR 的排列取决于你的操作系统, 因为操作系统决定了 littleEndian 还是bigEndian windows 是 littleEndian . 简单的来讲, 如果在littleEndian机器上你看到的一个数据为 0x 34 56 79 10 那么这个数据实际为 0x 10 79 56 34. Sun 的 Solaris 是 bigEndian 所以同样的文件如果在Sun 的 Solaris 上你读出来的就是 RGB了而不是 BGR 了.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-10-23 01:58
快速回复:像素读写的一段基础概念,大家说它说的对吗
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045418 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved