![bf018319159300092adf422f3cd69a0e.png](https://i-blog.csdnimg.cn/blog_migrate/32a6042db83ee258c44e34ec410595f8.jpeg)
要求:将24位真彩色.bmp图像文件顺时针旋转90度。
完整题目描述的链接:BMP图像文件旋转作业
刚刚看到这个题目我是懵逼的,如果仅仅是旋转图像还好说,用OpenCV对像素操作也可以完成。但是这个题目描述下面一堆的BMP文件介绍,看了半页我就放弃了。。。
试图求助知乎,结果得到的结果是苏联步兵装甲车BMP-2。。。
只好开始传统艺能:面向CSDN编程hhhh。浏览了一些代码之后,我逐渐总结出了比题目描述中更简明的内容(主要是因为我们只处理24位图而且只旋转90度,很多东西用不到)。
这里先描述一下BMP文件的构成:一个BMP文件由四部分构成:文件头、信息头、颜色表和图像信息区。文件头和信息头储存一些关于图像的信息,颜色表用来生成调色板,图像信息区则存储像素信息。这些信息依次存储在BMP文件中,要读取他们时我们只需依次将其读取即可(具体方法后面再讨论)。而这些信息中,我们会用到的也没有多少,主要是信息头中的
biWidth(位图的宽度,以像素为单位);
biHeight(位图的高度,以像素为单位);
biBitCount(每个像素所需位数),biBitCount是多少这个图就是多少位图&#