ich suche eine Möglichkeit DIN A3, A4 etc. und frei wählbare Formate auf einer Canvas darzustellen. Wie funktioniert die Umrechnung von Pixel in mm oder cm? ich finde da immer nur was mit dpi Abhängig

dpi gibt die Anzahl Pixel pro Zoll an, ich denke mal, das du die dpi-Zahlen von deinem Drucker-Treiber holen kannst.ich finde da immer nur was mit dpi Abhängig
Na wenn maßstabsgerecht auf dem Bildschirm ausgegeben werden soll, nimmst du natürlich die Bildschirmauflösung. Diese kannst du über Screen.PixelsPerInch oder Monitor.PixelsPerInch abfragen, also Pixel pro Zoll (2.54 cm). Mit folgender Funktion kannst du dann z.B. mm nach Pixel umrechnen:Hartkern hat geschrieben:wie groß muss das Bitmap dann sein?
weil genau vor diesem Problem steh ich immer noch.
Ich weiß ja wie groß in echt A6, 5 ,4, SR4, 3, SR3 sind..
sprich Pixel pro mm? oder hol ich die mir über die Auflösung des Bildschirms?
Code: Alles auswählen
function ScaleMM(mm: Double): Integer;
const
INCH = 25.4;
begin
Result := round(mm/INCH * Screen.PixelsPerInch);
end;
Code: Alles auswählen
procedure TForm1.PaintboxPaint(Sender: TObject);
begin
with Paintbox1.Canvas do begin
Brush.Color := clWhite;
FillRect(0, 0, Paintbox1.Width, Paintbox1.Height);
Pen.Color := clBlack;
Rectangle(ScaleMM(20), ScaleMM(20), ScaleMM(30), ScaleMM(30));
end;
end;