2

我正在做一个 CAD 程序。我想在屏幕上显示实际尺寸的图纸,这意味着如果我可以在屏幕上放置尺子来测量线条,它们应该匹配。但是屏幕有不同的dpi。如何获得正确的 dpi 并计算程序的乘数?

谢谢。

4

2 回答 2

1

您将需要用户输入显示器的物理尺寸。详情如下...

  • 鉴于 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

于 2020-02-12T15:41:50.440 回答
0

要知道屏幕的像素密度,您需要两个信息,物理尺寸和分辨率。虽然分辨率可以通过编程方式确定,但物理尺寸不能。(AFAIK)

这个想法有一些实现,软件会询问用户他们的屏幕尺寸是多少,并使用它来确定像素密度。
示例:
http ://www.sizeis.com/
http://pective.com/pic/frog

或者,一些界面要求用户使用固定大小的项目进行校准——比如通过调整滑块直到数字剪影与信用卡匹配。
示例: http:
//mwctoys.com/REVIEW_060412a.htm(见第二张图片) http://beta.lifesizer.com/images/featured

在任何情况下,您都必须确定显示器的物理尺寸来计算像素密度。

于 2013-06-17T23:38:00.267 回答