BitBtn - Darstellungsfehler
- Ally
- Beiträge: 263
- Registriert: Do 11. Jun 2009, 09:25
- OS, Lazarus, FPC: Win und Lazarus Stable release
- CPU-Target: x64
BitBtn - Darstellungsfehler
Ein Icon mit transparenten Bildbereichen wird auf einem BitBtn nicht korrekt dargestellt.
Teil-transparente Pixel werden nicht mit ihrer eigentlichen Farbe, sondern als Grauton wiedergegeben.
Dadurch entstehen, besonders dort wo mit transparenten Pixeln für eine geglättete Darstellung gesorgt werden soll, sehr unschöne Darstellungsfehler.
Dieses Problem ist mir bisher nur beim BitBtn aufgefallen. SpeedButton, DirectoryEdit, ToolButton oder MenuItem's geben die Icons korrekt wieder.
Im Anhang ein Beispiel, um das Problem zu verdeutlichen. (Win10, Lazarus 2.2.0RC1 r65419 FPC 3.2.2 x86_64-win64-win32/win64)
Vor einiger Zeit habe ich dazu auch schon einen Bugreport verfasst und zwischenzeitlich gesehen, dass es noch einige weitere Reports gibt die den Fehler auch beschreiben.
Leider gab es im Bugtracker bisher keine Resonanz zu dem Problem.
Jetzt bin ich nicht gerade ein Experte auf dem Gebiet, habe aber trotzdem versucht der Sache auf den Grund zu gehen. Leider ohne Erfolg.
Meine Frage an Euch ist also: wer kennt sich damit etwas aus und kann z.B. die Stelle lokalisieren an der beim BitBtn, abweichend von den anderen Komponenten, das Icon gezeichnet wird.
Vielleicht genügen ja ein paar kleine Hinweise, die den Experten im Entwickler-Team den Einstieg erleichtern.
Gruß Roland
Hier eine vergrößerte Darstellung, auf der man den Unterschied gut sieht.
- -
Teil-transparente Pixel werden nicht mit ihrer eigentlichen Farbe, sondern als Grauton wiedergegeben.
Dadurch entstehen, besonders dort wo mit transparenten Pixeln für eine geglättete Darstellung gesorgt werden soll, sehr unschöne Darstellungsfehler.
Dieses Problem ist mir bisher nur beim BitBtn aufgefallen. SpeedButton, DirectoryEdit, ToolButton oder MenuItem's geben die Icons korrekt wieder.
Im Anhang ein Beispiel, um das Problem zu verdeutlichen. (Win10, Lazarus 2.2.0RC1 r65419 FPC 3.2.2 x86_64-win64-win32/win64)
Vor einiger Zeit habe ich dazu auch schon einen Bugreport verfasst und zwischenzeitlich gesehen, dass es noch einige weitere Reports gibt die den Fehler auch beschreiben.
Leider gab es im Bugtracker bisher keine Resonanz zu dem Problem.
Jetzt bin ich nicht gerade ein Experte auf dem Gebiet, habe aber trotzdem versucht der Sache auf den Grund zu gehen. Leider ohne Erfolg.
Meine Frage an Euch ist also: wer kennt sich damit etwas aus und kann z.B. die Stelle lokalisieren an der beim BitBtn, abweichend von den anderen Komponenten, das Icon gezeichnet wird.
Vielleicht genügen ja ein paar kleine Hinweise, die den Experten im Entwickler-Team den Einstieg erleichtern.
Gruß Roland
Hier eine vergrößerte Darstellung, auf der man den Unterschied gut sieht.
- -
- Dateianhänge
-
- BitBtnDarstellungsfehler.zip
- (12.41 KiB) 54-mal heruntergeladen
-
- Beiträge: 6204
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: BitBtn - Darstellungsfehler
Bei mir ist es perfekt. Habe es mit Linux getestet.
- Dateianhänge
-
- Bildschirmfoto vom 2021-10-06 17-21-15.png (13.54 KiB) 1251 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 732
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: BitBtn - Darstellungsfehler
Windows 64 Bit
bei mir sieht es so aus:
bei mir sieht es so aus:
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
- Ally
- Beiträge: 263
- Registriert: Do 11. Jun 2009, 09:25
- OS, Lazarus, FPC: Win und Lazarus Stable release
- CPU-Target: x64
Re: BitBtn - Darstellungsfehler
Hallo Mathias, hallo siro,
danke für eure Beiträge. Ich habe jetzt auch mal meine Linux-Kiste (Linux Mint 20.2) angeworfen und dort sieht, wie bei Mathias, alles gut aus.
Vielleicht könnte jetzt noch ein Mac'ler drauf-schauen und wenn es dort auch richtig gezeichnet wird, ist wie immer Windows schuld.
Gruß Roland
danke für eure Beiträge. Ich habe jetzt auch mal meine Linux-Kiste (Linux Mint 20.2) angeworfen und dort sieht, wie bei Mathias, alles gut aus.
Vielleicht könnte jetzt noch ein Mac'ler drauf-schauen und wenn es dort auch richtig gezeichnet wird, ist wie immer Windows schuld.
Gruß Roland
Re: BitBtn - Darstellungsfehler
Wenn man in den Source-Code eintaucht, sieht man, dass TSpeedButton als TGraphicControl-Nachfahre das Icon mit den ImageList-Methoden selbst zeichnet, während TBitBtn als TWinControl-Nachfahre dies über das Widgetset-Interface vom Betriebssystem erledigen lässt. Nachdem Windows in den alten Tagen nie gut mit alpha-Kanal-transparenten Bildern zurechtkam, wird, nehme ich an, das png in ein "pseudo-transparentes" Bitmap umgewandelt; mit "pseudo-transparent" meine ich das Verfahren, dass eine bestimmte Farbe als transparent angenommen wird - dabei geht die bei einem echten Alpha-Kanal mögliche teilweise Transparenz natürlich verloren, und das verursacht die Verfälschungen im Randbereich der Bilder.
- Ally
- Beiträge: 263
- Registriert: Do 11. Jun 2009, 09:25
- OS, Lazarus, FPC: Win und Lazarus Stable release
- CPU-Target: x64
Re: BitBtn - Darstellungsfehler
Hallo wp_xyz,
Das heißt, unter Linux wird kein "pseudo- transparentes" Bitmap erzeugt, sondern direkt das richtige Bitmap gezeichnet?
Könnte man das, zumindest unter den neueren Windows-Versionen, nicht auch so machen?
Oder ist das alles viel komplizierter?
Gruß Roland
Das heißt, unter Linux wird kein "pseudo- transparentes" Bitmap erzeugt, sondern direkt das richtige Bitmap gezeichnet?
Könnte man das, zumindest unter den neueren Windows-Versionen, nicht auch so machen?
Oder ist das alles viel komplizierter?
Gruß Roland
Re: BitBtn - Darstellungsfehler
Weiß nicht. Wenn ich mir den Source-Code anschaue, ist es mir schon kompliziert genug - zumindest für ein paar Pixel. Du siehst, ich bin nicht sehr motiviert, mich da stark zu engagieren. Aber du kannst gerne einen Patch einreichen.
- Ally
- Beiträge: 263
- Registriert: Do 11. Jun 2009, 09:25
- OS, Lazarus, FPC: Win und Lazarus Stable release
- CPU-Target: x64
Re: BitBtn - Darstellungsfehler
Hallo wp_xyz,
trotzdem, danke für deine Hinweise.
Gruß Roland
trotzdem, danke für deine Hinweise.
Gruß Roland