我正在使用 C 和 OpenGL 中的图像在窗口中显示它们。我有一个这样的结构:
typedef struct imagemRGB ImagemRGB;
struct imageRGB {
int width;
int height;
PixelRGB **pixel;
};
where**pixel
是表示图像中每个像素及其颜色的矩阵。PixelRGB 是这样的结构:
typedef unsigned char Byte;
typedef Byte Boolean;
/*-------------------------------------------------------------*/
/* pixel True Color */
/* http://en.wikipedia.org/wiki/True_Color#True_color_.2824-bit.29 */
typedef struct pixelRGB PixelRGB;
struct pixelRGB {
Byte red; /* valor entre 0 e 255 */
Byte green; /* valor entre 0 e 255 */
Byte blue; /* valor entre 0 e 255*/
Boolean visited; /* TRUE ou FALSE */
};
我有一个函数签名,它是:
void copyImageRGB (ImageRGB *target, ImageRGB *origin);
该函数应该将图像结构( 和 each )复制width
到height
,pixel
因此target
我可以从一开始就存储 OriginalImage ;
我正在用这段代码实现它:
copyImageRGB (ImageRGB *target, ImageRGB *origin)
{
int i, j;
target->width = origin->width;
target->height = origin->height;
for(i = 0; i < origin->height; i++)
for(j = 0; j < origin->width; j++)
{
target->pixel[i][j].red = origin->pixel[i][j].red;
target->pixel[i][j].blue = origin->pixel[i][j].blue;
target->pixel[i][j].green = origin->pixel[i][j].green;
}
}
但我不确定它是否会按预期工作,main
因为它的参数是局部变量。我对吗?我该如何实现这个功能,以便我可以做到:copyImageRGB(target, originalImage);
在我的main
?