游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: ricohcanon

千古悬案,无人能解。

[复制链接]

6

主题

307

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
发表于 2007-1-19 10:23:00 | 显示全部楼层

Re: Re:千古悬案,无人能解。

ricohcanon: Re:千古悬案,无人能解。

本菜不敢苟同17楼的兄弟的说法,字节对齐是对于数据类型而言,要对齐也应该是针对文件头结构类型或者信息头结构类型,而整个位图并不是某一种预定义的数据类型。谢谢17楼的讨论。欢迎大家热烈讨论。



这个涉及到DX他内部是怎么处理的,C的编译器会进行字对其完全是性能优化的结果,你也可以关掉他

平时用C写东西分配内存,都是用的堆分配,可以分配任意大小的内存

但是系统最底层的内存分配是有个最小值的

再说DX在记录一个数据大小时可能使用了实际大小除以4的字大小

这样做可以避免一些超过4G大小的数据无法用整型计数的问题

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
 楼主| 发表于 2007-1-19 11:37:00 | 显示全部楼层

Re:千古悬案,无人能解。

楼上兄台,本菜确实不太了解DX内部的东西,不过俗话说的好,实践是检验真理的唯一标准,楼上是否可以针对本贴问题拿出一个确实可靠的证据来讲解一下呢?也就是说能够确实可信地用你的理论来剖析本贴所提出的问题,并给予最终的实际的证实以验证你的理论,如果不能的话,老实说,虽然我不能否定你的理论,但是你的理论也并不能使我信服,这并不是我较真儿,我想,这应该是每个研究技术的人的一个基本的科学态度吧。不管怎样,感谢你的参与。

17

主题

258

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
发表于 2007-1-21 18:57:00 | 显示全部楼层

Re:千古悬案,无人能解。

bmp好像要有字对齐,所以出现多余的字节了 。

20

主题

465

帖子

472

积分

中级会员

Rank: 3Rank: 3

积分
472
QQ
发表于 2007-1-21 20:40:00 | 显示全部楼层

Re:千古悬案,无人能解。

BMP文件需要双字对齐,不只是每一行,而是整个文件也需要!虽然在读取的时候没有这个必要(你把后面两个字节删了,照样所有的编辑器都能正常读取),但是,按照标准来做需要这样。因为,14+40=54。但54/4=13.5,而56/4=14。所以,正确的值是14+40+256*256*4+2。最后的两个字节是为了双字对齐。

20

主题

465

帖子

472

积分

中级会员

Rank: 3Rank: 3

积分
472
QQ
发表于 2007-1-21 20:57:00 | 显示全部楼层

Re:千古悬案,无人能解。

PS:不是每个编辑器都要按照标准来的。例如我自己写的BMP混合库就不会整个文件都是双字对齐,还有画图、ACD的看图工具也不会。但是Photoshop的会,它保存的无论是32位、24位、16位,整个文件都会是32位对齐。后面两个字节是0x0000。

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
 楼主| 发表于 2007-1-21 23:17:00 | 显示全部楼层

Re: Re:千古悬案,无人能解。

FlyMagic: Re:千古悬案,无人能解。

BMP文件需要双字对齐,不只是每一行,而是整个文件也需要!虽然在读取的时候没有这个必要(你把后面两个字节...

哦?整个文件也需要对齐的吗?我只看到过介绍数据类型对齐的,恩,仔细想想也有可能,不过没看到相关资料不敢轻易肯定,兄台可有相关资料介绍文件对齐的吗?哪怕只提到一两句也成,要是知道相关书籍或者电子文档什么的,麻烦话告诉我一下,我看看,谢谢。 [em13]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 06:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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