![]() |
Ein Bitmap mit mehr als 96dpi nötig
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. |
Re: Ein Bitmap mit mehr als 96dpi nötig
Vill. hilf dir dies:
SetBmpDPI http://delphi.newswhat.com/geoxml/forumhistorythread?groupname=borland.public.delphi .graphics&messageid=415d28d9$1@newsgroups.borland. com |
Re: Ein Bitmap mit mehr als 96dpi nötig
Thx, aber leider ist der Effekt dieser Funktion irgendwie nicht spürbar. Sie wird zwar ohne irgend einen Error durchlaufen, aber wenn ich danach z.B. folgendes ausführe
GetDeviceCaps(ABitmap.Canvas.Handle, LOGPIXELSX) heißt es trotzdem immer noch "96dpi". Auch das RichEdit, das mittels dieser EM_FormatRange-Message da seinen Text draufschreibt, tut das auch danach immer noch genauso wie bei einem 96dpi-Bitmap. |
Re: Ein Bitmap mit mehr als 96dpi nötig
Zitat:
Sonst keine Ideen mehr, wie man so ein Bitmap als 600dpi-Leinwand verkleiden könnte? (Also so, dass die anderen Api-Funktionen etc. das dann auch als ein solches 600dpi-Teil handhaben.) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:30 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