我正在做一个 CAD 程序。我想在屏幕上显示实际尺寸的图纸,这意味着如果我可以在屏幕上放置尺子来测量线条,它们应该匹配。但是屏幕有不同的dpi。如何获得正确的 dpi 并计算程序的乘数?
谢谢。
我正在做一个 CAD 程序。我想在屏幕上显示实际尺寸的图纸,这意味着如果我可以在屏幕上放置尺子来测量线条,它们应该匹配。但是屏幕有不同的dpi。如何获得正确的 dpi 并计算程序的乘数?
谢谢。
您将需要用户输入显示器的物理尺寸。详情如下...
鉴于 X 认为控制台的物理尺寸和分辨率是多少,您可以计算 X 认为您的显示器的物理尺寸:
$ xdpy信息 | grep -E '尺寸|分辨率'
X 系统确定的显示器物理尺寸是总点数除以每英寸点数。使用您的标尺,您可以计算每英寸的实际点数并告诉 X 系统这是什么:
$ xrandr --dpi 200
如果您有多个监视器,您还必须通过 --output 指定监视器的名称。
您的 cad 程序可能会显示图像。在这种情况下,您需要知道图像的大小和分辨率。imagemagick 包包含 idetify:
$ 识别-详细文件名 | grep -E '几何|分辨率|打印尺寸|单位'
像 feh 和 geeqie 这样的图像查看器在显示图像时喜欢使用 1:1 图像像素来显示像素。典型的图像编辑器将以 300 dpi 创建图像,而通过电子邮件发送的图像可能会报告 72 dpi。
修正图像 dpi。无需更改图像本身。(图像中的实际值以每厘米像素记录。)
$ convert -units PixelsPerInch INPUT-IMAGE -density DESIRED-DPI OUTPUT-IMAGE
要知道屏幕的像素密度,您需要两个信息,物理尺寸和分辨率。虽然分辨率可以通过编程方式确定,但物理尺寸不能。(AFAIK)
这个想法有一些实现,软件会询问用户他们的屏幕尺寸是多少,并使用它来确定像素密度。
示例:
http ://www.sizeis.com/
http://pective.com/pic/frog
或者,一些界面要求用户使用固定大小的项目进行校准——比如通过调整滑块直到数字剪影与信用卡匹配。
示例: http:
//mwctoys.com/REVIEW_060412a.htm(见第二张图片)
http://beta.lifesizer.com/images/featured
在任何情况下,您都必须确定显示器的物理尺寸来计算像素密度。