我想实现的是:将一张256色位图的bmp图像(1.bmp)上下左右移动N个像素(比如向右移5个像素,最左边的5个像素全涂成黑色)生成另一张图像(2.bmp)。我现在写的有些问题:
代码:
#include
#include
int main()
{
BITMAPFILEHEADER fileHeader;
BITMAPINFOHEADER infoHeader;
FILE *pfin = fopen("F:\1.bmp","rb");
FILE *pfout = fopen("F:\2.bmp","wb");
fread(&fileHeader,sizeof(BITMAPFILEHEADER),1,pfin);
fread(&infoHeader,sizeof(BITMAPINFOHEADER),1,pfin);
int size = 512*512;
int i;
unsigned char img[512][512];
fread(img,sizeof(byte),size,pfin);
if(infoHeader.biBitCount == 8)
{
for(i=1;i<512;i++)
{
img[i][50]=0;
}
}
fwrite(&fileHeader,sizeof(fileHeader),1,pfout);
fwrite(&infoHeader,sizeof(infoHeader),1,pfout);
fwrite(img,sizeof(byte),size,pfout);
}