Miten voisin pyöritellä rotozoomilla kuvaa jossa on mustaa?
Alpha-kanavaa en halua käyttää koska mun rauta ei tue kiihdytettyä semmoista :S Ilmeisesti Rotozoom haluaa aina luoda juuri uuden mustan pinnan?
Ainii joo - haluaisin tietenkin sen uuden pinnan turhan alueen läpinäkyväksi :D
Onko kyse nyt jostain kirjastosta? Rotozoom on nimittäin ihan yleinen menetelmä, ja sellaisen voi ihan helposti koodata itsekin. Ei mustan kuvan pyörittämisessä pitäisi olla mitään sen kummallisempaa kuin minkään muunkaan värin pyörittämisessä.
Kieli olisi myös kiva tietää.
no okei:
Kirjasto SDL_gfx ja kieli C++. Minulla on kuva missä on mustaa väriä, ja haluan sen semmoisenaan blitata ruudulle. SDL_gfx kirjaston rotozoomSurface() luo ensin uuden mustan pinnan ja sitten piirtää siihen pyöritetyn ja zoomatun kuvan. Haluan sen uuden pinnan mustan alueen sillee läpinäkyväksi että sitä ei blitata. Ongelma on se että sitten siitä alkuperäisestäkin kuvasta tulee osittain läpinäkyvä.
Voithan asettaa läpinäkyvyyden SDL_SetColorKey
llä: SDL_SetColorKey(uusi_pinta, SDL_SRCCOLORKEY, 0);
Mutta eikös siitä alkuperäisen kuvan mustista kohdista tule sillon läpinäkyvä?
Uskaltaisin väittää, että SDL ei edelleenkään käytä juuri mitään laitteistokiihdytystä. Ainakaan SDL_gfx:n lähdekoodista ei löytynyt mitään viitteitä sellaiseen. Et siis menetä mitään käyttämällä alphakanavaa.
Helpoin vaihtoehto olisi varmaankin ladata rotozoomerin lähdekoodi ja muokata funktiot omaan tarpeeseen sopiviksi eli lisätä vaikkapa parametri, jolla määrää pinnan värin. Itse tein tällaisen ratkaisun vaikkakin aivan eri tarkoitukseen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.