Wie Sichtbares auf ein transparentes Bild malen?

Anfängerfragen zum Programmieren mit PureBasic.
Syntacks_Error
Beiträge: 107
Registriert: 08.03.2009 16:08

Wie Sichtbares auf ein transparentes Bild malen?

Beitrag von Syntacks_Error »

Ich habe ein transparentes Bild (png) als imagegadget, auf das ich programmabhängig malen und texten will. Dieses Bild liegt über dem eigentlichen Fensterhintergrund. Wenn das png eine Hintergrundfarbe hat, gehts. Transparent geht es nicht, Malerei und Texterei bleiben unsichtbar, egal welchen Parameter ich bei DrawingMode nehme. Leuchtet natürlich insoweit ein, als durchsichtig nun mal durchsichtig ist - aber wozu gibt es transparente Bilder, wenn man darauf nicht malen kann? Mit dem Malprogramm geht es ja auch ;-)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Wie Sichtbares auf ein transparentes Bild malen?

Beitrag von STARGÅTE »

Wenn du in ein 32-Bit PNG malst (welches ja ein Alpha-Kanal hat) dann musst du auch den AlphaWert für deine Farbe angeben.

Auf gut deutsch: RGB(255,255,255) oder $FFFFFF wird zwar weiß gemacht, aber halt mit dem AlphaWert 0

Daher DrawingMode(#PB_2DDrawing_AlphaBlend) verwenden
und dann mit RGBA(255,255,255,255) oder $FFFFFFFF arbeiten ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Wie Sichtbares auf ein transparentes Bild malen?

Beitrag von Kaeru Gaman »

nicht zu vergessen, das geht erst ab V4.40, die noch in der Beta ist.
wenn du die 4.31 benutzt, geht es garnicht.
Mit dem Malprogramm geht es ja auch
welches einzige Programm der Welt nennt sich denn "Das Malprogramm"...?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Re: Wie Sichtbares auf ein transparentes Bild malen?

Beitrag von jojo1541 »

Microsoft Paint. :mrgreen:
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Syntacks_Error
Beiträge: 107
Registriert: 08.03.2009 16:08

Re: Wie Sichtbares auf ein transparentes Bild malen?

Beitrag von Syntacks_Error »

Wunderbar. Habe 4.40 Beta 5, damit klappt es, aber die Konstante "#PB_2DDrawing_AlphaBlend" gibt es da in der Erläuterung/Hilfe noch gar nicht. Kleine Hürde war noch, daß entgegen der Erwartung der erste Doppelwert die Transparenz steuert und nicht der letzte.

DrawText(x,y,text$,$FF000000,$00000000)

ergibt tatsächlich das gewünschte Ergebnis, Schwarzer Text mit Transparenz 0 (FF) auf durchsichtiger Hintergrundfarbe. Vielen Dank.

Edit: Achso, das Malprogramm war in diesem Fall Gimp ;-)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Wie Sichtbares auf ein transparentes Bild malen?

Beitrag von Kaeru Gaman »

Kleine Hürde war noch, daß entgegen der Erwartung der erste Doppelwert die Transparenz steuert und nicht der letzte.
das liegt daran, dass beim PC Zahlen mit dem kleineren Wert zuerst im Speicher stehen.
wenn man Zahlen schreibt, schreibt man allerdings links den höheren Wert.

also stehen die Farbcodes natürlich RGBA im speicher,
wenn man das aber als achtstellige Hexadezimalzahl schreibt, ist es logischer Weise $AABBGGRR angeordnet.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten