Elikkä aloittelin käyttämään sdl_image kirjastoa joka sujuu jo muuten ihan hyvin mutta miten saan png kuvan tietyn värin läpinäkyväksi?
Löysin haulla SDL_SetAlpha komennon, mutta en tajua miten sitä käytetään. Voisiko joku valaista :)?
Sain toimimaan.
Jos joku tulevaisuudessa ihmettlee samaa hommaa, niin asia hoituu (ainakin minulla :) niin, että "kumittaa" (eraser-työkalu paint.NETissä) alueet mitkä tahtoo läpinäkyviksi.
Oikea funktio on
int SDL_SetColorKey(SDL_Surface *surface, Uint32 flag, Uint32 key);
Esimerkki käytöstä löytyy ihan ohjelmointiputkan SDL-oppaan toisesta osasta.
Käsittääksni SDL_SetColorKey toimii vain bmp-kuvien kanssa.
rndprogy kirjoitti:
Käsittääksni SDL_SetColorKey toimii vain bmp-kuvien kanssa.
ja olet oikeassa :)
En tiedä miten te tapaatte blitata kuvanne, mutta kyllä minä ole aina käyttänyt SDL_SetColorKey-funktiota IMG_Load-funktiolla SDL_Surface-pinnalle ladattujen "png"-kuvien kanssa.
PNG kuvaan voi kuvankäsittelyohjelmalla muokata itselleen sopivan läpinäkyvyyden, osittaisen tai kokonaan läpinäkyvän. En tiedä miten SDL reagoi siihen, teoriassa ohjelmoijan ei tarvitsisi edes tietää mikä on läpinäkyvä väri kuvassa kun vaan laittaa alphan käytön päälle (?). MSpaint mm. on ohjelma jolla ei voi tallentaa alpha-kanavoitua PNG:tä.
PNG-kuvassa on mahdollista käyttää myös avainväriläpinäkyvyyttä vaihtoehtona Alpha-läpinäkyvyydelle.
Aihe on jo aika vanha, joten et voi enää vastata siihen.