为什么通过计算得到图象在屏幕上显示的大小和实际不一致?(100分)

O

ow

Unregistered / Unconfirmed
GUEST, unregistred user!
我想计算图象Bitmap在屏幕上显示出来的大小,用如下语句:
FScreenLogPerX := GetDeviceCaps(Canvas.Handle, LOGPIXELSX);
FScreenLogPerY := GetDeviceCaps(Canvas.Handle, LOGPIXELSY);
MyWidth := (Bitmap.Width / FScreenLogPerX) * 25.4;
MyHeight := (Bitmap.Height / FScreenLogPerY) * 25.4;

MyWidth和MyHeight得到的应该是图象的实际显示大小(以毫米为单位),但是实际运行时,
发现MyWidth得到的是149mm,而我从显示器上用尺量得的结果却有225mm,请问这是怎么回
事?






 
老大,那和显示器尺寸可无关的!如果使用15吋、17吋呢?
你程序怎么能知道?
 
PPI 多是与打印、扫描相关的参数,此参数与 xxx DPI 的扫描仪,打印机有密切关系,
打印到纸上是精确的。但显示在显示器不精确...
 
很多比例转换!!!
 
如果你的现实设置为800*600,那么系统不管你显示器多大都是按 96 点/英寸 算的
 
多人接受答案了。
 
顶部