Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Windows 10 Bildskalierungsalgorithmus aufbohren/ersetzen (systemweit) (https://www.delphipraxis.net/209576-windows-10-bildskalierungsalgorithmus-aufbohren-ersetzen-systemweit.html)

mael 23. Dez 2021 19:52

Windows 10 Bildskalierungsalgorithmus aufbohren/ersetzen (systemweit)
 
Hallo,

Mittlerweile sind ja viele Displays nur noch sinnvoll mit DPI-Skalierung zu betreiben.

Trotzdem wird es immer Anwendungen geben die nicht aktualisiert werden und nicht mit DPI-Skalierung harmonieren.

Hier skaliert Windows 10 selbst (also Bild/pixelbasiert), und macht die App sehr unscharf.

Es gibt hier deutlich bessere Algorithmen (z.B. wie auch aus Emulatoren bekannt). Wo wäre denn der Ansatzpunkt/die Funktionen in der WinAPI wo man da ansetzen kann?

Vielleicht haben sich einige der Low-Level-Enthusiasten schon mal damit beschäftigt oder weiterführende Links?

himitsu 24. Dez 2021 00:30

AW: Windows 10 Bildskalierungsalgorithmus aufbohren/ersetzen (systemweit)
 
Im App-Manifest kannst du Windows sagen, dass du Dieses machen willst, dann macht Windows hier nichts mehr.

In aktuelleren Delphis gibt es direkt in den Projektoptionen was,
aber wenn jemand unbedingt mit einem fast 10 Jahren altem Delphi arbeiten will, welches neuere Windowse noch nicht kennen kann, dann muß er es eben selbt machen.

https://docs.microsoft.com/de-de/win...tion-manifests

Uwe Raabe 24. Dez 2021 09:13

AW: Windows 10 Bildskalierungsalgorithmus aufbohren/ersetzen (systemweit)
 
Zitat:

Zitat von himitsu (Beitrag 1499668)
Im App-Manifest kannst du Windows sagen, dass du Dieses machen willst, dann macht Windows hier nichts mehr.

Wenn ich ihn richtig verstanden habe, möchte er den internen Windows-Skalierer durch einen eigenen ersetzen, so dass alle Anwendungen davon profitieren, nicht nur die selbst geschriebenen.

Der schöne Günther 27. Dez 2021 09:06

AW: Windows 10 Bildskalierungsalgorithmus aufbohren/ersetzen (systemweit)
 
Wenn die Anwendung nichts kann, dann kann man nur pixelbasiert skalieren. Es gibt andere Skalierungsalgorithmen, oder Post Processing-Filter die man nochmal drüber laufen lassen könnte um das Bild nachträglich versuchen zu schärfen, aber ich glaube kaum dass das ein Feld ist wo Leute (außer dir) oder Microsoft groß Aufwand reinstecken wollen würde. Der richtige Ansatz ist, der Anwendung DPI-Skalierung beizubringen.

Um ehrlich zu sein kenne ich persönlich außer Delphi < 10.4 und unserem 30 Jahre alten ERP-System keine Anwendung die heute nicht mehr richtig High DPI-fähig ist.

Uwe Raabe 27. Dez 2021 10:42

AW: Windows 10 Bildskalierungsalgorithmus aufbohren/ersetzen (systemweit)
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1499727)
Wenn die Anwendung nichts kann, dann kann man nur pixelbasiert skalieren.

Windows bietet ja immerhin die GDI-Skalierung an. Dabei werden dann (die meisten) Text-Inhalte mit höherer Auflösung dargestellt. Die Icons z.B. bleiben aber weiterhin verwaschen. Ein paar Beispiele kann man hier sehen: Improving the high-DPI experience in GDI based Desktop Apps

Der schöne Günther 27. Dez 2021 14:44

AW: Windows 10 Bildskalierungsalgorithmus aufbohren/ersetzen (systemweit)
 
Stimmt, das hatte ich gar nicht mehr auf dem Schirm (Wortwitz beabsichtigt).

Toller Artikel mit vielen anschaulichen Bildern.

himitsu 28. Dez 2021 17:04

AW: Windows 10 Bildskalierungsalgorithmus aufbohren/ersetzen (systemweit)
 
Und wenn Grafiken nur in wenigen Pixeln vorliegen, dann könnten da aus dem Nichts auch nicht mehr nichtorhandene Details der Icons auftauchen.

Da wo Windows (GDI) das Zeichnen übernimmt, wie z.B. bei Fnts, da kann dann auch "nach" dem Saklieren auf die deteilreichere Ausgabe auch mit mehr Pixeln der Font ausgegeben werden.
Außer, wenn z.B. über sowas wie DoubleBuffering erst unskaliert geschrieben wird, wo beim Hochskalieren dann auch bei der Schrift nicht mehr mehr rauskommen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz