I recently had to develop an application that would allow users to display conference room maps on their mobile devices. The data wasn't in a database, the client only had an excel spreadsheet with data and some loose images. Here's how I returned the image data to be displayed in the mobile application:
The controller was pretty much a no-brainer simply returning the call to the model. As a webApi controller, there also wasn't any view. With that out of the way, all that was left was to create the model.
The GetMaps method simply enumerates the files in a given location. What's great about the Bitmap class is that it's pretty savvy about handling a mix of different file types. In this example, I had png and jpg images. These are opened as a stream and passed to the Bitmap.FromStream call. Once the image is in filetype agnostic format, I can serialize save it as a png (making all of the images work consistently on the client side). The resulting stream bytes are passed to the ToBase64String function and the result is returned.
I'm able to use this base64 string directly from my data model in Sencha Touch by creating an image that looks like this: