急急急!~关于厘米与象素转换的问题! ( 积分: 60 )

  • 主题发起人 主题发起人 wangleipin
  • 开始时间 开始时间
W

wangleipin

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位大哥能告诉我,我用1024*768得分辨率,绘制bmp位图,如何能知道每厘米代表多少象素呢?
 
哪位大哥能告诉我,我用1024*768得分辨率,绘制bmp位图,如何能知道每厘米代表多少象素呢?
 
象素和厘米没有换算关系
象素定义的计算机图形中最基本的单位,象素的量词是“个、粒”,却不是一个物理长度或者面积单位。于是我们可以见到1厘米x1厘米的图元被称作1个象素,也会见到1纳米x1纳米的图元被称作1个象素,象素大小更多的是体现在最终表现设备上。象素规定的是计算机图形学中最小单位,但象素和精度没有关系。
 
首先,谢谢你,xianguo,我先弄懂了一个基本得概念!但我现在需要实现得是,绘制一幅bmp图象,并显示其图例和比例尺,也就是,图上得一厘米代表多少量得问题!你能帮帮我吗?
 
像素点转换成MM了
uses Printers;
function PixelToMM(APixel:Real) : Real;
var PixelRate : Real;
begin
case GetDeviceCaps(Printer.Handle, LOGPIXELSX) of //打印机的精度
120 : PixelRate:=0.1701;
180 : PixelRate:=0.1458;
300 : PixelRate:=0.0898;
360 : PixelRate:=0.0729;
600 : PixelRate:=0.0449;
720 : PixelRate:=0.0365;
1200: PixelRate:=0.0224;
end;
Result := APixel * PixelRate;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(floattostr(PixelToMM(600)));
end;
 
谢谢你,yanlei,照你得函数得意思,就是说,还得取决于打印机得精度了,可我现在想就只用显示器上显示得图表示一下比例尺,该如何实现呢?
 
谢谢大家了!我只能按照近似的计算方法了!厘米与英寸之间转换后,其精度会变化,导致图象不是很准确,幸好甲方没有那么精确的要求!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
634
import
I
后退
顶部