[ 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.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.