[ Mrav @ 14.01.2003. 20:03 ] @
koristim libjpeg pod linux-om u pokušaju da importujem slike koje bih kasnije koristio kao teksture u OpeGL-u. Problem je sledeći, ne uspevam da shvatim u kom obliku jpeg_read_scanlines() vraća podatke. Prema uputstvima koja imam to bi trebalo da je dvodimenzionalni niz čija je prva dimenzija broj reda (koji bi trebalo da se popunjava odozgo nadole) a druga dimezija sam red sa elemetima tipa JSAMPLE (obično char ma da može da se definiše i nešto drugo), ali dobijam čudne rezultate. Znači da li je neko imao iskustva sa ovime i da li može da mi razjasni način na koji jpeg_read_scanlines() vraća podatke.

Ako može i link ka nekom upotrebljivom primeru. Napominjem da mi nisu potrebne posebne mogućnosti biblioteke već samo dekompresovana slika u obliku r,g,b vrednosti.
[ tosa @ 16.01.2003. 18:07 ] @
Evo je neka pseudo petlja za citanje JPEG-a ..


JSAMPARRAY buffer = (*cinfo.mem->alloc_sarray)
((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1);

DWORD y=0;
DWORD R,G,B;

while (cinfo.output_scanline < cinfo.output_height)
{
(void) jpeg_read_scanlines(&cinfo, buffer, 1);
for (DWORD x=0, off=0; x<cinfo.output_width; x++, off+=3)
{
R = buffer[0][off];
G = buffer[0][off+1];
B = buffer[0][off+2];

p->PutPixelRGB( x, y, RGB(R,G,B) );
}
y++;
}


ako ti je potrebna cela rutina, javi se na mail pa cu ti poslati ...

[ Mrav @ 17.01.2003. 14:37 ] @
Ok, ok, snašao sam se i bez toga stvar je bila u tome sto kada u jpeg_read_scanlines() predam niz koji sam sam alocirao (ne preko f-ja članica jpeg objekta) iz nekog razlga jpeg_read_scanlines() upisuje pročitan broj scanline-ova (kod mene dva po prolazu), pomera se dalje u nizu ali prepisujuci prethodni sadržaj nulama? Ono što sam u radio je da mu predam adresu mojniz[cinfo.output_scanline] , što za divno čudo radi?

No ipak hvala na pomoći postigao sam upravo ono što sam želeo.