Внешний вид сайта:

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

Если Вам необходимо преобразовать значения пикселей в миллиметры (дюймы, сантиметры и т.д.), используйте код, представленный ниже. Код использует функцию 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;

Комментарии

Нет комментариев. Ваш будет первым!