Sprites compression question (their size in build)

Hi. Currently I am working on 2D game for iOS and Android and I have faced one problem with sprites.

Let’s assume that we have sprite S (2048x2048). It needs to be imported with Max Size = 2048 and Format = Truecolor (because compressed totally breaking image quality - I don’t won’t to be killed by designer). Final size of uncompressed file is 16MB. After building testing scene with only one sprite S and unpacking final ipa file I found that sprite S is passing to device uncompressed. Now let’s assume that I have lots of different sprites with properties similar to sprite S. And when I install this game on device, actual size of application is really huge (s0 + 16 * N, where s0 is size in MB of everything except my sprites and N is count of my sprites). I found it really disappointing, because when I was working with cocos2d I could load into device sprite S as compressed png file with size ~2-4 MB. And on runtime, when I need to load it, it’s been uncompressed. In this case actual size of application on device is s1 + 4 * N in worst case.

The question. Is it possible to ask Unity3d to send compressed images to device? Or maybe there is asset, library that can handle my problem?

You can store textures as .png files in an external folder, and load those via the WWW class at runtime. The downside is that you lose the usual Unity workflow.

You can’t “decompress” an image. The process sacrifices quality for reduced file size, chucking out bytes in the image, these cannot be reclaimed later unless these bytes and their pattern are stored somewhere else. Cocos2d does not “decompress” and get you back your image quality as this is not possible, Unity will do the a similar thing as regards to memory allocation as Cocos2d.

Loss-less compression is as it says, loss-less in quality whilst reducing image size, which brings about the question as to why you’d want to decompress it in the first place.

To put it simply, find a better way of getting your sprites to look good compressed or take the install size hit. Either way its gonna be 16mb in memory as a full RGBA32 bit image… regardless of what u do.