Alpha-Kanal in GTK2/QT

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

Alpha-Kanal in GTK2/QT

Beitrag von Giantics »

Ich habe ein paar Icons mit Alpha-Kanal, welche ich gerne als Icons für die Toolbar verwenden würde. Leider wird der Alpha-Kanal in der GTK2 Version komplett weggelassen.
Wenn ich jedoch das Programm mit QT kompiliere, dann funktioniert es fast ganz normal.

Kann man dies (mit einem Trick) auch für GTK2 erreichen?

Zum Screenshot im Anhang: oben: GTK2; unten QT.
linker Button: TToolButton; rechter Button: TSpeedButton; weiter unten: TImage.

Überall ist dieselbe Graphik (mit Alpha-Kanal) reingeladen worden.
Dateianhänge
laz_alpha.png
laz_alpha.png (6.89 KiB) 1878 mal betrachtet

Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

Re: Alpha-Kanal in GTK2/QT

Beitrag von Giantics »

Hallo,

leider besteht das oben beschriebene Problem noch immer.
Habt ihr mittlerweile eine Lösung gefunden?

Hab nochmal ein Bild angehängt um das Problem zu verdeutlichen:
links: Symbol im Dateimanager (png), rechts: Symbol in TImageList geladen.

Gruß
Thomas
Dateianhänge
alpha-kanal1.png
alpha-kanal1.png (2.97 KiB) 1858 mal betrachtet

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Re: Alpha-Kanal in GTK2/QT

Beitrag von theo »

Soweit ich weiss, hat LCLGTK2 mit alphatransparentem drawen nicht viel am Hut.
Mit OPBitmap geht das mittlerweile auf den GTK2 Canvas (http://www.theo.ch/lazarus/lazbridge32.zip" onclick="window.open(this.href);return false;) aber um das für die Toolbuttons zu verwenden müsste man wohl tief unten einsteigen, da man dafür ja kein OnPaint Ereignis hat. Das ist wohl nicht in deinem Sinne.

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Alpha-Kanal in GTK2/QT

Beitrag von Socke »

Ich habe kein Vergleichsgrundlage, deshalb, kann ich nicht sagen ob es geht (ich denke aber schon).

Du kannst mit der gtk2-API Bilder laden. Komfortabel ist das vor allem, wenn du die bereits vorhandenen Standard-Icons verwenden willst. Alternativ musst du einen eigenen Suchpfad angeben und die dort liegenden Bilder werden dann ebenfalls gesucht.
Vorteile: Standard-Icon des aktuellen Themes (wird aber bei Änderungen am Theme nicht aktualisiert); Funktioniert theoretisch mit jedem Widgetset und mit jedem Fenster-Manger.
Nachteil: glib wird immer benötigt (ist für Win32/64, Linux und Mac verfügbar).

'nen Wrapper hab ich schon geschrieben. Sag Bescheid wenn du ihn haben willst.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Re: Alpha-Kanal in GTK2/QT

Beitrag von theo »

@Socke: Das hat aber mit AlphaTransparenz nix zu tun, oder?

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Alpha-Kanal in GTK2/QT

Beitrag von Socke »

Doch schon. Wenn ich damit Bilder mit Alpha-Tranzparenz richtig laden und darstellen kann...
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Re: Alpha-Kanal in GTK2/QT

Beitrag von theo »

Bist du sicher das es Alpha-Transparenz ist?
Normalerweise scheint die LCL für alphatransparente PNG's eine Maske zu basteln.

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Alpha-Kanal in GTK2/QT

Beitrag von Socke »

theo hat geschrieben:Bist du sicher das es Alpha-Transparenz ist?
Normalerweise scheint die LCL für alphatransparente PNG's eine Maske zu basteln.
Ja. Zumindest können andere GTK2-Programme auch Bilder mit Alpha-Kanal darstellen (bspw. eye of gnome :D)
Mit meinem Wrapper kann man zumindest einen bestimmten Alphawert als Maske verwenden. Wenn mir jemand die richtige GDK-Zeichenfunktion (ich habe einen Pixbuf, der auf eine Pixmap soll) sagt, wird auch echter Alpha-Modus unterstützt :oops:
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

Re: Alpha-Kanal in GTK2/QT

Beitrag von Giantics »

Ich denke das einfachste ist zunächst, dass ich die Icons so umgestalte, dass der Alpha-Kanal nicht mehr benötigt wird.
@Socke: Wenn das mit deinem Wrapper allerdings relativ einfach funktioniert, dann würde ichs gern mal probieren.

Gruß
Thomas

Antworten