目前我正在开发一个小型打印机预览版,但是我将每mm / dpi点转换为屏幕上的像素时遇到了一些问题。
例如,我有一个Label
,其中包含协调:
顶部= 5个点
左= 20点
打印机的分辨率为每毫米8点/ 203 dpi。
在我的简单wpf应用程序中,我有一个画布,我想在那个地方贴一个标签,在那里打印。所以我需要将值20
和5
相对于我在屏幕上的分辨率进行转换。但像素的结果是错误的。这是我的计算:
// 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
这就是我试图计算基于像素的位置的方式。我做错了什么?
也许我犯了一些非常容易的错误,谢谢!
答案 0 :(得分:1)
要从mm转换为cm,您需要除以10而不是乘以10.