#277 – 显示图片的时候注意图片自己的Dpi信息(Images May Have Embedded DpiX and DpiY Information)

2016-09-21 21:52:59来源:CSDN作者:Libby1984人点击

当你使用Image 控件显示图片的时候,即使将Stretch=None,有的时候你会发现图片显示的并不是按照你想要的像素显示。造成这种现象的原因可能是因为图片自己的分辨率(DPI)和你当前的系统的DPI不匹配。

一个图像文件(例如.jpg或者.png文件),包含有图像的宽和高的信息,同时也可能包含有图像自己的DpiX和DpiY(分辨率)信息。并不是图像文件都有这个分辨率信息。

下面介绍的是WPF如何使用这个图像的分辨率信息计算图像在程序中大小(设备无关像素大小):

 -Width (在WPF中) = (96 * 图像实际像素宽度) / 图像DpiX

 -Height (在WPF中) = (96 * 图像实际像素高度) / 图像DpiY

如果在图像文件中没有分辨率信息,那么WPF将使用默认的96 Dpi。

那么在WPF程序中的显示图片,实际占用的物理像素为:

 -Width (物理像素) = Width (WPF 像素单位) * (系统DPI / 96)

 -Height (物理像素) = Height (WPF 像素单位) * (系统DPI / 96)

原文地址:https://wpf.2000things.com/2011/04/15/277-images-may-have-embedded-dpix-and-dpiy-information/

*************************************************************译者注***************************************************************

WPF显示图像,在不拉伸的情况下。如果图像自己的Dpi不是96,那么WPF会根据这个DPI将图像的大小转换成以设备无关像素为单位的大小(设备无关像素和物理像素的转换可以看我之前的博文)。这样可能造成,同样显示是200*200大小的图像文件,如果DPI不同,那么在WPF中显示的大小也不同。



最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台