imgdata.rawdata has ushort (*color4_image) and ushort (*color3_image). For images where these are actually used (Foveon etc.) I want to access the data but am a bit unsure how. I'm not a C or C++ expert, so maybe this is a silly question. Does (*color3_image) mean that color3_image is an array of 3 pointers where each points to a separate array for a single color? So the arrays are not together one contiguous chunk of memory but separate? The reason why I'm a bit confused is because of code like &c3image[(row+S.top_margin)*S.raw_pitch] where it seems that it's actually a 2D array (of the image size) of pointers each pointing to a separate array of size 3. But that doesn't sound right, so I guess I don't understand it yet.