![]() |
Pixel in Millimeter umrechnen
Hallo Leute,
wie kann ich die Größe eines images (image1.width und image1.height) in millimeter umrechnen? Gru |
Re: Pixel in Millimeter umrechnen
Ist recht einfach, kommt aber auf die gewünschte Auflösung drauf an.
Bei 72 dpi hast Du eben 72 Pixel auf einem Inch, den inch musst Du nach mm Umrechnen und gut ist. Bei normaler Druckerauflösung ist 1mm übrigens 3,77777777777777777 pixel. |
Re: Pixel in Millimeter umrechnen
Das ist ein gar zu haaresträubendes Thema!
Du musst nämlich zunächst wissen welche Ausmaße ein Pixel auf dem Ausgabegerät hat. Das ist nicht nur von Modell zu Modell verschieden, sondern auch noch von Einstellung zu Einstellung. Ein Druck mit 300 DPI bringt 300 Pixel auf 2.54mm (1 Inch/Zoll). Bei 150 DPI belegen 300 Pixel schon 2". Bei Bildschrirmen ist es noch vieeeeel schlimmer -> da kann man eigentlich nicht ohne Kalibrierung mit Hilfe des Users präzise arbeiten. Jedes Modell ist schon mal etwas anders in seinen Abmessungen (ja, auch unter 17"ern gibt es abweichungen). Dann ist das Bild evtl. nicht in voller Größe, und im schlimmsten Fall verzerrt dargestellt. Oder man hat gar eine Auflösung, bei der die Pixel nicht quadratisch sind (320x240 ist z.B. so ein Kandidat). Dann muss man nämlich auch noch diverse Seitenverhältnisse beachten etc.pp. Es wäre also sehr hilfreich wenn du uns sagen könntest was deine Ausgabe/dein Bezugssystem ist ;) |
Re: Pixel in Millimeter umrechnen
Hallo,
im Prinzp geht es mir darum, dass ich ein großes Bitmap erstelle, welches ich auf einem Plotter ausdrucken will. Mit folgender Routine passe ich das Bild an die Größe das Druckerblattes an:
Code:
Da das Bild aber geplottet wird, möchte ich vor den Druckereinstellungen eine Messagebox anzeigen in der eine "Empfehlung" für die einzustellende Blattgröße im Millimetern angegeben wird. Das ist insofern wichtig, da das Bitmap eine variable Länge hat.
Printer.BeginDoc;
With Printer.Canvas Do Begin StretchDraw(Printer.Canvas.ClipRect, bmpMyPrinter); Verti := GetDeviceCaps(Printer.Handle, HORZRES); Hori := GetDeviceCaps(Printer.Handle, VERTRES); FaktorH := Hori / bmpMyPrinter.Height; FaktorV := Verti / bmpMyPrinter.Width; Font.Name := 'MS Sans Serif'; Font.Size := 8; End; Printer.Enddoc; |
Re: Pixel in Millimeter umrechnen
Mit SetMapMode kannst du die größenangabe auf Millimeter umstellen so das du nix mehr berechnen musst. Schau dazu einfach mal in der Onlinehilfe. MöglicheParameter:
MM_HIMETRIC: Each logical unit is mapped to 0.01 millimeter. Positive x is to the right; positive y is up. MM_LOMETRIC: Each logical unit is mapped to 0.1 millimeter. Positive x is to the right; positive y is up. |
Re: Pixel in Millimeter umrechnen
was muss ich der funktion als handle übergeben? das des images?
|
Re: Pixel in Millimeter umrechnen
das handle der Canvas auf das es angewendet werden soll. Also wenn es für den Drucker umgestellt werden soll dann "printer.canvas"
|
Re: Pixel in Millimeter umrechnen
Ich habe jetzt auch das Problem, dass ich am Bildschirm maßstabsgetreu arbeiten muss. Ich positioniere Bilder auf einer art TImage Komponente. Wie bekomme ich die TImage Komponente jetzt auf DINA-4 Größe, damit der Benutzer sieht, wie die Bilder auf dem TImage positioniert sind?
Bildbearbeitungsprogramme schaffen es doch auch irgendwie ohne dass der Benutzer vorher etwas kalibrieren muss. |
Re: Pixel in Millimeter umrechnen
Zitat:
Sie lesen nur die fakultative Auflösung aus. Also bei mir z.B. "Normal 96 dpi" Das stimmt aber auch nur annähernd, wenn ich max. Monitorauflösung fahre. Bei 800x600 stimmts schon nicht mehr. |
Re: Pixel in Millimeter umrechnen
Hm, gut, dann muss ich mich damit erstmal zufrieden geben. Und wie lese ich nun diese Auflösung aus und wie rechne ich die Millimeter in Pixel um?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz