I am writing this on a Retina MacBook Pro. Text and anything rendered from vectors looks absolutely, I’ll-have-a-hard-time-going-back-to-non-retina, amazing. But poorly scaled bitmap graphics look terrible. The contrast between the ultra crisp text and the pixelated, fuzzy scaled graphics makes the problem even more glaring and annoying.
For Polyvore’s Mobile HTML site, we had to deal with this problem. We switch to serving 2x dpi images when the client device uses a high dpi display. We could easily do this because our backend image rendering pipeline is able to render generate images in different resolutions.
But what about all our other image assets? And what about all the other services out there that can’t serve high dpi versions of their images?
A useful service would be some kind of Image Scaling proxy that sits in from of your image servers and dynamically decides what kind of image resolution it should serve.
If you have high resolution image sources, serving lower resolution images is not a problem. There are lots of algorithms that can down-scale images and produce great looking output.
The problem is when you have to magnify images from standard resolution sources. For pixel art type image, there are algorithms like hqnx.
For photos and images of natural things, there are good magnification algorithms like fractal based scaling.
But there is another class of hard-to-algorithmically-magnify images. Things like icons with gradients, a mixture of pixel art and natural images. For these, it would be interesting to offer an automated best-effort option but also create a marketplace where graphic designer can redo your image assets in high resolution. The proxy server would use the best option available to it.