我有一个bmp图像,我试图用c旋转180度。
这是我到目前为止所获得的代码,但由于某些原因它不会旋转图像(它对图像没有任何作用)。这里h是图片的高度,w是宽度。
int rotate(int h, int w)
{
FILE *infile = fopen("in2.bmp", "rb");
FILE *outfile = fopen("copy3.bmp", "wb");
char header[HEADER_SIZE];
unsigned char pixels[h][w * 3];
fread( header, 1 , HEADER_SIZE , infile);
fread( pixels, 1 , h * w * 3 , infile);
int r,c;
for( r = 0; r < h; r++)
{
for ( c = 0; c < w * 3; c+=1)
{
char temp = pixels[r][c];
pixels[r][c] = pixels[h-r-1][(w*3-1)-c];
pixels[h-r-1][(w*3-1)-c] = temp;
}
}
fwrite( header, sizeof(char) , HEADER_SIZE , outfile);
fwrite( pixels, sizeof(char) , h * w * 3 , outfile);
fclose(infile);
fclose(outfile);
return 0;
}
谢谢!