2

CでPPM画像を回転させるのに助けが必要です。回転機能は、以前に読み込んだPPM画像の画像を右に90度回転させることになっています。コードは以下に掲載されます。rotate()関数のヘルプが必要です。

関数のシグネチャは次のとおりです。

void rotate(pixel_t *image, int x, int y)

Xは画像の幅、Yは高さです。

このプログラムで他のPPM操作をどのように実行したかを見てみましょう。

void grayscale(pixel_t *image, int x, int y)
{
    int i, average = 0;
    for (i = 0; i < x*y; i++)
    {
        average = (image[i].r + image[i].g + image[i].b) / 3;
        printf("%c%c%c", average, average, average);
    }
}

void flipImage(pixel_t *image, int x, int y)
{
    int r, c, i;
    for (c = y-1; c >= 0; c--)
    {
        for (r = 0; r < x; r++)
        {
            i = (c * x) + r;
            printf("%c%c%c", image[i].r, image[i].g, image[i].b);
        }
    }
}

これは私がこれまでに持っているものです:

void rotate(pixel_t *image, int x, int y)
{
    int r, c;
    for (r = 0; r < x; r++)
    {
         for (c = 0; c < y; r++)
         {
             printf("%c%c%c", image[c].r, image[c].g, image[c].b);
         }
    }
}
4

0 に答える 0