作业要求:将24位或32位真彩色
bmp 图像文件,顺时针旋转90度
可执行程序名:rotatebmp 用法:rotatebmp src
bmp dest
bmp (文件名可变) 生成的dest
bmp是从src
bmp 顺时针旋转90度得到的
注意事项:C++编译有“结构边界对齐”的概念: struct A { int a; char c; }; 那么 sizeof(A)未必是5,很有可能是8,因为 C++编译器为了提高代码执行效率,往往在生成结构变量的时候,自动将其大小调整为 4的整数倍,或8的整数倍
程序员可以在编译选项中指定对齐的方式是1字节,2字节,4字节或8字节(即每个结构变量的大小一定是1的倍数,2的倍数,4的倍数,8的倍数),也可以在程序开头直接用: #pragma pack(2) 指定对齐边界是2字节,或1字节,4字节„
参考阅读: BMP图像文件格式 1 BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即 Windows位图
它一般由 4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成
在系统中以 BMP为扩展名保存
打开 Windows的画图程序,在保存图像时,可以看到三个选项:2色位图(黑白)、16色位图、256色位图和 24位位图
这是最普通的生成位图的工具,在这里讲解的BMP位图形式,主要就是指用画图生成的位图(当然,也可以用其它工具软件生成)
现在讲解 BMP的4个组成部分: 1
文件头信息块 0000-0001:文件标识,为字母 ASCII码“BM”
0002-0005:文件大小
0006-0009:保留,每字节以“00”填写
000A-000D: 记 录 图 像 数 据 区 的 起 始 位 置
各 字 节 的 信 息 依 次 含 义 为 : 文 件 头 信息 块 大