Renvoie les données internes de l'image.
Cette fonction renvoie un pointeur vers la structure de donnée de la libriaire SDL codant une image.
N'utilisez cette fonction que si vous souhaitez effectuer une opération sur une image qui n'existe pas dans la bibliothèque MLV. En effet, modifier les données internes d'une image de type MLV_Image peut corrompre le fonctionnement de la bibliothèque MLV.
Vous pouvez alors utiliser les routines de la lirairie SDL pour modifier l'image. (http://libsdl.org)
Voici un exemple de code montrant comment il est possible de récupérer les composantes rouge, vert, bleu et alpha du pixel (3,4) de l'image.
3 SDL_Surface* surface = MLV_get_image_data( image );
4 Uint32 red, blue, green, alpha;
6 // Extracting color components from a 32-bit color value
10 SDL_LockSurface(surface);
11 fmt = surface->format;
12 pixel = *(((Uint32*) surface->pixels)+ y*surface->pitch/4 + x );
15 red = pixel & fmt->Rmask; // Isolate red component
16 red = red >> fmt->Rshift; // Shift it down to 8-bit
17 red = red << fmt->Rloss; // Expand to a full 8-bit number
19 // Get Green component
20 green = pixel & fmt->Gmask; // Isolate green component
21 green = green >> fmt->Gshift; // Shift it down to 8-bit
22 green = green << fmt->Gloss; // Expand to a full 8-bit number
25 blue = pixel & fmt->Bmask; // Isolate blue component
26 blue = blue >> fmt->Bshift; // Shift it down to 8-bit
27 blue = blue << fmt->Bloss; // Expand to a full 8-bit number
29 // Get Alpha component
30 alpha = pixel & fmt->Amask; // Isolate alpha component
31 alpha = alpha >> fmt->Ashift; // Shift it down to 8-bit
32 alpha = alpha << fmt->Aloss; // Expand to a full 8-bit number
34 MLV_unlock_image( image );