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