I can reproduce your observations, and it seems that GDI+ is
inconsistent in the way it renders bitmaps depending on the source of
the bitmap and/or on any modifications made to the bitmap. For example,
at first I thought that the artifacts had something to do with the
resolution of the bitmap (i.e., the DPI info that's stored in the BMP
file), so I added this code before the call to DrawImage()...
After adding this code, both the image loaded using GDI+ and the image
loaded using the TBitmap class show the aliasing artifacts you
described. This is weird because the resolution doesn't change after
the above call, yet somehow adding the above call causes GDI+ to skip
its antialiasing code. In any event, the solution is to explicitly set
the antialiasing mode...
You'd do this before calling DrawImage(). (Note that you could also
C++Builder Developer's Journal
BCB Commonly Asked Questions
1) Read the image using GDI+ Bitmap function; 2) Read