PROBLEM:
BMP datoteka se sastoji iz FILE HEADERA, INFO HEADERA, PALETE i "SLIKE" - niza od B,G,R bajtova.
Prochitam fajl heder, info heder, paletu, dodjem do slike i eto problema! Konkretno, ucitam sliku 10x10 pixela u kojoj je svaki pixel crven (0, 0, 255). Pronadjem u info hederu da mi je slika 10x10, iterativno krenem da chitam pixele:
typedef unsigned char byte;
typedef struct {
byte b; /* PLAVA */
byte g; /* ZELENA */
byte r; /* CRVENA */
}PIXEL;
PIXEL pix;
***
fread(&pix, sizeof(pix), 1, slika);
***
printf("%4d,%4d,%4d ", pix.b, pix.g, pix.r);
Prochitam ja od 1 do 10 pixela kako treba u prvom redu (tachnije u poslednjem jer je u BMP datoteci slika naopachke) i dobijem prikaz:
0, 0, 255 0, 0, 255 0, 0, 255 0, 0, 255 ... 0, 0, 255
Zatim predjem na drugi red i pojave mi se dve nule!?!?!
0, 0, 255 0, 0, 255 0, 0, 255 0, 0, 255 ... 0, 0, 255
0 0
I onda opet 10 crvenih pixela iz sledeceg reda i tako sve... KAO DA IMA DVE KOLONE NULTIH PIXELA VISHKA A DA TO NIGDE NE MOGU DA NADJEM U DOKUMENTACIJI!!! Sve radi kako treba kad preskocim ta dva pixela sa:
fseek(f, 2 ,SEEK_CUR); -( 2 da preskochim ta dva vishka pixela!)
Probao sam i sa vecim i manjim slikama i svim zivim i uvek moram da preskocim 2 pixela za prelazak u novi red.
ZNA LI NEKO ZBOG CHEGA??!?!!!
[img]http://www.vucjak.com/srbblk.gif[/img]