DIB-Format umdrehen



  • Hi,

    ich lade per SDL eine BMP und müsste sie umdrehen, hier meine Funktion:

    void load_texture(unsigned int *texture) 
    { 
    	SDL_Surface *texture_image(SDL_LoadBMP("Test.bmp")); 
    
    	unsigned int pixels = new unsigned int [texture_image->w*texture_image->h]; 
    
          for (int i=0; i<texture_image->w*texture_image->h; ++i)
          {
               pixels[i] = ((unsigned int*)texture_image->pixels)[int(texture_image->w*texture_image->h)-i];
          }
    
    	glGenTextures(1, texture); 
    	glBindTexture(GL_TEXTURE_2D, *texture); 
    	glTexImage2D(GL_TEXTURE_2D, 0, 3, texture_image->w, texture_image->h, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, pixels); 
    	SDL_FreeSurface(texture_image); 
    
    	delete pixels;
    
    	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
    	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 
    }
    

    Leider schmiert das programm ab und ich weis net wieso 😞 Wie drehe ich die BMP denn richtig rum?



  • *** schrieb:

    pixels[i] = ((unsigned int*)texture_image->pixels)[int(texture_image->w*texture_image->h)-i];

    Wenn i null ist, was ist dann der Index des Arrays? Er ist zu groß! Überleg mal...
    Ob's danach korrekt funktioniert, weiß ich nicht.
    Aber dieser Fehler war mir auf jeden Fall schonmal ins Auge gesprungen und dürfte für den Absturz verantwortlich sein.

    Außerdem muss es heißen:

    delete[] pixels;
    


  • und wie muss es richtig heißen? sorry bin noob 😞



  • *** schrieb:

    und wie muss es richtig heißen? sorry bin noob 😞

    ... - i - 1 ??



  • Sgt. Nukem schrieb:

    *** schrieb:

    und wie muss es richtig heißen? sorry bin noob 😞

    ... - i - 1 ??

    Da schmiert das Programm auch ab :(:(:(:(


  • Mod

    du lädst ein bmp
    das hat entweder 8 oder 24 bit
    somit erscheint es mir tödlich das du mit unsigned int indizierst.

    rapso->greets();



  • Der ist bestimmt kein Faker... dazu sieht das Problem zu "real" aus.
    Tipp: das "- 1" muss woanders hin 😃



  • Hi

    rapso, was verpsrichst du Dir eigentlich, wenn du Fakern antwortest?

    rapso und TomasRiker sind wenigstens so nett und geben nicht mit seinem Wissen an sondern helfen damit, was du anscheinend nie lernen wirst.

    @rapso & Tomas
    Danke für die Hilfe ich hab das -1 an jede mir erdenkliche Position gesetzt doch es will einfach nicht richtig funktionieren, immer stürzt das Programm ab :(:(:(


Anmelden zum Antworten