【发布时间】:2013-12-28 05:14:00
【问题描述】:
我试图在 Y 轴上翻转我的图像,它确实翻转了,但它在中间和右侧留下了奇怪的空间,它不会完美地翻转整个图像,我将图像限制为 450 450和一个P3...大家有什么想法,因为我的算法是正确的
for(j=0; j < imgur.width/2; j++)
{
for(i=0; i < imgur.height; i++)
{
temp.red = imgur.image[i][j].red;
imgur.image[i][j].red = imgur.image[i][imgur.height-j-1].red;
imgur.image[i][imgur.height-j-1].red = temp.red;
temp.green = imgur.image[i][j].green;
imgur.image[i][j].green = imgur.image[i][imgur.height-j-1].green;
imgur.image[i][imgur.height-j-1].green = temp.green;
temp.blue = imgur.image[i][j].blue;
imgur.image[i][j].blue = imgur.image[i][imgur.height-j-1].blue;
imgur.image[i][imgur.height-j-1].blue = temp.blue;
}
}
这是我的算法...在此之前我打印出 P3、注释、宽度和高度以及 maxColor。我正在使用两个结构来获取数据并从终端读取文件...... 这是我打印数据的方式。谁有想法?
for(i=imgur.height-1; i >= 0; i--)
{
for(j=0; j < imgur.width; j++)
{
printf("%i\n", imgur.image[i][j].red);
printf("%i\n", imgur.image[i][j].green);
printf("%i\n", imgur.image[i][j].blue);
}
}
【问题讨论】:
-
打印时翻页读取图片正常吗?你从最后一行读到第一行。
-
@Bentoy13 打印和扫描(我没有包括在内),我正在从第 0 列和第 0 行的最高点进行扫描和打印,并在打印/扫描数据时向下递增。我的目标是通过将右侧的像素移动到左侧来最终翻转图像。
-
嗯,对我来说,图像的最高点位于
image[0][0]。在这里,您可以在image[imgur.height-1][0]开始打印。真的是你想做的吗? -
@Bentoy13 因为我是从最高点移动,-1 这就是为什么我从高度 -1 开始,所以对于之前的每个像素,它都会翻转如下