将dpi/点转换为像素会产生错误的结果

本文关键字:错误 结果 像素 dpi 转换 | 更新日期: 2023-09-27 18:25:08

目前我正在开发一个小型打印机预览,但我在将每mm/dpi的点数转换为屏幕上的像素时遇到了一些问题。

例如,我有一个Label,它具有以下坐标:顶部=5个点左=20点

打印机的分辨率为每毫米8点/203 dpi。

在我的简单wpf应用程序中,我有一个画布,我想在那里放置一个标签,它将在那里打印。因此,我需要将值205相对于屏幕上的分辨率进行转换。但是像素的结果是错误的。这是我的计算:

// start values
double top = 5;
double left = 20;
// let's try to calculate the mm. We use 8, because we have 8mm per dot
double mmtop = top / 8.0;
double mmleft = left / 8.0;
// let's turn mm to cm
double cmtop = mmtop * 10.0;
double cmleft = mmleft * 10.0;
// Lets calulate the pixels on the base of a 72dpi monitor
double dpitop = cmtop / 25.4 * 72.0;   // = 318.89
double dpileft = cmleft / 25.4 * 72.0; // = 17.71

这就是我试图计算基于像素的位置的方法。我做错了什么?

也许我犯了一个很容易的错误,谢谢!

将dpi/点转换为像素会产生错误的结果

要将mm转换为cm,需要除以10,而不是乘以10。