Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: SDL, PNG kuvan lataus...

Sivun loppuun

teenix [25.06.2008 17:50:25]

#

.. Ei jostain syystä toimi minulla, vaikka mielestäni olen tehnyt kaikki oikein :<

Voisiko joku kertoa miten se tehdään, itselläni on näin;

   png = IMG_Load("data/gfx/tesmi.PNG");

TsaTsaTsaa [25.06.2008 17:54:24]

#

Jos sdl_image-kirjasto on hommassa mukana ja png on tyyppiä SDL_Surface* ja kuvan polku on oikein, pitäisi kyllä toimia.

teenix [25.06.2008 17:55:21]

#

Niinhän sen pitäs muttakun ei toimi. Itsekkin ihmettelen asiaa, laitoin vielä varmuuden vuoksi näin;

-lmingw32 -lSDLmain -lSDL
../lib/SDL_ttf.lib
../lib/libSDL_Image.a
../lib/libSDL_mixer.dll.a
../lib/dll/lua5.1.lib
../lib/libpng.lib
../lib/libz.a
../lib/libjpeg.dll.a


Lisätääneen vielä että erroreita ei tule, vaan kuva ei näy ja se on NULL

Blaze [25.06.2008 18:35:02]

#

IMG_Load() palauttaa NULLin silloin kun kuvan lataus epäonnistuu jostain syystä. Saat tarkemman virheilmoituksen IMG_GetError()-funktiolla.

png = IMG_Load("data/gfx/tesmi.PNG");
if(png == NULL)
  printf("kuvan lataus epäonnistui: %s\n", IMG_GetError());

teenix [25.06.2008 18:36:37]

#

kuvan lataus epäonnistui: SDL_UpperBlit: passed a NULL surface

Että näin. Kuva on olemassa :o

TsaTsaTsaa [25.06.2008 19:22:47]

#

Pitääkös tuo polku windows-puolella ilmoittaa näin: "data\\gfx\\tesmi.PNG"?

vidar [25.06.2008 19:29:17]

#

TsaTsaTsaa kirjoitti:

Pitääkös tuo polku windows-puolella ilmoittaa näin: "data\\gfx\\tesmi.PNG"?

Ei, / on suositeltavampi. http://www.parashift.com/c -faq-lite/input-output.html#faq-15.16

Metabolix [26.06.2008 10:27:50]

#

Ohjelmasi työhakemisto (working dir) ei välttämättä ole sama kuin binaarin hakemisto, jolloin ohjelma etsii kuvaa väärästä paikasta. Tarkista tämä. Kulloinenkin hakemisto selviää käyttöjärjestelmäriippuvaisilla funktiokutsuilla, joita en tähän hätään osaa ulkoa. ;)


Sivun alkuun

Vastaus

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

Tietoa sivustosta