C と OpenGL の画像をウィンドウに表示する作業を行っています。私はこのような構造体を持っています:
typedef struct imagemRGB ImagemRGB;
struct imageRGB {
int width;
int height;
PixelRGB **pixel;
};
**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);
この関数は、イメージ構造 ( width
、height
および each 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
?