Greetings,
What I was trying to articulate before, and maybe not too well, is that
because the display of most PPC devices is 16 or 15 bit, the pixel values of
a 24 bit image have to be packed (right shift each color component by 3) in
order to be displayed on the device. This is how each pixel is converted
from 888 to 555 or 565 (with 565, the green component is only shifted by 2).
The only device I know of that supports 565 is one of the older Casio
MIPS-based Pocket PCs.
I believe (Alex did some research on bitmap memory use a while back which
confirms this), that what happens in GDI is that each pixel is loaded into
memory "as is" and then a copy of the image is also made which matches the
format of the device. It is this latter image that is used for displaying
(there is your 16 bit 555 format), while the former memory image is used to
uphold the integrity of the data for programmatic operations, such as
transparency comparisons, etc.
If you only maintained the converted image then you would have poblems where
colors that are close to each other in value would be rounded to the same
value and the integrity of such operations would not be maintained (see my
"Dancing Rectangles" article for an example of this).
On the other hand, if you only maintained the original then each pixel would
have to be converted on the fly when it is drawn.
To make a much too long story short; to see a more realistic view on the PC
of what you will see on the device, save the bitmap as 16 bit.
Regards,
Geoff Schwab