PKU-文件操作作业-BMP图像文件旋转

本文档介绍了处理BMP位图文件旋转的解题思路,包括理解BMP文件流结构,C++基本数据类型的占位,BMP文件头和信息头的定义,以及24位和32位像素数据的存储规则。核心算法基于矩阵转置,并采用泛型编程实现,同时讨论了对齐边界的重要性。最后,提到了32位位图处理的未测试情况。
摘要由CSDN通过智能技术生成

解题思路:

1.待处理的对象:

待处理的对象是BMP位图,实际上只是一种类型的文件流,和字符流什么的没有区别,这次练习的核心是为了锻炼出惊人的操作读写流的能力,所以,就将其当作01流就可以了。因此关于BMP最重要的就是要理解流的什么地方是什么,实际上文档上已经说得比较详细了。在此不再赘述BMP的基本理论,只重点讨论24位和32位位图。这里的位,实际上就是指一个像素格所占的位数(bit),需要知道的是1字节(Byte)=8bit,因此我们不得不回顾c++基本数据类型的占位。


2.c++基本数据类型的占位

char :1byte = 8bit

short:2byte = 16bit

int :4byte = 32bit

long :4byte = 32bit

所以下面的WORD和DWORD类型其实占位是一样的,可是为了保持文档中的叙述方式,再加上基本数据占位在不同编译器中有所差异,所以就这样吧

...


3.待处理对象的进一步讨论

从作业的文档中提取出来的有用的信息是

(1)BMP有一个文件头,见下面Head类的定义。这一串流占位14个字节(自己数)

(2)BMP有一个信息头,见下面Indo类的定义。这一串流占位40个字节(到这里是不是明白为什么文件头中图像数据的偏移一般是54了?)

(3)图像的像素数据,

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值