首页  编辑  

像素值如何转换为毫米值

Tags: /超级猛料/Format.格式,单位/Unit.单位/   Date Created:

水平方向:

mm:= Pixel / GetDeviceCaps(Canvas.Handle, LOGPIXELSX) * 25.4;

垂直方向:

mm:= Pixel / GetDeviceCaps(Canvas.Handle, LOGPIXELSY) * 25.4;

厘米数 = 像素数 / dpi * 2.54,

像素转化厘米对于显示器没意义,只有对打印机这类的输出设备才有意义。

600 dpi的打印机和1200dpi的打印机都打印一个1000像素的直线他们长度是不同的。

如果我想要把屏幕上点与点的距离转为厘米有什么好的方法呢!

回复人: ttxm(耳朵) ( ) 信誉:100  2002-12-27 18:03:00  得分:0

 没有特别好的办法,思路同pazee(耙子)说的一样?

代码如下(是毫米):

function        getmmScreen:TPoint;

var

       p1:TPoint;

begin

 p1.X:=GetDeviceCaps(frmSize.Canvas.Handle,HORZSIZE);

 p1.Y:=GetDeviceCaps(frmSize.Canvas.Handle,VERTSIZE);

 Result:=p1;

end;funCtion  getPixelScreen:TPoint;

var

       p1:TPoint;

begin

       p1.X:=screen.Width;

 p1.Y:=screen.Height;

 result:=p1;

end;

procedure TfrmSize.mmToPix;

begin

mmTopixX:=getPixelScreen.X / getMMScreen.X  ;

mmTopixY:=getPixelScreen.Y / getMMScreen.Y ;

end;