@Ruxandra : although jpeg 2000 also has a lossless implementation, converting bmp to jpg usually results in considerable degradation (information loss and additional artifacts); the higher the compression ratio, the higher the losses and artifacts. You can easily see this when converting the same image say ten times to jpeg; after a couple of times, the algorithm tries hard to preserve the artifacts it has introduced in an earlier round :-) !
Anyway, converting to jpg will not help if you want to do more image processing: the image has to be present in memory as a contiguous block of pixels; the pixels need easily accessible neighbor pixels.
It is not possible to decimate an image without losing any information. Whenever you down-sample an image, you lose information mostly linked to the high frequency components of the image.
As already pointed out down sampling always leads to loss of information.
The other (different) question : "How to reduce the size of an image without losing information?"
1 You could use a lossless image compression technique. Only helpful to reduce disc space or to reduce bandwidth when transmitting.
2 You could inspect the range of pixel values. If your image has integer pixels, but the range of values is within what can be stored in short or byte, you can reduce the size by a factor of two or four respectively.
3 If your image is RGB and the three channels are equal, you could convert it to monochrome, thus reducing the image size with a factor three.
@Ruxandra : although jpeg 2000 also has a lossless implementation, converting bmp to jpg usually results in considerable degradation (information loss and additional artifacts); the higher the compression ratio, the higher the losses and artifacts. You can easily see this when converting the same image say ten times to jpeg; after a couple of times, the algorithm tries hard to preserve the artifacts it has introduced in an earlier round :-) !
Anyway, converting to jpg will not help if you want to do more image processing: the image has to be present in memory as a contiguous block of pixels; the pixels need easily accessible neighbor pixels.
@Lambert, Thank you for correcting my last statement (I am used to satellite/aerial Remote Sensing images, where much redundancy exists due to both inherent correlation among spectral bands and spatial auto-correlation). I agree that the conversion of a bmp image to jpeg2000/jpeg format leads to loss of information. Also, same thing applies for iterative jpeg conversions.
Two options - Pyramids and Wavelets may be of interest to you - You can store the original information and use pyramids for example to process at different levels of resolution decimation. This is well covered in Richard Szeliski's book "Computer Vision" on page 127. This technique is often used to process images at lower resolution without throwing away information.
@Sam : There is no such thing as a free lunch. If you down-sample, you throw away information. If you really think otherwise, you should patent your new lossless image-compression technique!
BTW Was it you who down-voted my initial contribution in this thread?