我不太擅长c语言,这个问题困扰了我好几天,我在互联网上发现了这种方法,我正在寻找修改它的方法,但是它不起作用
这是我要修改的代码
int rotate(PIXEL* original, int rows, int cols, int rotation,
PIXEL** new, int* newrows, int* newcols)
{
int c,r;//counters for rows and columns
*newrows = cols;
*newcols = rows;
//allocating space for the new rotated image
*new = (PIXEL*)malloc(rows*cols*sizeof(PIXEL));
PIXEL *o;
PIXEL *n;
for(r = 0; r < rows; r++)
{
for(c = 0; c < cols; c++ )
{
n = (*new) + (c * rows) + (rows + r + 1 );
o = ((original) + (r * cols) + c);
*n = *o;
}//end of for
}//end of for
return 0;
}
我具有BMP类型的结构
typedef struct BMP
{
char bm[2]; //(2 Bytes)
unsigned char header[54];
int tamano; //(4 Bytes)
int reservado; //(4 Bytes)
int offset; //(4 Bytes)
int tamanoMetadatos; //(4 Bytes)
int alto; //(4 Bytes)
int ancho; //(4 Bytes)
short int numPlanos; //(2 Bytes)
short int profColor; //(2 Bytes)
int tipoCompresion; //(4 Bytes)
int tamEstruc; //(4 Bytes)
int pxmh; //(4 Bytes)
int pxmv; //(4 Bytes)
int colorUsa; //(4 Bytes)
int colorImp; //(4 Bytes)
unsigned char **pixel;
long long int size_p;
}BMP;
我要做的是修改方法,以便首先读取bmp文件,旋转90度并保存在新的bmp文件中
如果您能给我建议,那将非常有帮助,谢谢