![]() |
Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Mein Programm-Icon wird in der Taskleiste und im Programmfenster verzerrt dargestellt.
Das Icon selbst ist in zahlreichen Auflösungen von 16x16 bis 256x256 jeweils mit 32 bit in der .res Datei gespeichert. Wenn ich alle Auflösungen, bis auch die 16x16 lösche, bekomme ich in der Taskzeile und im Programmfenster jeweils ein klares Icon. Aber ich habe extra so viele Auflösungen in Icon, da es im Explorer und auf dem Desktop ja in unterschiedlichen Größen angezeigt wird und auch auf Systemen mit mehr als 100% DPI noch scharf sein soll. Getestet habe ich das Problem auch mit 100% DPI - auch dort wird mir in der Taskzeile und im Programmfenster ein unscharfes Icon gezeigt. Dann habe ich mal die Größ der Icon in meiner Taskzeile ausgemessen - es sind 16x16 Pixel. Hat jemand eine Idee, wie ich in der Taskzeile ein scharfes Icon hinbekommen, obwohl ich als MAINICON ein Icon in unterschiedlichen Größen speichere? |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Meinst du statt "verzerrt" vielleicht eher "verpixelt"?
Wenn ja dann habe ich auch dieses Problem. Das Main-Icon ist absichtlich in der Größe 256px x 256px und in der Taskleiste ist es dann verpixelt. Die Icons anderer Software-Produkte sind wunderbar detailliert und kein bisschen pixelig. |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Windows hat seit W2k ein Problem mit dem Icon-Cache.
Hat Windows für ein Programm mal ein Icon in den Cache übernommen so wird das auch verwendet wenn man ein anderes (und weiter Auflösungen) bereitstellt. Erst wenn man den Cache löscht (oder die Anwendung woanders hin kopiert) passt es wieder |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
Zitat:
![]() Dann habe ich das Programm in einen neuen Ordner kopiert und gestartet. Das Icon ist immer noch unschön. Ich verwende Windows 7. In der Detail Ansicht vom Explorer wird das Programm Icon in 16x16 sauber dargestellt. |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Dann fehlt wohl der Alpha Kanal.
gruss |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
|
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Wie speicherst du denn deine Icons?
Ich speichere sie in Photoshop mit dem ICO-Plugin im "Standard"-Modus (nicht Vista-Modus). |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
Ist aber schon ein unterschied ob du (True Color (RGB 32 Bit)) oder (XP - (RGB + Alpha)) verwendest. Aber gut :) |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Liste der Anhänge anzeigen (Anzahl: 2)
RGB sind 24 bit.
RGB + Alpha sind 32 bit - unterstützt seit Windows XP. Ich verwende 32 bit. Würde ich den Alpha Channel nicht mitspeichern, dann würde das Icon anders aussehen. Ich hab mal Screenshots von der Taskzeile und vom Explorer gemacht - beide jeweils zu 100% und zu 400 % (mit Windows Paint vergrößert). Daneben noch die Ansicht innerhalb von Axial IconWorkshop. Im IconWorkshop ist das 16x16 Icon also sehr scharf, wird in der Taskzeile und im Explorer ebenfalls mit 16x16 Pixeln dargestellt - allerdings nicht so, wie im IconWorkshop angegeben. Ich vermute, dass Windows (7) das Icon in einer höheren Auflösung einliest und dann selbst auf 16x16 Pixel skaliert - und genau dabei die Probleme entstehen. Würde ich das im IconWorkshop auch tun, sähe das Icon vermutlich ähnlich schlecht aus, wie jetzt in der Taskzeile (und im Explorer), denn die höheren Auflösungen des Icons stellen "MF" schöner dar, als in der Auflösung 16x16. |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Liste der Anhänge anzeigen (Anzahl: 1)
Warum weiß ich nicht, aber im Explorer wird mir das Icon 48x48 skaliert auf 16x16 Pixel gezeigt.
Und in der Taskzeile wird mir das Icon 32x32 skaliert auf 16x16 Pixel angezeigt. Mit dem ResourceEditor habe ich überprüft, das 16x16 Icon ist als "MAINICON" in der .exe Datei vorhanden. Hat jemand eine Idee, wo oder wie ich nach einer Lösung suchen könnte? Gibt es evtl. ein englisch sprachiges Forum oder ein Forum für die Windows API? |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Mich würde mal interessieren welches System du verwendest.
Sieht nach XP aus. Sollte das der Fall sein, denke ich mal das die Formate (größen) im Icon nicht alle Unterstützt werden. Unterstützte Formate. XP 16x16, 24x24, 32x32 und 48x48 Du verwendest 16x16, 24x24, 32x32, 48x48, 64x64, 128x128, und garantiert 256x256 erst ab Vista Zitat:
Hier unter W7 sieht nämlich alles normal aus. (Teste es dort einfach mal selbst.) Zitat:
gruss |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
Nach deiner Frage habe ich mal auf Aero umgeschaltet - dort sieht das Icon im Explorer gut aus - ich habe aber nicht kontrolliert, ob wirklich das 16x16 Icon angezeigt wird, oder nur besser skaliert wird. Kann ich aber noch tun... In der Taskzeile sieht das Icon immer noch genauso verzerrt aus. Zitat:
Zitat:
Zitat:
|
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Ich möchte dir ja gern helfen aber ohne die Anwendung (Sample.exe) sollte das schwierig sein.
Zitat:
Was andere Foren dir sagen das können wir hier auch ;) gruss |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
(Schon das zweite Mal heute, dass ich erwischt werde, dass ich gefragt habe ohne zuvor ein kleinen Sampler zu schreiben. :oops: Ich muss mich bessern...) Bei meinem eigentlichen Programm generiere ich mit BRCC32.exe aus einer .rc Datei eine .res Datei und binde dabei die .ico Datei ein. Die .res Datei nutze ich dann sowohl in der IDE, als auch als Grundlange für die Compilierung mit DCC32.exe zum Veröffentlichen. In beiden Fällen tritt das Problem auf. Hm, wie gehe ich weiter vor? Am besten suche ich mir mal ein anderes Programm um die .res Datei zu untersuchen und mit dem kleinen Sampler zu vergleichen... Zitat:
|
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
Ich kompiliere meine Icons auf diese weise ein.
Delphi-Quellcode:
Alles scharf damit.
unit uMainApp;
{$R '_resources\SoundMachine.res' '_resources\SoundMachine.rc'} gruss |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Ich hab gerade mal den "Resource Hacker" geladen. Als Unterschied konnte ich nur die Language ID feststellen. In meinem Projekt ist das 0 - bei dem neuen Sampler 1033.
Dann habe ich mit dem Resource Hacker die Language ID des Icons auf 1033 verändert - keine Besserung. Zitat:
{$R *.res} Aber ich nutze auch etliche Toolboxen, die ebenfalls eine .res Datei mit bringen. Dann habe ich die jeweiligen .res Dateien aus den Toolboxen durch eine leere .res Datei ersetzt. (Eine Toolbox mochte das nicht - daher habe ich deren .res Datei belassen.) In meiner .rc Datei habe ich alles bis auf eine Zeile gelöscht: MAINICON ICON "MAINICON.ico" Immer noch ein verzerrtes Icon in der Taskzeile. Um die verbliebene Toolbox zu entfernen, muss ich aber einen größeren Aufwand treiben. Leider kenne ich ein Programm, das mir mal eben alle Resourcen aus einer .exe Datei entfernt. Mit "ResourceEditor" und "Resource Hacker" muss ich jede einzelne Resource nacheinander entfernen. Und in der verbliebenen Toolbox sind noch eine Menge Resourcen. Hast du noch eine Idee, was ich sonst machen könnte? Würde es dir helfen, mein fertiges Programm zu downloaden? Ich will niemand dazu animieren... |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
erstelle ein leeres projekt mit deiner Resource.
So das ich beim start das Icon im Explorer als auch im Taskmanager sehen kann. Dann werde ich es bei mir mal testen. Auf diesen weg.
Delphi-Quellcode:
{$R '_resources\SoundMachine.res' '_resources\SoundMachine.rc'}
Natürlich mit deiner res/ rc Datei ersetzen. gruss |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
Ich hab in meiner .dpr folgende Zeile gefunden (hab ich wohl vor mehr als 10 Jahren mal eingebaut - keine Ahnung, warum. Damals noch unter Delphi 7):
Code:
Die Zeile raus - und alles ist gut!
Application.Icon.Handle := LoadImage(hInstance, 'MAINICON', IMAGE_ICON, Application.Icon.Height, Application.Icon.Height, LR_DEFAULTCOLOR);
Auf meinem System hat Application.Icon.Height den Wert 35 (bei DPI = 100 %). VIELEN DANK!!! Zitat:
|
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
Frohes neues Jahr. ;) gruss |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Im Explorer wird mir immernoch das 48x48 Icon angezeigt. Ich nutze Windows mit 110 % DPI und habe die verwendeten Pixel im Explorer nochmal nachgezählt - es sind 18x18, nicht wie von mir zuvor behauptet 16x16.
Und wenn der Explorer 18x18 Pixel anzeigt, dann muss er ja skalieren. Vermutlich sieht das Icon besser aus, wenn er das 48x48 Icon skaliert, als wenn er das 16x16 Icon nutzt. Aber es wundert mich, warum Windows das 48x48 zum Skalieren verwendet - und nicht das mit der höchsten Auflösung (bei mir 256x256). Das würde besser aussehen - wäre aber mehr Rechenaufwand. Ob der Rechenaufwand wohl der Grund ist? Übrigens habe ich mein Icon erst vor wenigen Wochen verändert - in den 10 Jahren zuvor hatte ich ein sehr unscharfes Icon, bei dem es einfach nicht aufgefallen ist, dass es unscharf skaliert wurde. |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Wie sieht es denn aus wenn du das 16x16 einfach mal aus der Ressource entfernst?
Mit der Änderung der DPI hab ich noch nicht gearbeitet.. sorry Habe immer 100% gruss |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
Der Explorer wird immernoch ein Icon skalieren - und vermutlich immer noch das 48x48 Icon. Zitat:
Um das zu machen speichere ich die Grafiken in einer höheren Auflösung und skaliere diese beim Programmstart / bei der Anzeige entsprechend den DPI Einstellungen des Benutzers. Die selbstgezeichneten Grafiken (ein Diagramm) habe ich entsprechend umgeschrieben. Ich glaube, dass es immer mehr Monitore geben wird, die deutlich mehr als 96 DPI haben - und entsprechend der Benutzer mehr als 100% DPI in Windows einstellt. Daher sollte aus meiner Sicht jedes Programm die Grafiken entsprechend skalieren. |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
Zitat:
Bei mir sieht es zumindest nicht schlecht aus. Siehe Anhang.. DPI 110%, Klassik Ansicht TaskLeiste und Explorer.. gruss |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
Zitat:
|
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
Zitat:
Ich meine nicht die Icons sondern den DPI Kram. Merke die DPI wird nicht Automatisch skaliert bei normalen Anwendungen das musst du explicit angeben. Ausgenommen davon ist WPF! Hier mein Test Example mit Source.. D2010. gruss |
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Welcher Tipp war es denn jetzt genau?
|
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
Zitat:
Zitat:
Code:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
... <asmv3:application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings"> <dpiAware>true</dpiAware> </asmv3:windowsSettings> </asmv3:application> ... </assembly> Zitat:
Das Programm selbst generiert dabei 96 (100%) DPI - sowohl für Grafiken, als auch für Schrift. Windows skaliert das dann auf die DPI Einstellungen von Windows. Dabei werden Schrift und Grafik also hochgerechnet - aber durch die höhere Auflösung bleibt es bei der selben Größe auf dem Bildschirm (gemessen in cm). Aber natürlich unscharf. Mit dem Eintrag in der .manifest Datei muss das Programm die Ausgabe entsprechend der Windows DPI Einstellung bereitstellen, die dann direkt auf dem Bildschirm angezeigt wird. Hier erfolgt die Skalierung also im Programm. Z. B. verwende ich in meinem Diagrammen immer ein feste Anzahl von Pixel pro Linie. Oft 1, teilweise 2 und selten 3 Pixel - je nach Windows DPI Einstellung (Screen.PixelsPerInch). Dadurch sehen auch (alte) Programme ohne entsprechenden .manifest Eintrag immer noch ähnlich aus, aber halt unscharf. Falls dich das nächer interessiert bei Microsoft unter "DPIaware" googlen. Bei ![]() Zitat:
Code:
Daher wurde das 32x32 Icon verwendet. Mein Fehler... :oops:
Application.Icon.Handle := LoadImage(hInstance, 'MAINICON', IMAGE_ICON, Application.Icon.Height, Application.Icon.Height, LR_DEFAULTCOLOR);
|
AW: Verzerrtes Programm-Icon in der Taskleiste und im Programmfenster
habe dir mal mein Sample hochgeladen..
Zitat:
Delphi-Quellcode:
gruss
<!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. --> <application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> </windowsSettings> </application> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 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