ImageGadget ein neues Bild geben

Anfängerfragen zum Programmieren mit PureBasic.
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: ImageGadget ein neues Bild geben

Beitrag von stevie1401 »

Bist du dir sicher?
Etwas über Transparents kann ich nur bei Sprites entdecken.
Ich möchte aber transparente PNGs in ein ImageGadget laden.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ImageGadget ein neues Bild geben

Beitrag von Kiffi »

(abgeändertes) Beispiel aus der PB-Hilfe:

Code: Alles auswählen

UsePNGImageDecoder()

OpenWindow(0, 0, 0, 245, 105, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

SetWindowColor(0, RGB(255,0,0))

If LoadImage(0, #PB_Compiler_Home + "Examples\Sources\Data\world.png")
	ImageGadget(0,  10, 10, 100, 83, ImageID(0))
EndIf

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Grüße ... Peter
a²+b²=mc²
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: ImageGadget ein neues Bild geben

Beitrag von stevie1401 »

Danke für dein Beispiel, leider findet der Compiler das Bild nicht, egal.
Ich habe ein anderes PNG-Bild genommen - und es funktioniert nicht.
Ich habe erst gedacht, der Befehl SetWindowColor(0, RGB(255,0,0)) hätte irgendeine Auswirkung, aber es ist vollkommen egal, welche Hintergrundfarbe das Fenster hat.
Wenn ich es richtig verstanden habe, langt folgender Befehl, um ein PNG-Image transparent darzustellen:

If LoadImage(0, bilderordner+"mario.png")
ImageGadget(0, 10, 10, 100, 83, ImageID(0))
EndIf

Nun habe ich so einige PNG-Images ausprobiert - sie haben dort, wo Transparenz sein soll, immer einen grauen Hintergrund.

Muss ich evtl an der IDE etwas einstellen?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ImageGadget ein neues Bild geben

Beitrag von Kiffi »

stevie1401 hat geschrieben:Danke für dein Beispiel, leider findet der Compiler das Bild nicht, egal.
das Bild ist Bestandteil einer regulären Installation.
stevie1401 hat geschrieben:Ich habe erst gedacht, der Befehl SetWindowColor(0, RGB(255,0,0)) hätte irgendeine Auswirkung
die rote Hintergrundfarbe habe ich gewählt, damit man den Transparenz-Effekt besser sehen kann.
stevie1401 hat geschrieben:Muss ich evtl an der IDE etwas einstellen?
Nein, musst Du nicht.

Welche PB-Version hast Du? Auf welchem OS entwickelst Du?

Grüße ... Peter
a²+b²=mc²
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: ImageGadget ein neues Bild geben

Beitrag von stevie1401 »

PB Version 530 (Demo)
Linux Ubuntu
24 Bit Grafiktiefe
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ImageGadget ein neues Bild geben

Beitrag von Kiffi »

stevie1401 hat geschrieben:PB Version 530 (Demo)
Linux Ubuntu
24 Bit Grafiktiefe
ok, dann müssen die Linuxer was dazu sagen. Unter Windows funktioniert es zumindest ohne Probleme.

Grüße ... Peter
a²+b²=mc²
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: ImageGadget ein neues Bild geben

Beitrag von stevie1401 »

Es muss am ImageGadget liegen.
Ich übe gerade das TreeGadget und dess Einträge.
Bei einem Treegarget kann man ja mit AddGadgetItem (GadgetID, -1, "ein Text", ImageID(NrDesGeladenenBildes), 0) ein Bild laden.
Dort funktioniert die Transparents.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: ImageGadget ein neues Bild geben

Beitrag von NicTheQuick »

Kiffi hat geschrieben:
stevie1401 hat geschrieben:Danke für dein Beispiel, leider findet der Compiler das Bild nicht, egal.
das Bild ist Bestandteil einer regulären Installation.
Nicht ganz. Der richtige Pfad ist "examples/sources/Data/world.png", zumindest unter Linux. Keine Ahnung, ob "Examples" und "Sources" unter Windows tatsächlich groß geschrieben werden. Dazu kommt ja noch, dass Windows Backslashes verwendet.

Nachtrag:
Im Übrigen wird bei mir auch keine Transparenz angezeigt. Das ist dann also entweder ein Bug oder geht nur zufällig unter Windows so.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ImageGadget ein neues Bild geben

Beitrag von Kiffi »

ach, diese CaseSensitive-Kiste bei Euch. Ok, daran kann es natürlich liegen.

@stevie1401, dann müsste das wohl so aussehen:

Code: Alles auswählen

If LoadImage(0, #PB_Compiler_Home + "examples/sources/Data/world.png")
  [...]
NicTheQuick hat geschrieben:Keine Ahnung, ob "Examples" und "Sources" unter Windows tatsächlich groß geschrieben werden.
ja, werden sie.

Grüße ... Peter
a²+b²=mc²
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: ImageGadget ein neues Bild geben

Beitrag von NicTheQuick »

Kiffi hat geschrieben:
NicTheQuick hat geschrieben:Keine Ahnung, ob "Examples" und "Sources" unter Windows tatsächlich groß geschrieben werden.
ja, werden sie.
Das ist dann aber zugegebenermaßen etwas dämlich von Fred. Warum ist das nicht OS-übergreifend gleich mit der Groß- und Kleinschreibung? Dann gehen ja auch die Beispiele in der Hilfe nicht, oder wird die Hilfe da für jedes OS nochmal extra angepasst? ;)
Antworten