Ich muss Pixel in Punkte in C # konvertieren. Ich habe einige komplizierte Erklärungen zu diesem Thema gesehen, kann aber keine einfache Formel finden. Nehmen wir einen Standardwert von 96 dpi an. Wie berechne ich diese Konvertierung?
125
Versuchen Sie dies, wenn Ihr Code in einer Form vorliegt:
quelle
Die Annahme von 96 dpi ist ein großer Fehler. Auch wenn die Annahme richtig ist, gibt es auch eine Option zum Skalieren von Schriftarten. Eine für 10 Punkte festgelegte Schriftart kann also tatsächlich so angezeigt werden, als ob sie 12,5 Punkte (125%) beträgt.
quelle
Beginnend mit dem Gegebenen:
Wenn Sie Punkte (pt) basierend auf Pixeln (px) finden möchten:
Neuanordnung:
so:
quelle
WPF konvertiert Punkte mit dem System.Windows.FontSizeConverter in Pixel. Der FontSizeConverter verwendet den System.Windows.LengthConverter. Der LengthConverter verwendet den Faktor 1.33333333333333333333, um von Punkten (p) in Pixel (x) zu konvertieren: x = p * 1.3333333333333333
quelle
System.Drawing.Graphics verfügt über DpiX- und DpiY-Eigenschaften. DpiX ist horizontal Pixel pro Zoll. DpiY ist vertikal Pixel pro Zoll. Verwenden Sie diese, um von Punkten (72 Punkte pro Zoll) in Pixel umzuwandeln.
Beispiel: 14 horizontale Punkte = (14 * DpiX) / 72 Pixel
quelle
Sicherlich sollte diese ganze Frage lauten:
"Wie erhalte ich den horizontalen und vertikalen PPI (Pixel pro Zoll) des Monitors?"
Es gibt 72 Punkte in einem Zoll (per Definition ist ein "Punkt" als 1/72 Zoll definiert, ebenso ein "Pica" als 1/72 Fuß). Mit diesen beiden Informationen können Sie sehr einfach von px nach pt und zurück konvertieren.
quelle
Eigentlich muss es sein
quelle
Punkte = (Pixel / 96) * 72 auf einem Standard-XP / Vista / 7-Computer (Werkseinstellungen)
Punkte = (Pixel / 72) * 72 auf einem Standard-Mac mit OSX (Werkseinstellungen)
Windows wird standardmäßig mit 96 dpi (Anzeige) ausgeführt. Macs werden standardmäßig mit 72 dpi (Anzeige) ausgeführt.
72 POSTSCRIPT-Punkte = 1 Zoll 12 POSTSCRIPT-Punkte = 1 POSTSCRIPT Pica 6 POSTSCRIPT Picas = 72 Punkte = 1 Zoll
1 Punkt = 1⁄72 Zoll = 25,4⁄72 mm = 0,3527 mm
DPI = Punkte pro Zoll PPI = Pixel pro Zoll LPI = Linien pro Zoll
Weitere Informationen bei Verwendung als Messgröße
16px = 1em (Standard für normalen Text) 8em = 16px * 8 Pixel / 16 = em
quelle
Das funktioniert:
quelle
Verwenden Sie wxPython auf einem Mac, um die richtige DPI wie folgt zu erhalten:
Dies ergibt:
x-DPI: 72 y-DPI: 72
Die Formel lautet also:
Punkte: int = (pixelNumber * 72) // 72
quelle
Höhenlinien in Punkte und Pixel umgewandelt (meine eigene Formel). Hier ist ein Beispiel mit einer manuellen Eingabe von 213,67 Punkten in das Feld Zeilenhöhe:
Hier ergibt die manuelle Eingabe von 213,67 Punkten 284 Pixel.
Hier ergibt die manuelle Eingabe von 213,68 Punkten 285 Pixel.
(Warum 0,45? Ich weiß es nicht, aber es funktioniert.)
quelle