【发布时间】:2022-12-11 16:35:17
【问题描述】:
目前,我正在做 pset4 filter-less,反思我编写的代码并为此苦苦挣扎。它编译得很好,但输出图片看起来和输入图片一模一样。我试图首先将反射图像存储在一个临时数组中并将其传输到图像数组。我找不到任何尝试过类似方法的人。这是我到目前为止所写的。
void reflect(int height, int width, RGBTRIPLE image[height][width])
{
int i; //row
int j; //column for img
int z; //column of tmp img
RGBTRIPLE tmpi[height][width]; //tmp img
for (i = 0; i < height; i++)
{
for (j = 0, z = width; j > z; j++, z--)
{
image[i][j].rgbtRed = tmpi[i][z].rgbtRed;
image[i][j].rgbtBlue = tmpi[i][z].rgbtBlue;
image[i][j].rgbtGreen = tmpi[i][z].rgbtGreen;
}
}
for (i = 0; i < height; i ++)
{
for (j = 0; j < width; j++)
{
tmpi[i][j].rgbtRed = image[i][j].rgbtRed;
tmpi[i][j].rgbtBlue = image[i][j].rgbtBlue;
tmpi[i][j].rgbtGreen = image[i][j].rgbtGreen;
}
}
return;
}
你能帮帮我吗?
【问题讨论】:
-
欢迎来到 SO。您首先将未初始化的
tmpi数组复制到原始数组中。这也会用垃圾填充image数组。然后你不加任何修改地复制回来。这没有任何意义,因为之后根本没有使用tmpi。 -
关于:
for (j = 0, z = width; j > z; j++, z--)j被初始化为小于z的b,所以循环永远不会迭代