Карта сайтаСсылкиКонтакты

Хостинг


Как преобразовать пиксели в миллиметры

PDF Печать
Статьи
Программирование Delphi

Если Вам необходимо преобразовать значения пикселей в миллиметры (дюймы, сантиметры и т.д.), используйте код, представленный ниже.

Код использует функцию API GetDeviceCaps для получения единиц измерений, которые Вам нужны.


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;

Также преобразовать пиксели в миллиметры и наоборот, Вы можете на сайте http://www.unitconversion.org/typography/pixels-x-to-millimeters-conversion.html


 

Добавить комментарий


Защитный код
Обновить