Each of these values contain data for one pixel, 5 bits for R, 6 bits for G, 5 bits for B
To extract those values, you have to do something like this:
uint8_t r = ((color >> 11) & 0x1F);
uint8_t g = ((color >> 5) & 0x3F);
uint8_t b = (color & 0x1F);
So, that was for extracting RGB565 as R5, G6, B5. But you also need to convert to R8, G8, B8
Here is a solution:
r = ((((color >> 11) & 0x1F) * 527) + 23) >> 6;
g = ((((color >> 5) & 0x3F) * 259) + 33) >> 6;
b = (((color & 0x1F) * 527) + 23) >> 6;
Then, to RGB888 if you want:
uint32_t RGB888 = r << 16 | g << 8 | b;
But why not just convert your image directly to RGB888 instead? Is it only because you didn't find the right tool to do this? I have a custom Paint.Net plugin to export to different formats, tell me if you want it (I'll have to do some work to it before I can give it to you)