Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Firemonkey Canvas.FillText ohne Antialiasing (https://www.delphipraxis.net/180985-firemonkey-canvas-filltext-ohne-antialiasing.html)

Sunec 5. Jul 2014 18:03


Firemonkey Canvas.FillText ohne Antialiasing
 
Liste der Anhänge anzeigen (Anzahl: 2)
Guten Abend,

ich möchte in meinem Firemonkey Programm per Canvas.FillText "malen".

Genauer gesagt möchte ich per FillText verschiedene Angaben meines Computers auf den Bildschirm bringen.

Firemonkey benutzt unter Windows zum Zeichnen GDI+, welches standardmäßig abweichende Farben um die eigentliche Schriftfarbe anbringt um ein besseres Endresultat zu erzeugen (Antialiasing).

Dieses Verhalten möchte ich jedoch verhindern.

Zur Vedeutlichung habe ich 2 Bilder angehängt:
  • 42 Grad = Firemonkey
  • 43 Grad = VCL




In VCL ging das so:

Delphi-Quellcode:
SetTextRenderingHint(TextRenderingHintSingleBitPerPixelGridFit);


bzw umständlicher über:

Delphi-Quellcode:
SystemParametersInfo(SPI_SETFONTSMOOTHING, 1, nil, SPIF_UPDATEINIFILE);



Da Firemonkey jedoch nativ GDI+ benutzt, frage ich mich, wie es dort möglich ist.



Delphi-Quellcode:
GlobalUseGDIPlusClearType
liefert leider nicht das gewünschte Ergebnis.


Nach zahlreichen Stunden bei Google habe ich mich nun entschlossen diesen Thread zu eröffnen.

Vielleicht kann mir ja jemand weiterhelfen!

Einen schönen Abend wünsche ich noch!

Sunec 7. Jul 2014 17:11

AW: Firemonkey Canvas.FillText ohne Antialiasing
 
Niemand eine Idee? :(

Sunec 5. Okt 2014 08:56

AW: Firemonkey Canvas.FillText ohne Antialiasing
 
Um den gewünschten Effekt zu erhalten muss der TextAntialiasMode des Render Targets auf D2D1_TEXT_ANTIALIAS_MODE_ALIASED und der AntialiasMode auf D2D1_ANTIALIAS_MODE_ALIASED gesetzt werden.

Delphi-Quellcode:
FD2DRender.SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
FD2DRender.SetTextAntialiasMode(D2D1_TEXT_ANTIALIAS_MODE_ALIASED);

himitsu 5. Okt 2014 09:35

AW: Firemonkey Canvas.FillText ohne Antialiasing
 
Das Schlimme ist ja, daß Antialiasing eigentlich garnicht sooooo schlecht ist
und wenn man ganz genau hinguckt, dann ist beim FMX der Text in der X-Achse leicht verschoben.

Wenn die das endlich mal hinbekommen würden, dann sähe das Schriftbild viel besser aus. :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:55 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