Seite 1 von 1

PNG mit Alphachannel

Verfasst: 07.12.2008 21:56
von hörmi
hey,
wollte mal fragen ob ihr wisst wie ich unter purebasic ein png bild mit alphachannel erstellen kann bzw ob es überhaupt möglich ist ein png bild zu erstellen

Verfasst: 09.12.2008 10:40
von Dare Devil
Der Alpha-Kanal wird momentan noch nicht unterstuetzt (evtl. mit einer externen Bibliothek wie z.B. FreeImage oder was es da alles gibt) - ansonsten kann man in PB ImageObjekte auch als PNG speichern, mit SaveImage(). Es muss nur UsePNGImageEncoder() vorher ausgefuehrt werden. Damiit koennte man sich auf sehr leichtem Wege einen Konverter basteln :)
PB Hilfe hat geschrieben:Die PNG Alphachannel Information (wenn vorhanden) wird derzeit ignoriert.

Verfasst: 09.12.2008 11:20
von ZeHa
Kommt auch drauf an was Du vor hast. Wenn Du Spiele machen willst, kannst Du PNGs mit Alphakanal nutzen, nämlich in Verbindung mit Sprite3D, da läuft das ohne Probleme.

Verfasst: 09.12.2008 17:40
von hörmi
Dare Devil hat geschrieben:
PB Hilfe hat geschrieben:Die PNG Alphachannel Information (wenn vorhanden) wird derzeit ignoriert.
Ich möchte ein png mit alphachannel abspeichern
also ich hab ein bitmap/jpeg mit dem bild und dann ein zweites in graustufen sozusagen als alphakanal und dann möchte ich aus diesen zwei bildern eins machen und dann speichern ohne es weiter in pb selbst zu verwenden

Verfasst: 09.12.2008 18:50
von Kaeru Gaman
schau mal im englischen forum, da gibts einige beispiele wie man über API direkt auf die bilder zugreifen kann.

Dare Devil hat geschrieben:
PB Hilfe hat geschrieben:Die PNG Alphachannel Information (wenn vorhanden) wird derzeit ignoriert.
wär noch interessant zu wissen bei welchem befehl du das gefunden hast,
ist nämlich so längst nicht mehr aktuell.
für Sprite3D kann man den Alphachannel einwandfrei benutzen.
http://www.purebasic.fr/german/viewtopi ... 771#207771

... in wieweit allerdings bei einem Image die 32bit korrekt abspeicherbar sind, weiß ich jetzt nicht.
aber wie gesagt, die jungs im englischen forum haben sich damit schon mehr auseinandergesetzt.

Verfasst: 09.12.2008 19:29
von Dare Devil
Kaeru Gaman hat geschrieben:schau mal im englischen forum, da gibts einige beispiele wie man über API direkt auf die bilder zugreifen kann.

Dare Devil hat geschrieben:
PB Hilfe hat geschrieben:Die PNG Alphachannel Information (wenn vorhanden) wird derzeit ignoriert.
wär noch interessant zu wissen bei welchem befehl du das gefunden hast,
ist nämlich so längst nicht mehr aktuell.
für Sprite3D kann man den Alphachannel einwandfrei benutzen.
http://www.purebasic.fr/german/viewtopi ... 771#207771

... in wieweit allerdings bei einem Image die 32bit korrekt abspeicherbar sind, weiß ich jetzt nicht.
aber wie gesagt, die jungs im englischen forum haben sich damit schon mehr auseinandergesetzt.
Unter den Befehlen UsePNGImageDecoder() sowie bei UsePNGImageEncoder().

wobei ich gerade lese, dass wenn man ein Sprite (nicht 3D-Sprite!) mit dem zusaetzlichen Flag "#PB_Sprite_Alpha" laedt, man eine 8 Bit - Graustufendatei mit DisplayAlphaSprite() (wie sie vermutlich auch hoermi besitzt) anzeigen kann.
Damit waere hoermi's Problem eigentlich zu bewaeltigen. Man laedt die normale Datei, die Graustufendatei, erstellt ein Image - zeigt alles an so wie man es gespeichert haben will und speichert anschliessend das Image - allerdings halt ohne direkten Alpha-Kanal, sondern sozusagen als "Snapshot".