Einzelnen Beitrag anzeigen

r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#1

Ein Bitmap mit mehr als 96dpi nötig

  Alt 2. Dez 2008, 16:53
Hi,

gibt es eigentlich irgendeine Möglichkeit, die dpi-Einstellung eines Bitmaps von 96 auf einen anderen/höheren Wert zu ändern?


Hintergrund: Ich möchte die Ausgabe eines Druckes auf einem Bitmap simulieren. Wo also bisher ein RichEdit mittels der EM_FORMATRANGE-Message seinen Text auf die Printer-Canvas (600dpi) schrieb, macht das RichEdit das nun stattdessen auf die Bitmap-Canvas.

Problem dabei: Auf dem gedruckten Blatt Papier kommen so (im jeweils äquivalent gleichen Output-Rechteck) immer 7 Textzeilen mehr zum Vorschein (von 62 insgesamt) als auf dem Bitmap.

Vermutete Ursache, imo: Aufgrund der wesentlich höheren Auflösung der Printer-Canvas (=600dpi) kann hier die wahre Höhe des Charakters besser wiedergegeben werden. Bei einer 96dpi-Auflösung wäre eine entsprechende Char-Höhe vielleicht genau 7,2 Pixel hoch und muss daher immer auf volle 8 Pixels aufgerundet werden. Daher ist die Schrift auf dem Bitmap minimal höher (als auf dem Papier) ...und entsprechend weniger Zeilen finden dann auch auf dem Bitmap Platz.


Ergo würde ich nun auch mal gerne einen Versuchslauf mit einem Bitmap starten, dessen dpi ebenfalls auf 600 eingestellt ist. Geht das überhaupt, und wenn ja, wie?


Thx schonmal im Voraus,
rXdY


(Ansonst bliebe zur Not nur noch mehr, immer wieder gleich auf die Printer-Canvas auszugeben und nach dem BitBlt-Transfer seines Inhaltes auf das Bitmap den Printvorgang dann wieder zu Aborten) ...was ich aber irgendwie nicht so ganz ideal finde.
  Mit Zitat antworten Zitat