实现方法介绍
1.已经知道位图的高度是从第22个字节开始,那么先把指针移动到该位置;
2.将位图的高度读取出来;
3.再将指针移回去;
4.直接将高度值赋值为负数;
5.将改完之后的值写入图片中;
代码
#include <iostream>
#include <windows.h>
using namespace std;
char FileName[] = "test.bmp";
#define FILENAME FileName
#define READEORWRITE "rb+"
int main()
{
FILE* pf;
errno_t err;
err = fopen_s(&pf, FILENAME, READEORWRITE);
if (0 == err)
{
//把读写指针移到开始的位置
//rewind(pf);
//移动到了高度的位置
fseek(pf, 22, SEEK_SET);
LONG h;
//把高度读出来
fread(&h, sizeof(LONG), 1, pf);
//再次移动到高度位置
fseek(pf, 22, SEEK_SET);
h = -h;
fwrite(&h, sizeof(LONG), 1, pf);
fclose(pf);
}
system("pause");
return 0;
}