Solutions to store GUI elements in an embedded systems
If you have a number of graphics and they are taking up lots of space, then you'll need space to put them somewhere and more space to work with them.  

If you are simply compiling them as c or h files, then they are likely falling into your internal Flash space.  So the question is if they are taking up too much space and need to be kept elsewhere.  Note that even if you are setting the compiler to keep them in RAM, then they will still have an image in Flash that is loaded to RAM at startup.

So then you have off-board options.  This could be an EEPROM chip, which are relatively cheap and easy to work with.  An SD card brings more space but also more overhead - you'll need to get a FAT system working.  I am assuming you are not using an external memory bus with Flash on your processor, but if you were, then that would be a good place.  

If you take this route, you have three obstacles to overcome:


The driver and API.  Depending on what you choose, you may have to write your own.  From wherever the driver came from, you'll have to get it working and validated in your setup.
Initialization of the memory.  You'll need to get your images into the memory device somehow.  If it is an I2C EEPROM or an SD card, you'll have to figure out how to get your images in there in a way that your processor will recognize.
Local copies in RAM.  When you pull an image out of memory, you'll need enough RAM space to hold it while you work with it.


I don't know enough about your application and specs to make a recommendation.  If the graphics are likely to be modified a lot for aesthetics before they are done, then SD card may be most convenient as you can update it easily with your PC.  But this will have a significant scope impact on your software project.  If you are under a cost target and the images are simple and not going to change, then maybe I2C EEPROM is the best way, but if the images are large, there may be some time lag.  If you can suffer the internal Flash space, then that may be easiest in the long term.  If you have control over processor selection and PCB design, then you could get an external memory bus with tons of Flash.

There is also the option of image compression, which can be done in embedded systems, and while I've seen it done I don't know enough of the pros and cons right now to comment intelligently.