我需要帮助在 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);
}
}
}