Dies ist eine Möglichkeit, unterschiedliche Ergebnisse aus der gleichen Datei zu erhalten:
Bitmap bmp1 = (Bitmap)Bitmap.FromFile(some300dpiImage);
Bitmap bmp2 = new Bitmap(bm1);
Jetzt bmp1
berichten 300dpi (oder um genau zu sein: ppi) wie erwartet.
Aber bmp2
ist ein neues Bitmap, erstellt aus den gleichen Pixeln, aber mit der aktuellen Bildschirmauflösung und es wird berichten, was die Bildschirmauflösung Ihres Geräts ist. Meine ist 120dpi/ppi.
Hinweis: Dies hat nichts zu tun mit dpi vs ppi - für eine discussion about dpi - ppi see here.
TLTR: dpi im engeren Sinne ist nur bezogen auf Druckhardware. Es gibt keinen Grund, warum Bild-Software irgendetwas anderes als ppi melden könnte. Aber PPI werden fast immer als dpi bezeichnet, so dass wir dasselbe tun können wie Pixelpunkte und umgekehrt.
Was sagen andere Anwendungen, wie IrfanView oder Windows-Eigenschaften-Details? 96dpi ist eine übliche Bildschirmauflösung. Wenn Sie eine Bitmap erstellen, wird standardmäßig die Bildschirmauflösung verwendet. Sie können jedoch die Auflösung vor dem Speichern einstellen. – TaW
Mögliches Duplikat von [Pixels in Punkte umwandeln] (http://stackoverflow.com/questions/139655/convert-pixels-to-points) –
Kein Duplikat, soweit ich das beurteilen kann. Der Link handelt von [typografischen Punkten] (https://en.wikipedia.org/wiki/Point_%28typography%29), nicht von der Auflösung! – TaW