在c中将amp旋转90度?

时间:2018-09-23 23:33:05

标签: c bitmap bitmapimage

我不太擅长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文件中

如果您能给我建议,那将非常有帮助,谢谢

0 个答案:

没有答案