You can get an Fl_RGB_Image object from a .png file with:
and similarly with .jpeg:
and .bmp:
In all these cases, the resulting Fl_RGB_Image object, supposing you call it img, will tell you
if its RGB (img->d() == 3) or RGBA (img->d() == 4)and its width (img->w()) and height (img->h()).
In some cases, the row length is bigger than img->w()*img->d(). In that case img->ld() is != 0
and gives that length. Finally, you get the address of the first byte of the RGB or RGBA data
by img->array of type const unsigned char *. That should put you in the position to build a texture.