Seite 2 von 4
Re: ImageGadget ein neues Bild geben
Verfasst: 20.10.2014 23:36
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.
Re: ImageGadget ein neues Bild geben
Verfasst: 20.10.2014 23:52
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
Re: ImageGadget ein neues Bild geben
Verfasst: 21.10.2014 08:31
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?
Re: ImageGadget ein neues Bild geben
Verfasst: 21.10.2014 08:57
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
Re: ImageGadget ein neues Bild geben
Verfasst: 21.10.2014 09:42
von stevie1401
PB Version 530 (Demo)
Linux Ubuntu
24 Bit Grafiktiefe
Re: ImageGadget ein neues Bild geben
Verfasst: 21.10.2014 09:49
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
Re: ImageGadget ein neues Bild geben
Verfasst: 21.10.2014 10:32
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.
Re: ImageGadget ein neues Bild geben
Verfasst: 21.10.2014 11:23
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.
Re: ImageGadget ein neues Bild geben
Verfasst: 21.10.2014 11:36
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
Re: ImageGadget ein neues Bild geben
Verfasst: 21.10.2014 11:47
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?
