Mám program který načítá data ze souboru jpg. Čtecí smyčka dělá toto:
while (cinfo.output_scanline < cinfo.output_height) {
(void) jpeg_read_scanlines(&cinfo, buffer, 1);
// tady potřebuju zpřístupnit buffer[0] pro čtení a pak pro zápis
memcpy(image_buffer+counter, buffer[0], raw_size);
// případně použít image_buffer zde, ten je unsigned char
counter += row_stride_len;
}
Data v buffer[0] jsou v RGB, tedy vždy jeden komponent*3 * šířka obrazu.
Zajímá mě jak získat hodnotu která je uložená v konkrétním pixelu v daném komponentu (tedy v konkrétním kanálu.
Jde mi o to, že ten zásobník chci překonvertovat do HSV. Na to mám funkci
void RGBtoHSV( float R, float G, float B, float *H, float *S, float *V )
takže potřebuju abych do funkce dostal číslo typu float, ale do zásobníku musím zapsat zase v tom formátu v jakém to bylo, tj. unsigned char (vlastně si tím nejsme jistý, ale image_buffer je určitě unsigned char).