Alpha-Kanal in GTK2/QT
-
- 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
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.
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 (6.89 KiB) 1877 mal betrachtet
-
- 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
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
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 (2.97 KiB) 1857 mal betrachtet
Re: Alpha-Kanal in GTK2/QT
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.
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.
-
- 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
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.
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
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Alpha-Kanal in GTK2/QT
@Socke: Das hat aber mit AlphaTransparenz nix zu tun, oder?
-
- 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
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
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Alpha-Kanal in GTK2/QT
Bist du sicher das es Alpha-Transparenz ist?
Normalerweise scheint die LCL für alphatransparente PNG's eine Maske zu basteln.
Normalerweise scheint die LCL für alphatransparente PNG's eine Maske zu basteln.
-
- 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
Ja. Zumindest können andere GTK2-Programme auch Bilder mit Alpha-Kanal darstellen (bspw. eye of gnometheo hat geschrieben:Bist du sicher das es Alpha-Transparenz ist?
Normalerweise scheint die LCL für alphatransparente PNG's eine Maske zu basteln.

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

MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- 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
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
@Socke: Wenn das mit deinem Wrapper allerdings relativ einfach funktioniert, dann würde ichs gern mal probieren.
Gruß
Thomas