日期:2014-05-18  浏览次数:21008 次

C#像素和毫米的问题
想做一个程序,用户可以输入长和宽就可以控制Panel的长度和宽度,但用户不认识像素,只知道毫米.

我是新手,不知道在程序里怎么把毫米转换成像素,请大家给指点下,最好有个程序的小例子,谢谢大家

------解决方案--------------------
四舍五入,

double x=1.21;
int nX=(int)(x+0.5);

这样就可以把小数x四舍五入为整数nX,

探讨

引用:
取得Panel的Graphics,然后把毫米换算成英寸,一英寸25.4毫米,用Graphics.DpiX把英寸 换算成为像素点数,

我试了下,但是有小数怎么给Panel的width和height赋值?

------解决方案--------------------
像素与毫米的转换
转换还需要知道另一个参数:DPI(每英寸多少点)
象素数 / DPI = 英寸数
英寸数 * 25.4 = 毫米数

一英寸等于25.4mm
那么毫米换算成像素的公式为 
水平方向的换算: Xpx * dpi /25.4
垂直方向的换算: Ypx * dpi /25.4
像素换算为毫米 Xmm * 25.4 / dpi
像素换算为毫米 Ymm * 25.4 / dpi。