Pixelfarbe aus *.Bmp auslesen



  • hallo ,
    ich arbeite gerade an einen kleinen Rennspiel in C++ . Hierfür
    benutze ich SDL . Bei den Kollisionsabfragen kam mir dann die Ideen , dass
    man die Pixelfarbe aus einer Bilddatei auslesen könnte (auf weißen Pixeln darf man fahren , auf schwarzen nicht). Nun habe ich jedoch keine Ahnung wie man das machen sollte , und weiss auch nicht , ob dass wirklich die beste Idee für so etwas ist.

    (Schonmal danke vorher)



  • Vielleicht hilf dir das: http://en.wikipedia.org/wiki/BMP_file_format
    Der Aufbau einer .bmp-Datei ist beschrieben, was dir ermöglicht notwendige Pixelinformationen auszulesen.



    1. Bild laden: SDL_LoadBMP
    2. Bild in ein bekanntes Format konvertieren (z.B. SDL_PIXELFORMAT_BGRA8888) : SDL_ConvertSurfaceFormat
    3. Bilddaten auslesen ( SDL_Surface::w, h, pitch, pixels )
    4. Party


  • Als ich auf google mal nach einer lösung gesucht habe bin ich auf die biliotheken
    QImage und FreeImage gestoßen , wären die denn dafür eventuell geeignet ?



  • Ja, kannst du beide verwenden.
    Wenn du aber eh schon SDL verwendest, und ich dir eh schon geschrieben habe wie es mit SDL geht...
    😕



  • Wenn du aber eh schon SDL verwendest, und ich dir eh schon geschrieben habe wie es mit SDL geht...

    Wozu ne einfache Lösung wenn man es sich auch schwer machen kann ? 🤡

    Wobei ich ein Bild zur Kollisionsabfrage nicht unbedingt empfehlen würde, aber für den Anfang sollte es gehen.



  • DarkShadow44 schrieb:

    Wobei ich ein Bild zur Kollisionsabfrage nicht unbedingt empfehlen würde, aber für den Anfang sollte es gehen.

    Wenn das Project ein 2D Sidescroller nur mit Tiles oder Bilder, dann ist genau das der richtige Weg.



  • Ich habe es eben gerade mit SDL 1.2 probiert ein SDL_Surface mit SDL_ConvertSurfaceFormat in RGBA8888 umzuwandeln allerdings wird mir dann angezeigt dass SDL_ConvertSurfaceFormat und SDL_Pixelformat_RGBA8888 nicht definiert sind , obwohl ich SDL undSDL_Image includiert habe



  • Hast du SDL_pixels.h includiert?



  • funktioniert jetzt alles ,ich habe einfach SDL_GetRGB genommen und alles lauft super


Log in to reply