gpt4 book ai didi

c# - 在 C# 中将像素转换为英寸,反之亦然

转载 作者:太空狗 更新时间:2023-10-29 18:19:41 25 4
gpt4 key购买 nike

我希望将像素转换为英寸,反之亦然。我知道我需要 DPI,但我不确定如何获取此信息(例如,我没有 Graphics 对象,所以这不是一个选项)。

有办法吗?

最佳答案

在视频设备上,对这个问题的任何回答通常都不是很准确。最简单的例子就是投影仪。例如,输出分辨率为 1024x768,但 DPI 因屏幕与投影仪孔径的距离而异。例如,WPF 在视频设备上始终假定为 96 DPI。

假设您仍然需要答案,无论准确性如何,并且您没有 Graphics 对象,您可以使用一些 P/Invoke 从屏幕创建一个并从中获取答案。

Single xDpi, yDpi;

IntPtr dc = GetDC(IntPtr.Zero);

using(Graphics g = Graphics.FromHdc(dc))
{
xDpi = g.DpiX;
yDpi = g.DpiY;
}

if (ReleaseDC(IntPtr.Zero) != 0)
{
// GetLastError and handle...
}


[DllImport("user32.dll")]
private static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("user32.dll")]
private static extern Int32 ReleaseDC(IntPtr hwnd);

关于c# - 在 C# 中将像素转换为英寸,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/474810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com