Sampling theorem says that if a signal is bandlimited, it can be perfectly reconstructed. Resampling is the same as reconstructing the continuous time signal, then sampling again (hence resampling). Since the Nyquist frequency in all intermediate phases is higher than the original Nyquist, no information is lost, so it's possible.Craze Frog wrote:The problem is that no such way of scaling exists apart from nearest neighbour, which is THE most ugly scaling method ever. Feel free to invent it.
In theory you need to use the sinc-function (which is infinite) as the reconstruction filter, but in practice it is enough to use a filter such that any error is less than quantization noise (which is at approximately -48dB for 8-bit signal). Ofcourse such a filter would still be quite long, so it'd take a while to compute, but we honestly aren't talking about rocket science here.
[edit]: Ooops, I was being sloppy. Bitmap is finite, and the process is therefore offline batchjob, so we can rule anything outside the bitmap is zero, then convolve with infinite sinc-function, since it need not be evaluated in practice outside the bitmap, so there isn't necessarily a reason (other than performance) to go with a finite length filter kernel.