我正在做一个CAD程序。我想在屏幕上以实际尺寸显示图纸,这意味着如果我可以在屏幕上放置标尺以测量线条,并且线条应该匹配。但是,屏幕具有不同的dpi。如何获得正确的dpi并计算程序的乘法因子?
谢谢。
您将需要用户输入显示器的物理尺寸。下面的详细信息...
您需要控制台的物理尺寸和分辨率。
$ xdpyinfo | grep -E'尺寸|分辨率'
xdpyinfo将显示计算机对监视器大小的看法。我希望我能说它正确地描述了我的显示器,但是已经很接近了。显然,xdpyinfo根据dpi和可用像素计算物理尺寸。 X系统通常假定96 dpi。
您的cad程序可能会显示图像。在这种情况下,您需要知道图像的大小和分辨率。
$ identify -verbose FILE-NAME | grep -E'几何|分辨率|打印尺寸|单位'
从imagemagick包中识别,从图像文件中检索信息。
[像feh和geeqie这样的图像查看者喜欢在显示图像时使用1:1图像像素来显示像素。典型的图像编辑器将以300 dpi创建图像,而通过电子邮件发送的图像可能报告为72 dpi。
不幸的是,图像和显示器的dpi值通常都不正确。
校正图像dpi。无需更改图像本身。
$转换-units PixelsPerInch输入图像-所需的密度-DPI输出图像
知道存储在图像中的实际值存储为PixelsPerCentimeter可能会很好。
要了解屏幕的像素密度,您需要两项信息,物理尺寸和分辨率。虽然可以通过编程确定分辨率,但物理尺寸无法确定。 (afaik)
该想法有一些实现方式,其中软件会询问用户他们的屏幕尺寸是多少,并使用该尺寸来确定像素密度。例子:http://www.sizeis.com/http://pective.com/pic/frog
或者,某些界面要求用户使用固定大小的项目进行校准-例如,通过调节滑块直到数字轮廓与信用卡匹配。例子:http://mwctoys.com/REVIEW_060412a.htm(请参见第二张图像)http://beta.lifesizer.com/images/featured
在任何情况下,您都必须确定显示器的物理尺寸以计算像素密度。