Ce fichier définit tous les prototypes concernant les fonctions permettant d'insérer des images. Plus de détails...
Aller au code source de ce fichier.
Définition de type | |
typedef struct _MLV_Image | MLV_Image |
Définit le type Image dans la librairie MLV. | |
Fonctions | |
MLV_Image * | MLV_load_image (const char *file_image) |
Charge en mémoire une image contenue dans un fichier. | |
int | MLV_save_image_as_bmp (const MLV_Image *image, const char *file_image) |
Sauvegarde une image dans une fichier BMP. | |
MLV_Image * | MLV_create_image (int width, int height) |
Créer une image de composante alpha Opaque. | |
void | MLV_free_image (MLV_Image *image) |
Libère la mémoire utilisée par l'image. | |
MLV_Image * | MLV_copy_image (MLV_Image *image) |
Copie une image. | |
MLV_Image * | MLV_copy_partial_image (MLV_Image *image, int x, int y, int width, int height) |
Copie une partie de l'image. | |
void | MLV_get_image_size (MLV_Image *image, int *width, int *height) |
Retourne la taille d'une image donnée. | |
int | MLV_get_image_width (MLV_Image *image) |
Retourne la largeur d'une image donnée. | |
int | MLV_get_image_height (MLV_Image *image) |
Retourne la hauteur d'une image donnée. | |
void | MLV_resize_image (MLV_Image *image, int width, int height) |
Redimensionne l'image en ne repsectant pas les proportions de l'image originale. | |
void | MLV_vertical_image_mirror (MLV_Image *image) |
Modifie l'image en réalisant une réflexion verticale. | |
void | MLV_horizontal_image_mirror (MLV_Image *image) |
Modifie l'image en réalisant une réflexion horizontale. | |
void | MLV_resize_image_with_proportions (MLV_Image *image, int width, int height) |
Redimensionne l'image en repsectant les proportions de l'image originale. | |
void | MLV_scale_image (MLV_Image *image, double scalar) |
Modifie l'image à l'aide d'une homotétie ( Etire l'image ). | |
void | MLV_rotate_image (MLV_Image *image, double rotation) |
Effectue une rotation sur une image donnée. | |
void | MLV_rotate_and_scale_image (MLV_Image *image, double rotation, double scalar) |
Effectue une rotation suivie d'une homotétie. | |
void | MLV_scale_xy_image (MLV_Image *image, double scalar_x, double scalar_y) |
Étire l'image suivant l'axe X et l'axe Y avec des coéefficients de proportionnalité différents pour les deux axes. | |
void | MLV_rotate_and_scale_xy_image (MLV_Image *image, double rotation, double scalar_x, double scalar_y) |
Effectue une rotation, puis étire l'image suivant l'axe X et l'axe Y avec des coéefficients de proportionnalité différents pour les deux axes. | |
void | MLV_draw_image (MLV_Image *image, int x, int y) |
Dessine une image donnée à une position donnée de la fenêtre. | |
void | MLV_draw_partial_image (MLV_Image *image, int x_source, int y_source, int width_source, int height_source, int x, int y) |
Dessine une partie d'une image donnée à une position donnée sur la fenêtre. | |
void | MLV_set_alpha_on_image (MLV_Alpha alpha, MLV_Image *image) |
Ajuste La composante alpja de l'image est remplacée par une composante alpha homogene dont la valeur est donnée en paramètre. | |
void | MLV_set_pixel_on_image (int x, int y, MLV_Color color, MLV_Image *image) |
Écrase les composantes rouge, bleue, vert et alphe d'un pixel par celles passées en paramètre de la fonction. | |
void | MLV_get_pixel (int x, int y, int *red, int *green, int *blue, int *alpha) |
Renvoie la couleur du pixel de l'écran pour une position donnée. | |
void | MLV_get_pixel_on_image (MLV_Image *image, int x, int y, int *red, int *green, int *blue, int *alpha) |
Renvoie la couleur du pixel présent à une position donnée d'une image donnée. | |
void | MLV_draw_partial_image_on_image (const MLV_Image *source_image, int source_x, int source_y, int width, int height, const MLV_Image *destination_image, int destination_x, int destination_y) |
Dessine une image dans une image destination. | |
void | MLV_draw_image_on_image (const MLV_Image *source_image, const MLV_Image *destination_image, int destination_x, int destination_y) |
Dessine une image dans une image destination. | |
SDL_Surface * | MLV_get_image_data (MLV_Image *image) |
Renvoie les données internes de l'image. |
Ce fichier définit tous les prototypes concernant les fonctions permettant d'insérer des images.
Copie une image.
Cette fonction créé une nuovelle image qui est la copie conforme de l'image passée en paramètre. La gestion de la mémoire de l'image créée est laissée à l'utilisateur.
image | L'image à copier. |
Copie une partie de l'image.
Cette fonction créé une nuovelle image qui est la copie conforme d'une partie de l'image passée en paramètre. La gestion de la mémoire de l'image créée est laissée à l'utilisateur.
image | L'image à copier. | |
x | Abscisse du sommet Nord-Ouest de la partie de l'image à copier | |
y | Ordonnée du sommet Nore-Ouest de la partie de l'image à copier | |
width | Largeur de la partie de l'image à copier | |
height | Hauteur de la partie de l'image à copier |
MLV_Image* MLV_create_image | ( | int | width, | |
int | height | |||
) |
Créer une image de composante alpha Opaque.
width | largeur de l'image | |
height | hauteur de l'image |
void MLV_draw_image | ( | MLV_Image * | image, | |
int | x, | |||
int | y | |||
) |
Dessine une image donnée à une position donnée de la fenêtre.
image | Image à déessiner. | |
x | Coordonnée en X de la position dans la fenêtre de sommet Nord-Ouest de l'image | |
y | Coordonnée en Y de la position dans la fenêtre du sommet Nord-Ouest de l'image |
void MLV_draw_image_on_image | ( | const MLV_Image * | source_image, | |
const MLV_Image * | destination_image, | |||
int | destination_x, | |||
int | destination_y | |||
) |
Dessine une image dans une image destination.
source_image | image source | |
destination_image | image destination | |
destination_x | Abscisse de la position ou devra être recopier l'image. Il s'agit de la futur position du sommet nord-Ouest de la portion d'image à recopié. | |
destination_y | Ordonnée de la position ou devra être recopier l'image. Il s'agit de la futur position du sommet nord-Ouest de la portion d'image à recopié. |
void MLV_draw_partial_image | ( | MLV_Image * | image, | |
int | x_source, | |||
int | y_source, | |||
int | width_source, | |||
int | height_source, | |||
int | x, | |||
int | y | |||
) |
Dessine une partie d'une image donnée à une position donnée sur la fenêtre.
image | L'image à afficher sur la fenetre | |
x_source | La coordonnée en X du sommet Nord-Ouest de la partie de l'image à afficher dans la fenêtre. | |
y_source | La coordonnée en Y du sommet Nord-Ouest de la partie de l'image à afficher dans la fenêtre. | |
width_source | La largeur de la partie de l'image à afficher dans la fenetre. | |
height_source | La hauteur de la partie de l'image à afficher dans la fenetre. | |
x | Coordonnée en X de la position dans la fenetre du sommet Nord-Ouest de la partie de l'image à afficher. | |
y | Coordonnée en Y de la position dans la fenetre du sommet Nord-Ouest de la partie de l'image à afficher. |
void MLV_draw_partial_image_on_image | ( | const MLV_Image * | source_image, | |
int | source_x, | |||
int | source_y, | |||
int | width, | |||
int | height, | |||
const MLV_Image * | destination_image, | |||
int | destination_x, | |||
int | destination_y | |||
) |
Dessine une image dans une image destination.
source_image | image source | |
source_x | Abscisse du sommet nord-Ouest de la position de la portion d'image à recopié | |
source_y | Ordonné du sommet nord-Ouest de la position de la portion d'image à recopié | |
width | Largeur de la position à recopier | |
height | Hauteur de la position à recopier | |
destination_image | image destination | |
destination_x | Abscisse de la position ou devra être recopier l'image. Il s'agit de la futur position du sommet nord-Ouest de la portion d'image à recopié. | |
destination_y | Ordonnée de la position ou devra être recopier l'image. Il s'agit de la futur position du sommet nord-Ouest de la portion d'image à recopié. |
void MLV_free_image | ( | MLV_Image * | image | ) |
Libère la mémoire utilisée par l'image.
image | Image à supprimer de la mémoire |
SDL_Surface* MLV_get_image_data | ( | MLV_Image * | image | ) |
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.
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.
int x=3, y=4; SDL_Surface* surface = MLV_get_image_data( image ); Uint32 red, blue, green, alpha; // Extracting color components from a 32-bit color value SDL_PixelFormat *fmt; Uint32 pixel; SDL_LockSurface(surface); fmt = surface->format; pixel = *(((Uint32*) surface->pixels)+ y*surface->pitch/4 + x ); // Get Red component red = pixel & fmt->Rmask; // Isolate red component red = red >> fmt->Rshift; // Shift it down to 8-bit red = red << fmt->Rloss; // Expand to a full 8-bit number // Get Green component green = pixel & fmt->Gmask; // Isolate green component green = green >> fmt->Gshift; // Shift it down to 8-bit green = green << fmt->Gloss; // Expand to a full 8-bit number // Get Blue component blue = pixel & fmt->Bmask; // Isolate blue component blue = blue >> fmt->Bshift; // Shift it down to 8-bit blue = blue << fmt->Bloss; // Expand to a full 8-bit number // Get Alpha component alpha = pixel & fmt->Amask; // Isolate alpha component alpha = alpha >> fmt->Ashift; // Shift it down to 8-bit alpha = alpha << fmt->Aloss; // Expand to a full 8-bit number MLV_unlock_image( image ); \endocde \code
image | L'image dont vous souhaitez récuperer les données internes. |
int MLV_get_image_height | ( | MLV_Image * | image | ) |
Retourne la hauteur d'une image donnée.
image | l'image à analyser. |
void MLV_get_image_size | ( | MLV_Image * | image, | |
int * | width, | |||
int * | height | |||
) |
Retourne la taille d'une image donnée.
image | L'image pour laquelle la fonction doit retourner sa taille. | |
width | La largeur de l'image. | |
height | La hauteur de l'image. |
int MLV_get_image_width | ( | MLV_Image * | image | ) |
Retourne la largeur d'une image donnée.
image | l'image à analyser |
void MLV_get_pixel | ( | int | x, | |
int | y, | |||
int * | red, | |||
int * | green, | |||
int * | blue, | |||
int * | alpha | |||
) |
Renvoie la couleur du pixel de l'écran pour une position donnée.
Les paramètres red, blue, green et alpha peuvent être égale à 0. Dans ce cas, ils sont ignorés.
x | Coordonnée en X de la position du pixel | |
y | Coordonnée en Y de la position du pixel | |
red | Composante rouge du pixel | |
green | Composante verte du pixel | |
blue | Composante bleue du pixel | |
alpha | Composante alpha (transparence) du pixel |
void MLV_get_pixel_on_image | ( | MLV_Image * | image, | |
int | x, | |||
int | y, | |||
int * | red, | |||
int * | green, | |||
int * | blue, | |||
int * | alpha | |||
) |
Renvoie la couleur du pixel présent à une position donnée d'une image donnée.
Les paramètres red, blue, green et alpha peuvent être égale à NULL. Dans ce cas, ils sont ignorés.
image | Image à inspecter. | |
x | Coordonnée en X de la position du pixel à inspecter | |
y | Coordonnée en Y de la position du pixel à inspecter | |
red | Composante rouge du pixel | |
green | Composante verte du pixel | |
blue | Composante bleue du pixel | |
alpha | Composante alpha (transparence) du pixel |
void MLV_horizontal_image_mirror | ( | MLV_Image * | image | ) |
Modifie l'image en réalisant une réflexion horizontale.
image | Image à modifier. |
MLV_Image* MLV_load_image | ( | const char * | file_image | ) |
Charge en mémoire une image contenue dans un fichier.
Cette fonction permet de charger les images des formats suivant: ICO(Icon)/CUR(Cursor)/BMP, PNM (PPM/PGM/PBM), XPM, LBM(IFF ILBM), PCX, GIF, JPEG, PNG, TGA, TIFF, and XV.
file_image | Chemin d'accès du fichier contenant l'image. |
void MLV_resize_image | ( | MLV_Image * | image, | |
int | width, | |||
int | height | |||
) |
Redimensionne l'image en ne repsectant pas les proportions de l'image originale.
La hauteur et la largeur de la nouvelle image deviennent respectivement la hauteur et la largeur passées en paramètres.
image | Image à redimentionner. | |
width | Largeur de l'image. | |
height | Hauteur de l'image. |
void MLV_resize_image_with_proportions | ( | MLV_Image * | image, | |
int | width, | |||
int | height | |||
) |
Redimensionne l'image en repsectant les proportions de l'image originale.
Cette fonction redimensionne l'image de telle sorte que les proportions d'origines soient respectées et que la hauteur et la largeur de la nouvelle image soient à la fois maximales et inférieures ou égales à la hauteur et la largeur données en paramètres.
L'utilisateur peut entrer un entier négatif pour les champs width et height. Ces champs ne sont alors pas pris en compte dans le redimensionnement de l'image.
image | Image à redimentionner. | |
width | Nouvelle largeur de l'image. | |
height | Nouvlle hauteur de l'image. |
void MLV_rotate_and_scale_image | ( | MLV_Image * | image, | |
double | rotation, | |||
double | scalar | |||
) |
Effectue une rotation suivie d'une homotétie.
image | L'image à modifier | |
rotation | L'angle de la rotation | |
scalar | Le coéfficient de proportionnalité de l'homotétie. |
void MLV_rotate_and_scale_xy_image | ( | MLV_Image * | image, | |
double | rotation, | |||
double | scalar_x, | |||
double | scalar_y | |||
) |
Effectue une rotation, puis étire l'image suivant l'axe X et l'axe Y avec des coéefficients de proportionnalité différents pour les deux axes.
image | L'image à modifier | |
rotation | L'angle de la rotaiton | |
scalar_x | Le coéfficient de proportionnalité de l'axe X. | |
scalar_y | Le coéfficient de proportionnalité de l'axe Y. |
void MLV_rotate_image | ( | MLV_Image * | image, | |
double | rotation | |||
) |
Effectue une rotation sur une image donnée.
image | L'image à modifier | |
rotation | L'angle de la rotation. |
int MLV_save_image_as_bmp | ( | const MLV_Image * | image, | |
const char * | file_image | |||
) |
Sauvegarde une image dans une fichier BMP.
image | Image à sauvegarder | |
file_image | Chemin d'accès du fichier contenant l'image. |
void MLV_scale_image | ( | MLV_Image * | image, | |
double | scalar | |||
) |
Modifie l'image à l'aide d'une homotétie ( Etire l'image ).
image | L'image à modifier | |
scalar | Coefficient de proportionalité de l'homotétie ( >1 l'image est agrandie, <1 l'image est rétrécie ). |
void MLV_scale_xy_image | ( | MLV_Image * | image, | |
double | scalar_x, | |||
double | scalar_y | |||
) |
Étire l'image suivant l'axe X et l'axe Y avec des coéefficients de proportionnalité différents pour les deux axes.
image | L'image à modifier | |
scalar_x | Le coéfficient de proportionnalité de l'axe X. | |
scalar_y | Le coéfficient de proportionnalité de l'axe Y. |
Ajuste La composante alpja de l'image est remplacée par une composante alpha homogene dont la valeur est donnée en paramètre.
La transparence joue un role lorsque une image est dessiné à l'écran, ou lorsqu'une image est recopiée à l'intrieure d'une autre image. Lorsque l'on recopie une image, les pixels du résultat final sont obtenues en faisant un barycentre entre le pixel de l'image source avec celui de l'image destination. Les poids des barycentres sont définis par la composante transparente ( composante alpha ) de l'image source. La transparence de l'image destination reste inchangée.
Par exemple, couleur pixel source : RGBA( 100,100,100,128 ) couleur destination : RGBA( 0,0,0,30 ) couleur final apres recopie : RGBA( 50,50,50,30 )
image | Image à modifier | |
alpha | Nouvelle composante alpha de l'image |
Écrase les composantes rouge, bleue, vert et alphe d'un pixel par celles passées en paramètre de la fonction.
x | La coordonnée en x du pixel à modifier | |
y | La coordonnée en y du pixel à modifier | |
color | La Nouvelle couleur du pixel | |
image | L'image à modifier |
void MLV_vertical_image_mirror | ( | MLV_Image * | image | ) |
Modifie l'image en réalisant une réflexion verticale.
image | Image à modifier. |