Как преобразовать пиксели в миллиметры
procedure PixelsToMM( Canvas: TCanvas; var x, y: single) ; var h: HDC; hResolution,vResolution, hSize,vSize: integer; begin H:= Canvas.Handle; {ширина в пикселах} hResolution := GetDeviceCaps(H,HORZRES) ; {высота в пикселах} vResolution := GetDeviceCaps(H,VERTRES) ; {ширина в миллиметрах} hSize := GetDeviceCaps(H,HORZSIZE) ; {высота в миллиметрах} vSize := GetDeviceCaps(H,VERTSIZE) ; x := hResolution/hSize; y := vResolution/vSize; end;
Теперь, давайте преобразуем, например, экран монитора (1280 х 1024) пикселей в миллиметры. Для этого нужно сделать следующее:
- Сначала вызываем функцию PixelsPerMM, чтобы получить значение пиксель на миллиметр для устройства (экран, принтер ...)
- Затем преобразуем определенное количество пикселей в миллиметры, в зависимости от ориентации (горизонтальная или вертикальная).
procedure TForm1.Button1Click(Sender: TObject); var CX, CY : single; Xmm, Ymm : integer; begin PixelsPerMM(Canvas, CX, CY) ; Xmm := Trunc(1280/CX) ; Ymm := Trunc(1024/CY) ; Label1.Caption:= IntToStr(Xmm); Label2.Caption:= IntToStr(Ymm); end;
Комментарии