WPF中加载的图片,都是按96 DPI去显示。如果图片本身的DPI不是96的话,图片并不会按照图片本身的分辨率去显示,而是可能会被放大或缩小了。
借助TransformedBitmap能够很好地解决这个问题。
示例代码:
var bitmap = BitmapFrame.Create(new Uri(fileName), BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
var dpiBitmap = new TransformedBitmap(bitmap, new ScaleTransform(bitmap.DpiX / 96.0, bitmap.DpiY / 96.0));