C - bmp图像,旋转,滑动和放大

时间:2017-04-01 12:34:35

标签: c bmp flip

我目前正在做一个C程序,我需要旋转,翻转和放大bmp图像。我的三种方法都可以自己正常工作,但是当我尝试执行两种或更多时,它们将覆盖之前的操作。例如,如果我想旋转然后翻转图像,则只会在结果上显示翻转。

这是我翻转的一个例子:

int flip (PIXEL *original, PIXEL **new, int rows, int cols)
{
    int row, col;

     if ((rows <= 0) || (cols <= 0)) return -1;

     *new = (PIXEL*)malloc(rows*cols*sizeof(PIXEL));

     for (row=0; row < rows; row++)
     for (col=0; col < cols; col++) {
     PIXEL* o = original + row*cols + col;
     PIXEL* n = (*new) + row*cols + (cols-1-col);
     *n = *o;
     }

     return 0;   }

然后在这样的主要作品中:

 readFile(inputFile, &rw, &cl, &b);
if(scale != 0)
{
    enlarge(b, rw, cl, scale, &nb, &rw, &cl);
}
if(degree != 0)
{
    rotate(b, rw, cl, degree, &nb, &rw, &cl);
}
if(fflag == 1)
{
    flip(b, &nb, rw, cl);
}

writeFile(outputFile,rw,cl,nb);

0 个答案:

没有答案