Hallo,
Ich schreibe gerade an einem kleinen Bildbetrachtungsprogramm. Als Bildformat nutze ich das RAW-Format. Da stehen alle RGB Werte in Hex-Form drinnen. Das Format ist zwar nicht gerade platzsparend, aber sehr einfach, und damit für den Anfang geeignet.
Mein Sourcecode zum Zeichnen des Bildes sieht im Moment so aus:
class Pixel
{
public:
int R;
int G;
int B;
};
Pixel Pixel;
int i=100;
int x = 20;
int y = 20;
FILE *pfile;
pfile = fopen("Test.raw","r");
CClientDC dc(this);
while(i>0)
{
Pixel.R = fgetc(pfile);
if(Pixel.R == EOF)
{
break;
}
Pixel.G = fgetc(pfile);
Pixel.B = fgetc(pfile);
if(x==220)
{
y++;
x=20;
}
dc.SetPixel(x,y,RGB(Pixel.R, Pixel.G, Pixel.B));
x++;
}
fclose(pfile);
Leider hört mein Programm bei bestimmten Stellen einfach zu zeichnen auf ;( ;( ;( . Ich habe schon herrausgefunden, dass es nur aufhört, wenn das Zeichen 1A (dez. 26) eingelesen wird X( .
Hat dieses Zeichen irgendeine besondere Bedeutung und kann ich irgendwie umgehen, dass er dann zu Zeichen aufhört??
mfg und thx im Vorraus
Noob
P.S. Das EOF Zeichen ist es nicht, denn wenn ich das if(...==EOF) weglassen, zeichnet er zwar weiter, aber nur noch unendlich oft weisse Pixel, obwohl die ganz andere Farben hätten.
Ich schreibe gerade an einem kleinen Bildbetrachtungsprogramm. Als Bildformat nutze ich das RAW-Format. Da stehen alle RGB Werte in Hex-Form drinnen. Das Format ist zwar nicht gerade platzsparend, aber sehr einfach, und damit für den Anfang geeignet.
Mein Sourcecode zum Zeichnen des Bildes sieht im Moment so aus:
class Pixel
{
public:
int R;
int G;
int B;
};
Pixel Pixel;
int i=100;
int x = 20;
int y = 20;
FILE *pfile;
pfile = fopen("Test.raw","r");
CClientDC dc(this);
while(i>0)
{
Pixel.R = fgetc(pfile);
if(Pixel.R == EOF)
{
break;
}
Pixel.G = fgetc(pfile);
Pixel.B = fgetc(pfile);
if(x==220)
{
y++;
x=20;
}
dc.SetPixel(x,y,RGB(Pixel.R, Pixel.G, Pixel.B));
x++;
}
fclose(pfile);
Leider hört mein Programm bei bestimmten Stellen einfach zu zeichnen auf ;( ;( ;( . Ich habe schon herrausgefunden, dass es nur aufhört, wenn das Zeichen 1A (dez. 26) eingelesen wird X( .
Hat dieses Zeichen irgendeine besondere Bedeutung und kann ich irgendwie umgehen, dass er dann zu Zeichen aufhört??
mfg und thx im Vorraus
Noob
P.S. Das EOF Zeichen ist es nicht, denn wenn ich das if(...==EOF) weglassen, zeichnet er zwar weiter, aber nur noch unendlich oft weisse Pixel, obwohl die ganz andere Farben hätten.