Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: SDL-screenshot

Resiina [20.03.2007 22:25:23]

#

Pystyykö SDL:llä ottamaan screenshottia ohjelmasta jotenkin?
Niinkun että sen vois vaikka tallentaa kuvapintaan tyyliin:

SDL_Surface *screenshot = OtaKuva(naytto);

Metabolix [20.03.2007 22:33:37]

#

Omasta ohjelmastaan? Tietenkin, voit luoda uuden pinnan (SDL_CreateRGBSurface) ja blitata sinne ohjelmasi pääpinnan. Kokoruudulta ei voi, kun se ei ole SDL:n omaisuutta. Silloin täytyy tukeutua kulloisenkin alustan tarjoamiin vaihtoehtoihin.

Lahha [20.03.2007 23:23:21]

#

Omasta ohjelmasta saa screenshotin helpoiten SDL_SaveBMP funktiolla.

SDL_SaveBMP(nayttopinta, "kuvatiedostonnimi.bmp");

Palauttaa 0 jos onnistui.

Varaosa [21.03.2007 09:43:30]

#

Täsä samaa olen itsekkin kysynyt vasta, jos kun saisin toimimaan sen niin tämäkin kävisi, jos ja kun...

Resiina [21.03.2007 14:27:03]

#

Mitenkäs tätä SDL_CreateRGBSurface:a sitten käytetään?
Millaisella koodinpätkällä tallennan SDL_Surface *screenshot -kuvapintaan nayton?

Heikki [21.03.2007 15:05:45]

#

SDL-oppaan kakkososassa neuvotaan, miten kuvapintoja voi piirtää toisiin:

// Kopioidaan ihan yläkulmaan se pinta
SDL_Rect alue;
alue.x = 0;
alue.y = 0;
SDL_BlitSurface(lahdepinta, NULL, kohdepinta, &alue);

Tässä lahdepinta voi olla vaikka näyttöpinta ja kohdepinta luotu tuolla SDL_CreateRGBSurface-funktiolla. Funktion toiminnasta on kerrottu SDL:n dokumentaatiossa.

Helpoin tapa kuvakaappaukseno ttamiseen on kuitenkin tuo Lahhan kertoma SDL_SaveBMP, joka tallentaa pinnan suoraan bmp-tiedostoon.

Resiina [21.03.2007 16:13:49]

#

Sain toimimaan jee kiitos ohjeista :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta