c# - 图像 X 和 Y 分辨率不应该与 DPI 匹配吗?

标签 c# wpf image winforms bitmap

图像的默认分辨率为 96,但 DPI 从 72、150 到 300+ 不等。为了在屏幕和打印机上获得最佳效果,它们不应该相同吗?

我从未在代码中更改过任何图像的分辨率。我生成的图像看起来与它们在屏幕(WPF 和/或 WinForms)上的显示方式成比例,我只是想知道更改它会产生什么影响。坐标似乎保持不变。

我是否混淆了图像分辨率和屏幕图形像素?

最佳答案

不,DPI 是一个引用数字,旨在以预期的物理尺寸显示图像。适当的软件将图像的 DPI 设置为创建图像的设备的每英寸点数分辨率。

the DPI varies from 72, 150 and 300+..

72 很可能是艺术家使用在苹果机器上运行的绘画程序创作的。 96 是 Windows 计算机的通用号码。 150 说他使用了一台不错的显示器,这种显示器如今越来越常见,租用显示器变得更加便宜。 300 仅对于非常便宜的扫描仪或相机来说才常见。实用的扫描仪和相机配备的 CCD 可以做得更好,1200 及以上并不罕见。

images I generate look proportionate to the way they look on the screen

DPI 非常有意地帮助渲染软件使图像看起来大小相同。即使打印机的分辨率比显示器的 DPI 高。打印软件可确保重新缩放图像,使其变大约 6 倍。如果没有这种校正,图像将变成纸上的印章。

I am just wondering what the impact is of changing it

您只需强制渲染软件调整图像大小即可。它们在显示器和纸张上仍然具有相同的物理尺寸。

shouldn't they be the same for best result

理想的情况是创建图像的设备的 DPI 与显示图像的设备相同。不需要插值,因此这是最快的显示方式。源图像中的每个像素都与显示设备上的像素一一匹配,因此非常清晰,没有伪影。这并不是一个非常实用的理想选择,因为您无法始终控制使用哪些设备。当它是扫描仪或相机时,根本不实用。如果它是用绘画程序制作的,则可能很实用,因为您可能会喜欢显示图像的清晰度。然而,随着雇佣监视器变得越来越普遍,这种选择正在迅速消失,处理不可预测的窗口内容大小非常困难。

关于c# - 图像 X 和 Y 分辨率不应该与 DPI 匹配吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40568272/

相关文章:

c# - 没有 I/O 的异步/等待

c# - 如何针对 Silverlight 编译 .NET 程序集?

c# - 在 DataGrid wpf 中创建自定义编辑行

Python PIL/Pillow - 将图像填充到所需大小(例如 A4)

javascript - 如何在 Node.js 中创建图像?

c# - Entity Framework 4(纯 POCO)上的更新操作问题

c# - 如何创建线程安全的通用列表?

WPF:无法使用 FindName 访问 ComboBox 的 TextBox

c++ - 有没有图片库可以裁掉图片的白边?

c# - 学习如何处理高流量 asp.net mvc 站点的资源?