- Online Community Forums » Programming Questions » Sprite loading problem

This thread is locked; no one can reply to it. rss feed Print
Sprite loading problem
Member #12,875
May 2011


I was searching for the answer in many places but nobody could help me yet. like this:

1al_init(); 2 ALLEGRO_DISPLAY *display = al_create_display(640, 480); 3 al_set_window_title(display, "Allegro 5"); 4 al_clear_to_color(al_map_rgba(0, 0, 0, 255)); 5 // koniec inicjalizacji okna - jest ok. 6 7 if(!al_init_image_addon()) 8 return -1; 9 10 if(!al_filename_exists("D:/C++/Allegro_drawing/Allegro_drawing/sprite.bmp")) 11 return -4; 12 13 if(!al_is_system_installed()) 14 return -5; 15 16 ALLEGRO_BITMAP *img = al_load_bitmap("sprite.bmp"); 17 if(!img) 18 return -2;

Sprite is in the internal directory named like the project (as you can see). It always ends returning -2. I included needed header files.
So what could possibly go wrong?

Member #7,859
October 2006

Member #12,875
May 2011

Windows xp home

It is not equal in theory, but it is also the directory where main.cpp is. When i load font this way it works.

Edgar Reynaldo
Major Reynaldo
May 2007

If you use a relative path like sprite.bmp, then you have to run the program from the same directory as sprite.bmp, or the same directory as your program, if they're the same.

Member #2,727
September 2002

You can set the current directory to where the executable is like this, if that's where your data is:

if (!appdir)
    return -6;
if (!al_change_directory(al_path_cstr(appdir)))
    return -7;

If that doesn't work, maybe the BMP file is an a weird format?

Member #12,875
May 2011

But when i do sth like:
it also doesn't load my sprite. Why is that? Its not a relative path then.

Member #5,313
December 2004

As Torhu mentioned, the BMP file could be in a wrong format. Try loading/saving it with MS Paint, and see if the problem persists.

Member #12,875
May 2011

Yeah, this totally worked :D
Thx, but one more question - if for example i'm using photoshop to edit pictures, with what parameters i should save them with?

Member #907
January 2001

According to this thread, somebody had similar problem with a 32bit BMP, 24bit was fine.
If you can provide a sample non-loading bitmap, Allegro coders can have a look at what's the problem with such images.

(edit: From looking at the source, the load routine will only accept some very specific R G B bitmasks... for 32bit, only ARGB order is accepted.)

Arthur Kalliokoski
Second in Command
February 2005

Photoshop should be able to save to .png or possibly .tga.

“Throughout history, poverty is the normal condition of man. Advances which permit this norm to be exceeded — here and there, now and then — are the work of an extremely small minority, frequently despised, often condemned, and almost always opposed by all right-thinking people. Whenever this tiny minority is kept from creating, or (as sometimes happens) is driven out of a society, the people then slip back into abject poverty. This is known as "bad luck.”

― Robert A. Heinlein

Member #12,875
May 2011

Thanks guyz ;)

Go to: