.TH "MLV_image.h" 3 "Dimanche 11 Avril 2021" "MLV-3.1.0" \" -*- nroff -*- .ad l .nh .SH NAME MLV_image.h \- Ce fichier définit tous les prototypes concernant les fonctions permettant d'insérer des images\&. .SH SYNOPSIS .br .PP .SS "Définitions de type" .in +1c .ti -1c .RI "typedef struct _MLV_Image \fBMLV_Image\fP" .br .RI "Définit le type Image dans la bibliothèque MLV\&. " .in -1c .SS "Fonctions" .in +1c .ti -1c .RI "\fBMLV_Image\fP * \fBMLV_load_image\fP (const char *file_image)" .br .RI "Charge en mémoire une image contenue dans un fichier\&. " .ti -1c .RI "int \fBMLV_save_image_as_bmp\fP (const \fBMLV_Image\fP *image, const char *file_image)" .br .RI "Sauvegarde une image dans une fichier BMP\&. " .ti -1c .RI "\fBMLV_Image\fP * \fBMLV_create_image\fP (int width, int height)" .br .RI "Créer une image de composante alpha opaque\&. " .ti -1c .RI "void \fBMLV_free_image\fP (\fBMLV_Image\fP *image)" .br .RI "Libère la mémoire utilisée par l'image\&. " .ti -1c .RI "\fBMLV_Image\fP * \fBMLV_copy_image\fP (const \fBMLV_Image\fP *image)" .br .RI "Copie une image\&. " .ti -1c .RI "\fBMLV_Image\fP * \fBMLV_copy_partial_image\fP (const \fBMLV_Image\fP *image, int x, int y, int width, int height)" .br .RI "Copie une partie de l'image\&. " .ti -1c .RI "void \fBMLV_get_image_size\fP (const \fBMLV_Image\fP *image, int *width, int *height)" .br .RI "Retourne la taille d'une image donnée\&. " .ti -1c .RI "int \fBMLV_get_image_width\fP (const \fBMLV_Image\fP *image)" .br .RI "Retourne la largeur d'une image donnée\&. " .ti -1c .RI "int \fBMLV_get_image_height\fP (const \fBMLV_Image\fP *image)" .br .RI "Retourne la hauteur d'une image donnée\&. " .ti -1c .RI "void \fBMLV_resize_image\fP (\fBMLV_Image\fP *image, int width, int height)" .br .RI "Redimensionne l'image en ne respectant pas les proportions de l'image originale\&. " .ti -1c .RI "void \fBMLV_vertical_image_mirror\fP (\fBMLV_Image\fP *image)" .br .RI "Modifie l'image en réalisant une réflexion verticale\&. " .ti -1c .RI "void \fBMLV_horizontal_image_mirror\fP (\fBMLV_Image\fP *image)" .br .RI "Modifie l'image en réalisant une réflexion horizontale\&. " .ti -1c .RI "void \fBMLV_resize_image_with_proportions\fP (\fBMLV_Image\fP *image, int width, int height)" .br .RI "Cette fonction redimensionne l'image en repsectant les proportions de l'image originale\&. " .ti -1c .RI "void \fBMLV_scale_image\fP (\fBMLV_Image\fP *image, double scalar)" .br .RI "Modifie l'image à l'aide d'une homotétie ( Étire l'image ) " .ti -1c .RI "void \fBMLV_rotate_image\fP (\fBMLV_Image\fP *image, double rotation)" .br .RI "Éffectue une rotation sur une image donnée\&. " .ti -1c .RI "void \fBMLV_rotate_and_scale_image\fP (\fBMLV_Image\fP *image, double rotation, double scalar)" .br .RI "Éffectue une rotation suivie d'une homotétie\&. " .ti -1c .RI "void \fBMLV_scale_xy_image\fP (\fBMLV_Image\fP *image, double scalar_x, double scalar_y)" .br .RI "Étire l'image suivant l'axe X et l'axe Y avec des coefficients de proportionnalité différents pour les deux axes\&. " .ti -1c .RI "void \fBMLV_rotate_and_scale_xy_image\fP (\fBMLV_Image\fP *image, double rotation, double scalar_x, double scalar_y)" .br .RI "Éffectue une rotation, puis étire l'image suivant l'axe X et l'axe Y avec des coefficients de proportionnalité différents pour les deux axes\&. " .ti -1c .RI "void \fBMLV_draw_image\fP (const \fBMLV_Image\fP *image, int x, int y)" .br .RI "Dessine une image donnée à une position donnée de la fenêtre\&. " .ti -1c .RI "void \fBMLV_draw_partial_image\fP (const \fBMLV_Image\fP *image, int x_source, int y_source, int width_source, int height_source, int x, int y)" .br .RI "Dessine une partie d'une image donnée à une position donnée sur la fenêtre\&. " .ti -1c .RI "void \fBMLV_set_alpha_on_image\fP (\fBMLV_Alpha\fP alpha, \fBMLV_Image\fP *image)" .br .RI "La composante alpha de l'image est remplacée par une composante alpha homogène dont la valeur est donnée en paramètre\&. " .ti -1c .RI "void \fBMLV_set_pixel_on_image\fP (int x, int y, \fBMLV_Color\fP color, \fBMLV_Image\fP *image)" .br .RI "Écrase les composantes rouge, bleue, vert et alpha d'un pixel par celles passées en paramètre de la fonction\&. " .ti -1c .RI "void \fBMLV_get_pixel\fP (int x, int y, int *red, int *green, int *blue, int *alpha)" .br .RI "Renvoie la couleur du pixel de l'écran pour une position donnée\&. " .ti -1c .RI "void \fBMLV_get_pixel_on_image\fP (const \fBMLV_Image\fP *image, int x, int y, int *red, int *green, int *blue, int *alpha)" .br .RI "Renvoie la couleur du pixel présent à une position donnée d'une image donnée\&. " .ti -1c .RI "void \fBMLV_draw_partial_image_on_image\fP (const \fBMLV_Image\fP *source_image, int source_x, int source_y, int width, int height, \fBMLV_Image\fP *destination_image, int destination_x, int destination_y)" .br .RI "Dessine une image dans une image destination\&. " .ti -1c .RI "void \fBMLV_draw_image_on_image\fP (const \fBMLV_Image\fP *source_image, \fBMLV_Image\fP *destination_image, int destination_x, int destination_y)" .br .RI "Dessine une image dans une image destination\&. " .ti -1c .RI "SDL_Surface * \fBMLV_get_image_data\fP (\fBMLV_Image\fP *image)" .br .RI "Renvoie les données internes de l'image\&. " .ti -1c .RI "void \fBMLV_save_screen\fP ()" .br .RI "Enregistre l'image de l'écran dans un presse papier interne à la bibliothèque MLV\&.\&. " .ti -1c .RI "\fBMLV_Image\fP * \fBMLV_get_screen\fP ()" .br .RI "Renvoie l'image qui se trouve à l'écran\&. " .ti -1c .RI "void \fBMLV_load_screen\fP ()" .br .RI "Charge l'image présent dans le presse papier interne de la bibliothèque MLV\&. " .in -1c .SH "Description détaillée" .PP Ce fichier définit tous les prototypes concernant les fonctions permettant d'insérer des images\&. .PP \fBAuteur\fP .RS 4 Adrien Boussicault .PP Marc Zipstein .RE .PP .SH "Documentation des définitions de type" .PP .SS "typedef struct _MLV_Image \fBMLV_Image\fP" .PP Définit le type Image dans la bibliothèque MLV\&. Une image dans la bibliothèque MLV est un tableau à deux dimentions dont chaque entée contient une couleur (voir MLV_Color)\&. Nous rapellons que dans MLV les couleurs sont définies à l'aide de 4 entiers compris entre 0 et 256 exclu, que l'on appelle composantes : .IP "\(bu" 2 la composante Rouge ( R ); .IP "\(bu" 2 la composante Verte ( G ); .IP "\(bu" 2 la composant Blue ( B ); .IP "\(bu" 2 la composante Alpha, c'est la transparence ( A )\&. .PP .SH "Documentation des fonctions" .PP .SS "\fBMLV_Image\fP* MLV_copy_image (const \fBMLV_Image\fP * image)" .PP Copie une image\&. Cette fonction créé une nouvelle 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\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à copier\&. .RE .PP \fBRenvoie\fP .RS 4 La copie de l'image\&. .RE .PP .SS "\fBMLV_Image\fP* MLV_copy_partial_image (const \fBMLV_Image\fP * image, int x, int y, int width, int height)" .PP Copie une partie de l'image\&. Cette fonction créé une nouvelle 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\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à copier\&. .br \fIx\fP Abscisse du sommet Nord-Ouest de la partie de l'image à copier .br \fIy\fP Ordonnée du sommet Nord-Ouest de la partie de l'image à copier .br \fIwidth\fP Largeur de la partie de l'image à copier .br \fIheight\fP Hauteur de la partie de l'image à copier .RE .PP \fBRenvoie\fP .RS 4 La copie de l'image\&. .RE .PP .PP \fBExemples\fP .in +1c \fBadvanced/09_animation\&.c\fP\&. .SS "\fBMLV_Image\fP* MLV_create_image (int width, int height)" .PP Créer une image de composante alpha opaque\&. .PP \fBParamètres\fP .RS 4 \fIwidth\fP Largeur de l'image .br \fIheight\fP Hauteur de l'image .RE .PP \fBRenvoie\fP .RS 4 L'image créé\&. .RE .PP .PP \fBExemples\fP .in +1c \fBadvanced/08_zone_click\&.c\fP\&. .SS "void MLV_draw_image (const \fBMLV_Image\fP * image, int x, int y)" .PP Dessine une image donnée à une position donnée de la fenêtre\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP Image à dessiner\&. .br \fIx\fP Coordonnée en X de la position dans la fenêtre de sommet Nord-Ouest de l'image\&. .br \fIy\fP Coordonnée en Y de la position dans la fenêtre du sommet Nord-Ouest de l'image\&. .RE .PP .PP \fBExemples\fP .in +1c \fBadvanced/06_image\&.c\fP, \fBadvanced/07_transparency\&.c\fP, et \fBadvanced/08_zone_click\&.c\fP\&. .SS "void MLV_draw_image_on_image (const \fBMLV_Image\fP * source_image, \fBMLV_Image\fP * destination_image, int destination_x, int destination_y)" .PP Dessine une image dans une image destination\&. .PP \fBParamètres\fP .RS 4 \fIsource_image\fP Image source .br \fIdestination_image\fP Image destination .br \fIdestination_x\fP Abscisse de la position où devra être recopier l'image\&. Il s'agit de la futur position du sommet nord-Ouest de la portion d'image à recopier\&. .br \fIdestination_y\fP Ordonnée de la position où devra être recopier l'image\&. Il s'agit de la futur position du sommet nord-Ouest de la portion d'image à recopier\&. .RE .PP .SS "void MLV_draw_partial_image (const \fBMLV_Image\fP * image, int x_source, int y_source, int width_source, int height_source, int x, int y)" .PP Dessine une partie d'une image donnée à une position donnée sur la fenêtre\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à afficher sur la fenêtre .br \fIx_source\fP La coordonnée en X du sommet Nord-Ouest de la partie de l'image à afficher\&. .br \fIy_source\fP La coordonnée en Y du sommet Nord-Ouest de la partie de l'image à afficher\&. .br \fIwidth_source\fP La largeur de la partie de l'image à afficher\&. .br \fIheight_source\fP La hauteur de la partie de l'image à afficher\&. .br \fIx\fP Coordonnée en X de la position dans la fenêtre du sommet Nord-Ouest de la partie de l'image à afficher\&. .br \fIy\fP Coordonnée en Y de la position dans la fenêtre du sommet Nord-Ouest de la partie de l'image à afficher\&. .RE .PP .SS "void MLV_draw_partial_image_on_image (const \fBMLV_Image\fP * source_image, int source_x, int source_y, int width, int height, \fBMLV_Image\fP * destination_image, int destination_x, int destination_y)" .PP Dessine une image dans une image destination\&. .PP \fBParamètres\fP .RS 4 \fIsource_image\fP Image source .br \fIsource_x\fP Abscisse du sommet nord-Ouest de la position de la portion d'image à recopier .br \fIsource_y\fP Ordonné du sommet nord-Ouest de la position de la portion d'image à recopier .br \fIwidth\fP Largeur de la position à recopier .br \fIheight\fP Hauteur de la position à recopier .br \fIdestination_image\fP Image destination .br \fIdestination_x\fP Abscisse de la position où devra être recopier l'image\&. Il s'agit de la futur position du sommet nord-Ouest de la portion d'image à recopier\&. .br \fIdestination_y\fP Ordonnée de la position où devra être recopier l'image\&. Il s'agit de la futur position du sommet nord-Ouest de la portion d'image à recopier\&. .RE .PP .SS "void MLV_free_image (\fBMLV_Image\fP * image)" .PP Libère la mémoire utilisée par l'image\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP Image à supprimer de la mémoire .RE .PP .PP \fBExemples\fP .in +1c \fBadvanced/06_image\&.c\fP, \fBadvanced/07_transparency\&.c\fP, \fBadvanced/08_zone_click\&.c\fP, et \fBadvanced/09_animation\&.c\fP\&. .SS "SDL_Surface* MLV_get_image_data (\fBMLV_Image\fP * image)" .PP 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\&. .PP 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\&. .PP Vous pouvez alors utiliser les routines de la lirairie SDL pour modifier l'image\&. (http://libsdl.org) .PP 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\&. .PP .PP .nf 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 ); .fi .PP .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image dont vous souhaitez récuperer les données internes\&. .RE .PP \fBRenvoie\fP .RS 4 un pointeur vers une image de la bibliothèque SDL\&. .RE .PP .SS "int MLV_get_image_height (const \fBMLV_Image\fP * image)" .PP Retourne la hauteur d'une image donnée\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à analyser\&. .RE .PP \fBRenvoie\fP .RS 4 La hauteur de l'image .RE .PP .SS "void MLV_get_image_size (const \fBMLV_Image\fP * image, int * width, int * height)" .PP Retourne la taille d'une image donnée\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image pour laquelle la fonction doit retourner sa taille\&. .br \fIwidth\fP La largeur de l'image\&. .br \fIheight\fP La hauteur de l'image\&. .RE .PP .PP \fBExemples\fP .in +1c \fBadvanced/06_image\&.c\fP, et \fBadvanced/08_zone_click\&.c\fP\&. .SS "int MLV_get_image_width (const \fBMLV_Image\fP * image)" .PP Retourne la largeur d'une image donnée\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à analyser\&. .RE .PP \fBRenvoie\fP .RS 4 La largeur de l'image\&. .RE .PP .SS "void MLV_get_pixel (int x, int y, int * red, int * green, int * blue, int * alpha)" .PP Renvoie la couleur du pixel de l'écran pour une position donnée\&. Les paramètres red, blue, green et alpha peuvent être égaux à 0\&. Dans ce cas, ils sont ignorés\&. .PP \fBParamètres\fP .RS 4 \fIx\fP Coordonnée en X de la position du pixel\&. .br \fIy\fP Coordonnée en Y de la position du pixel\&. .br \fIred\fP Composante rouge du pixel\&. .br \fIgreen\fP Composante verte du pixel\&. .br \fIblue\fP Composante bleue du pixel\&. .br \fIalpha\fP Composante alpha (transparence) du pixel\&. .RE .PP .SS "void MLV_get_pixel_on_image (const \fBMLV_Image\fP * image, int x, int y, int * red, int * green, int * blue, int * alpha)" .PP 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 égaux à NULL\&. Dans ce cas, ils sont ignorés\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP Image à inspecter\&. .br \fIx\fP Coordonnée en X de la position du pixel à inspecter\&. .br \fIy\fP Coordonnée en Y de la position du pixel à inspecter\&. .br \fIred\fP Composante rouge du pixel\&. .br \fIgreen\fP Composante verte du pixel\&. .br \fIblue\fP Composante bleue du pixel\&. .br \fIalpha\fP Composante alpha (transparence) du pixel\&. .RE .PP .PP \fBExemples\fP .in +1c \fBadvanced/08_zone_click\&.c\fP\&. .SS "\fBMLV_Image\fP* MLV_get_screen ()" .PP Renvoie l'image qui se trouve à l'écran\&. .PP \fBRenvoie\fP .RS 4 L'image qui est affiché à l'écran\&. .RE .PP .SS "void MLV_horizontal_image_mirror (\fBMLV_Image\fP * image)" .PP Modifie l'image en réalisant une réflexion horizontale\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à modifier\&. .RE .PP .SS "\fBMLV_Image\fP* MLV_load_image (const char * file_image)" .PP Charge en mémoire une image contenue dans un fichier\&. Cette fonction permet de charger les images des formats suivants: ICO(Icon)/CUR(Cursor)/BMP, PNM (PPM/PGM/PBM), XPM, LBM(IFF ILBM), PCX, GIF, JPEG, PNG, TGA, TIFF, and XV\&. .PP \fBBogue\fP .RS 4 Cette fonction provoque une erreur de segmentation si elle est utilisée avant \fBMLV_create_window()\fP\&. Pour l'instant, nous vous conseillons d'utiliser cette fonction apres \fBMLV_create_window()\fP\&. .RE .PP .PP \fBBogue\fP .RS 4 Il est possible que cette fonction n'arrive pas à charger correctement les images qui ne sont pas en 32 bits (RGBA) - bug à tester\&. .RE .PP .PP \fBBogue\fP .RS 4 BUG PRESENT SOUS WINDOWS ET MACOS X : Lorsque la composante alpha d'un pixel est à 0, MLV_load_image met à 0 les composantes Rouge, Verte et bleue du pixel associé\&. Ce bug provient de la bibliothèque SDL_image\&. .RE .PP .PP \fBParamètres\fP .RS 4 \fIfile_image\fP Chemin d'accès du fichier contenant l'image\&. .RE .PP \fBRenvoie\fP .RS 4 L'image chargée\&. .RE .PP .PP \fBExemples\fP .in +1c \fBadvanced/06_image\&.c\fP, \fBadvanced/07_transparency\&.c\fP, \fBadvanced/08_zone_click\&.c\fP, et \fBadvanced/09_animation\&.c\fP\&. .SS "void MLV_resize_image (\fBMLV_Image\fP * image, int width, int height)" .PP Redimensionne l'image en ne respectant 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\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à redimentionner\&. .br \fIwidth\fP La largeur de l'image\&. .br \fIheight\fP La hauteur de l'image\&. .RE .PP .SS "void MLV_resize_image_with_proportions (\fBMLV_Image\fP * image, int width, int height)" .PP Cette fonction redimensionne l'image en repsectant les proportions de l'image originale\&. L'image résultat est la plus grande image possible incluse dans le rectangle de largeur width et de hauteur height\&. .PP 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\&. Dans ce cas, si le paramètre width (resp\&. height) est négatif, alors l'image finale aura pour largeur (resp\&. hauteur) la taille spécifiée dans le paramètre width (resp\&. height)\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à redimentionner\&. .br \fIwidth\fP La nouvelle largeur de l'image\&. .br \fIheight\fP La nouvlle hauteur de l'image\&. .RE .PP .PP \fBExemples\fP .in +1c \fBadvanced/06_image\&.c\fP\&. .SS "void MLV_rotate_and_scale_image (\fBMLV_Image\fP * image, double rotation, double scalar)" .PP Éffectue une rotation suivie d'une homotétie\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à modifier\&. .br \fIrotation\fP L'angle de la rotation\&. .br \fIscalar\fP Le coéfficient de proportionnalité de l'homotétie\&. .RE .PP .SS "void MLV_rotate_and_scale_xy_image (\fBMLV_Image\fP * image, double rotation, double scalar_x, double scalar_y)" .PP Éffectue une rotation, puis étire l'image suivant l'axe X et l'axe Y avec des coefficients de proportionnalité différents pour les deux axes\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à modifier\&. .br \fIrotation\fP L'angle de la rotaiton\&. .br \fIscalar_x\fP Le coéfficient de proportionnalité de l'axe X\&. .br \fIscalar_y\fP Le coéfficient de proportionnalité de l'axe Y\&. .RE .PP .SS "void MLV_rotate_image (\fBMLV_Image\fP * image, double rotation)" .PP Éffectue une rotation sur une image donnée\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à modifier\&. .br \fIrotation\fP L'angle de la rotation\&. .RE .PP .SS "int MLV_save_image_as_bmp (const \fBMLV_Image\fP * image, const char * file_image)" .PP Sauvegarde une image dans une fichier BMP\&. .PP \fBBogue\fP .RS 4 Cette fonction ne sauvegarde pas la composante alpha\&. .RE .PP .PP \fBParamètres\fP .RS 4 \fIimage\fP Image à sauvegarder .br \fIfile_image\fP Chemin d'accès du fichier contenant l'image\&. .RE .PP \fBRenvoie\fP .RS 4 0 si c'est un succés, -1 s'il y a eut une erreur\&. .RE .PP .SS "void MLV_scale_image (\fBMLV_Image\fP * image, double scalar)" .PP Modifie l'image à l'aide d'une homotétie ( Étire l'image ) .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à modifier\&. .br \fIscalar\fP Coefficient de proportionalité de l'homotétie ( >1 l'image est agrandie, <1 l'image est rétrécie )\&. .RE .PP .SS "void MLV_scale_xy_image (\fBMLV_Image\fP * image, double scalar_x, double scalar_y)" .PP Étire l'image suivant l'axe X et l'axe Y avec des coefficients de proportionnalité différents pour les deux axes\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à modifier\&. .br \fIscalar_x\fP Le coéfficient de proportionnalité de l'axe X\&. .br \fIscalar_y\fP Le coéfficient de proportionnalité de l'axe Y\&. .RE .PP .SS "void MLV_set_alpha_on_image (\fBMLV_Alpha\fP alpha, \fBMLV_Image\fP * image)" .PP La composante alpha de l'image est remplacée par une composante alpha homogène dont la valeur est donnée en paramètre\&. La transparence joue un role lorsqu'une image est dessinée à l'écran, ou lorsqu'une image est recopiée à l'intérieure d'une autre image\&. Lorsque l'on recopie une image, les pixels du résultat final sont obtenus 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\&. .PP Par exemple, .PP .nf couleur pixel source : RGBA( 60,80,100,128 ) couleur destination : RGBA( 0,20,40,30 ) couleur final après recopie : RGBA( barycentre( 60, 128, 0, 256-128 ), barycentre( 80, 128, 20, 256-128 ), barycentre( 100, 128, 40, 256-128 ), 30 ) = RGBA( ( 60 * 128 + 0 * (256-128) ) / 256, ( 80 * 128 + 20 * (256-128) ) / 256, ( 100 * 128 + 40 * (256-128) ) / 256, 30 ) = RGBA( 30, 50, 70, 30 ) .fi .PP .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à modifier\&. .br \fIalpha\fP La nouvelle composante alpha de l'image\&. .RE .PP .PP \fBExemples\fP .in +1c \fBadvanced/07_transparency\&.c\fP\&. .SS "void MLV_set_pixel_on_image (int x, int y, \fBMLV_Color\fP color, \fBMLV_Image\fP * image)" .PP Écrase les composantes rouge, bleue, vert et alpha d'un pixel par celles passées en paramètre de la fonction\&. .PP \fBParamètres\fP .RS 4 \fIx\fP La coordonnée en x du pixel à modifier\&. .br \fIy\fP La coordonnée en y du pixel à modifier\&. .br \fIcolor\fP La nouvelle couleur du pixel\&. .br \fIimage\fP L'image à modifier\&. .RE .PP .PP \fBExemples\fP .in +1c \fBadvanced/08_zone_click\&.c\fP\&. .SS "void MLV_vertical_image_mirror (\fBMLV_Image\fP * image)" .PP Modifie l'image en réalisant une réflexion verticale\&. .PP \fBParamètres\fP .RS 4 \fIimage\fP L'image à modifier\&. .RE .PP .SH "Auteur" .PP Généré automatiquement par Doxygen pour MLV-3\&.1\&.0 à partir du code source\&.