Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Pixel in Millimeter umrechnen (https://www.delphipraxis.net/27937-pixel-millimeter-umrechnen.html)

ak1 17. Aug 2004 15:41


Pixel in Millimeter umrechnen
 
Hallo Leute,

wie kann ich die Größe eines images (image1.width und image1.height) in millimeter umrechnen?

Gru

Phoenix 17. Aug 2004 15:49

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.

dizzy 17. Aug 2004 15:53

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 ;)

ak1 17. Aug 2004 16:00

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:
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;
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.

SirThornberry 17. Aug 2004 16:12

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.

Meflin 16. Sep 2004 21:01

Re: Pixel in Millimeter umrechnen
 
was muss ich der funktion als handle übergeben? das des images?

SirThornberry 16. Sep 2004 21:13

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"

Luckie 13. Dez 2006 11:24

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.

kalmi01 13. Dez 2006 12:03

Re: Pixel in Millimeter umrechnen
 
Zitat:

Bildbearbeitungsprogramme schaffen es doch auch irgendwie ohne dass der Benutzer vorher etwas kalibrieren muss.
Nicht wirklich.
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.

Luckie 13. Dez 2006 12:11

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 20:24 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz