像素值如何转换为毫米值

字体大小: 中小 标准 ->行高大小: 标准
水平方向:

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;

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/67947.html