juillet
2007
Introduction :
Qui n’a jamais été frustré de devoir convertir ses images en *.bmp pour les utiliser en SDL ?
Heuresement une solution éxiste : SDL_Image !
SDL_Image est une des nombreuses extensions « gadgets » de la SDL.
SDL_Image permet d’ouvrir de charger et d’afficher des images de plusieurs formats :
– BMP
– GIF
– JPEG
– LBM
– PCX
– PNG
– PNM
– TGA
– TIFF
– XCF
– XPM
– XV
Et ceci très facilement…
Téléchargement :
La page de téléchargement de SDL_Image est ici.
Séléctionnez la librairie correspondant à votre OS dans la catégorie Binary :
– Linux -> Pour Linux le lien directe est celui-ci.
– Windows -> Pour windows peu importe votre compilateur prennez le package SDL_image-devel-1.2.5-VC6.zip, c’est par là.
– MacOSX -> C’est ici.
– MacOS Classic -> C’est là.
Installation :
Une fois téléchargée vous trouverez dans votre dossier(de divers formats selon les OS) :
– plusieurs *.dll que vous devez tous copier-coller et placer dans le dossier de votre projet.
– SDL_image.h le seul header de SDL_Image, que vous placez avec les autres headers de la SDL, sous Code::Blocks :
CodeBlocks/mingw32/include/SDL/
Sous Visual ou Dev-C++ la manipulation est quasiment la même au nom du dossier prés.
– SDL_image.lib, la librairie avec laquel vous devrez linker pour vos projets utilisant SDL_Image. Placez là dans le sous dossiers lib du dossier de votre compilateur, sous Code::Blocks avec mingw32 comme compilateur :
/CodeBlocks/mingw32/lib/
Ensuite indiquez que vous linker avec SDL_Image.lib.
Sous Code::Blocks :
Project / Build Option
Onglet Linker, bouton Add ensuite bouton … et séléctionnez SDL_Image.lib.
Utilisation :
une fois que vous avez informez le linker qu’il fallait linker avec la librairie SDL_Image.lib vous devez pour commencer ajouter cette ligne pour utiliser SDL_Image :
#include <SDL/SDL_image.h>
Ensuite il n’y a qu’une fonction dont voici le prototype :
IMG_Load(char * file);
Elle ne prend qu’une seul argument : le nom du fichier a ouvrir !
SDL_Image se charge aussi d’ouvrir les *.bmp donc adieu SDL_LoadBMP !
De plus si l’image que vous chargez gère la transparence (comme c’est le cas des PNG et des GIF), alors SDL_image activera automatiquement la transparence pour cette image ! Cela vous évite donc d’avoir à appeler SDL_SetColorKey.
Ensuite vous n’avez plus qu’a Blitter votre surface avec SDL_BlitSurface
Conclusion :
Quoi c’est déjà fini ?
eh oui ce n’était pas bien compliqué, un seul défaut pour moi :
Le grand nombre de *.dll à garder avec le fichier.