Da Sie dies nicht angegeben haben, nehme ich an, dass Sie SDL_image
verwenden, um Bilder zu laden. Daher ist IMG_Load
ein guter Kandidat, von dem zu diskutieren ist.
Wie Sie aus dem Link sehen können, gibt es eine SDL_Surface
(die Sie wahrscheinlich in eine Textur konvertieren möchten, aber Sie müssen das nicht tun, um seine Pixel zu lesen).
Mit einem solchen Objekt, das Sie verwenden können:
* SDL_LockSurface
:
Verwenden Sie diese Funktion, um eine Fläche zur Einrichtung für die Pixel direkt zugreifen.
* SDL_UnlockSurface
:
Verwenden dieser Funktion, eine Oberfläche zu lösen, nachdem die Pixel direkt Zugriff.
Die Dokumentation auch fest, dass:
Zwischen Anrufe SDL_LockSurface()/SDL_UnlockSurface(), können Sie schreiben und lesen von Aufputz-> Pixel, gespeichert, um die Pixel-Format in Aufputz-> Format.
Pixel und Format sind beide zu Ihrer Verfügung. Es sieht nach einem guten Kandidaten aus, um das zu tun, was Sie verlangen.
Aber ...
Ich möchte ein PNG-Bild laden, [...]
Beachten Sie, dass IMG_LoadPNG_RW
gibt ein SDL_Surface
sowie IMG_Load
.
Irgendein besonderer Grund warum SDL? –