Using "Resources" to hold .jpg files? Or another method? (A way that unity will not change the format)

So I’m making some apps with lots of photos. Currently I have the app download photos from Amazons S3 when the app is loaded, which isn’t so bad, but can be annoying for the user to wait for it to finish.

Reason being: Unity will make the images HUGE in file size otherwise – a 100kb jpg turns into a 16MB image.

Is there a way to package .jpg files so that I can use them in the app without Unity touching them?

I was thinking maybe a “Resources” method, perhaps where, on first load of the app, the app loads the .jpg and processes them as needed by the device? Or maybe a “package” method? Not sure if either would work, or if there is something else available.

Thanks for any advice!

With the help of the forum post linked below, I’ve used the following code to do exactly what I was looking to do.

There are 84 photos. In my first version, they had to be downloaded when the app first loaded, and the app was 190mb total after download. Now they are held as jpg in the resources folder, and the app is only 90mb! Over 1mb per photo was saved! That’s tremendous, and it makes me wonder how much disk space can be saved if I were to use this technique for most of the graphics in my app!

var tmp = Resources.Load(""+PlayerPrefs.GetInt("Current Photo")) as TextAsset;
var imgTexture = new Texture2D(1400, 768);
imgTexture.LoadImage(tmp.bytes);
Destroy (renderer.material.mainTexture);
renderer.material.mainTexture = imgTexture;

http://forum.unity3d.com/threads/121432-Load-jpeg-without-converting-to-texture