Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro 5.0.10.] Problem z wczytywaniem bitmap.

Ostatnio zmodyfikowano 2013-08-15 17:54
Autor Wiadomość
maniek266
Temat założony przez niniejszego użytkownika
[Allegro 5.0.10.] Problem z wczytywaniem bitmap.
» 2013-08-15 16:09:01
Cześć!
Mam problem z wczytywaniem bitmap (w tym wypadku png, ale z bmp dzieje się tak samo) tutaj prosty kod:
C/C++
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
#include <allegro5/allegro_native_dialog.h>

int main( int argc, char ** argv ) {
   
    ALLEGRO_DISPLAY * display = NULL;
    ALLEGRO_BITMAP * image = NULL;
   
    if( !al_init() ) {
        al_show_native_message_box( display, "Error", "Error", "Failed to initialize allegro!",
        NULL, ALLEGRO_MESSAGEBOX_ERROR );
        return 0;
    }
    if( !al_init_image_addon() ) {
        al_show_native_message_box( display, "Error", "Error", "Failed to initialize al_init_image_addon!",
        NULL, ALLEGRO_MESSAGEBOX_ERROR );
        return 0;
    }
   
    display = al_create_display( 800, 600 );
   
    if( !display ) {
        al_show_native_message_box( display, "Error", "Error", "Failed to initialize display!",
        NULL, ALLEGRO_MESSAGEBOX_ERROR );
        return 0;
    }
   
    image = al_load_bitmap( "image.png" );
   
    if( !image ) {
        al_show_native_message_box( display, "Error", "Error", "Failed to load image!",
        NULL, ALLEGRO_MESSAGEBOX_ERROR );
        al_destroy_display( display );
        return 0;
    }
   
    al_draw_bitmap( image, 200, 200, 0 );
   
    al_flip_display();
    al_rest( 2 );
   
    al_destroy_display( display );
    al_destroy_bitmap( image );
   
    return 0;
}
Po prostu wyrzuca mi Error "Failed to load image!".
Odpowiadając już na możliwe pytania:
1. Tak, bitmapa jest w tym samym folderze, i ma taką nazwę.
2. Tak, podlinkowałem dll-ki
3. Używam Dev-a 5.4.2.

Z góry dzięki za pomoc :)
P-90348
pekfos
» 2013-08-15 16:10:26
Jaki problem?
P-90349
maniek266
Temat założony przez niniejszego użytkownika
» 2013-08-15 16:43:10
Już napisałem: nie może wczytać bitmapy. :/
P-90355
Gabes
» 2013-08-15 16:58:06
"Tak, bitmapa jest w tym samym folderze", a czy jest obok utworzonego pliku wykonywalnego .exe?
Dodajesz nagłówek,inicjujesz bitmapy, błędu żadnego nie widzę, może jednak nieprawidłowa bitmapa otwierałeś w jakimś programie graficznym bo samo rozszerzenie to nie wszystko mogę sobie obrazek.mp3 zapisać jako obrazek.bmp.
Szukamy rozwiązania tak że nie dziw się banalnym pytaniom.  
P-90356
pekfos
» 2013-08-15 17:06:25
Uruchamiasz program z exe, czy Deva?
P-90359
maniek266
Temat założony przez niniejszego użytkownika
» 2013-08-15 17:07:55
@Gabes
Testowałem kilka bmp i png z Painta i z Gimpa (zwykle małe, pomazane prosokąty :) ) wrzucane obok pliku exe
P-90360
maniek266
Temat założony przez niniejszego użytkownika
» 2013-08-15 17:10:46
@pekfos
W obu wariantach dzieje się to samo :|
P-90361
Gabes
» 2013-08-15 17:21:12
A utworzenie w pamięci bitmapy?
C/C++
#include <allegro5/allegro.h>
int main()
{
    al_init();
    al_install_keyboard();
    ALLEGRO_KEYBOARD_STATE key_state;
    ALLEGRO_DISPLAY * okno = al_create_display( 320, 240 );
    ALLEGRO_BITMAP * kwadrat = al_create_bitmap( 40, 40 );
    al_set_target_bitmap( kwadrat );
    al_clear_to_color( al_map_rgb( 255, 255, 0 ) );
    al_set_target_bitmap( al_get_backbuffer( okno ) );
    while( !al_key_down( & key_state, ALLEGRO_KEY_ESCAPE ) )
    {
        al_get_keyboard_state( & key_state );
        al_clear_to_color( al_map_rgb_f( 0.5, 0.5, 0.5 ) );
        al_draw_bitmap( kwadrat, 10, 10, 0 );
        al_flip_display();
    }
    al_destroy_bitmap( kwadrat );
    al_destroy_display( okno );
    return 0;
}
Kod jest poprawny, dla uproszczenia nie sprawdzam inicjowania.
P-90362
« 1 » 2
  Strona 1 z 2 Następna strona