One application I created had to show a simple, fixed image on screen. As it’s size is fixed and no resizing is needed, one might assume following code would be sufficient:
var left = (ClientRectangle.Width - bitmap.Width) / 2; var top = (ClientRectangle.Height - bitmap.Height) / 2; e.Graphics.DrawImageUnscaled(bitmap, left, top); e.Graphics.DrawRectangle(SystemPens.WindowText, top, left, bitmap.Width, bitmap.Height);
You see, DrawImageUnscaled will not necessarily ignore all scaling. It will attempt to preserve physical size – not size in pixels. So, if you have a screen punching above ancient 96 DPI, you will see scaling happen.
So, if you want to draw unscaled image, just use the normal DrawImage function and specify the size yourself.