MLV_image.h(3) | Library Functions Manual | MLV_image.h(3) |
MLV_image.h - Ce fichier définit tous les prototypes concernant les fonctions permettant d'insérer des images.
typedef struct _MLV_Image MLV_Image
Définit le type Image dans la bibliothèque MLV.
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 (const MLV_Image *image)
Copie une image. MLV_Image * MLV_copy_partial_image (const
MLV_Image *image, int x, int y, int width, int height)
Copie une partie de l'image. void MLV_get_image_size (const
MLV_Image *image, int *width, int *height)
Retourne la taille d'une image donnée. int MLV_get_image_width
(const MLV_Image *image)
Retourne la largeur d'une image donnée. int MLV_get_image_height
(const 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 respectant 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)
Cette fonction 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 ( Étire l'image
) void MLV_rotate_image (MLV_Image *image, double rotation)
Éffectue une rotation sur une image donnée. void
MLV_rotate_and_scale_image (MLV_Image *image, double rotation,
double scalar)
Éffectue 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 coefficients 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)
É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. void MLV_draw_image (const 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 (const 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)
La composante alpha de l'image est remplacée par une composante alpha
homogène 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 alpha 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 (const 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, 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,
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. void MLV_save_screen ()
Enregistre l'image de l'écran dans un presse papier interne à la
bibliothèque MLV.. MLV_Image * MLV_get_screen ()
Renvoie l'image qui se trouve à l'écran. void
MLV_load_screen ()
Charge l'image présent dans le presse papier interne de la
bibliothèque MLV.
Ce fichier définit tous les prototypes concernant les fonctions permettant d'insérer des images.
Auteur
Marc Zipstein
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 :
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.
Paramètres
Renvoie
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.
Paramètres
Renvoie
Exemples
advanced/09_animation.c.
Créer une image de composante alpha opaque.
Paramètres
Renvoie
Exemples
advanced/08_zone_click.c.
Dessine une image donnée à une position donnée de la fenêtre.
Paramètres
Exemples
advanced/06_image.c, advanced/07_transparency.c, et
advanced/08_zone_click.c.
Dessine une image dans une image destination.
Paramètres
Dessine une partie d'une image donnée à une position donnée sur la fenêtre.
Paramètres
Dessine une image dans une image destination.
Paramètres
Libère la mémoire utilisée par l'image.
Paramètres
Exemples
advanced/06_image.c, advanced/07_transparency.c,
advanced/08_zone_click.c, et advanced/09_animation.c.
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.
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 );
Paramètres
Renvoie
Retourne la hauteur d'une image donnée.
Paramètres
Renvoie
Retourne la taille d'une image donnée.
Paramètres
Exemples
advanced/06_image.c, et advanced/08_zone_click.c.
Retourne la largeur d'une image donnée.
Paramètres
Renvoie
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.
Paramètres
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.
Paramètres
Exemples
advanced/08_zone_click.c.
Renvoie l'image qui se trouve à l'écran.
Renvoie
Modifie l'image en réalisant une réflexion horizontale.
Paramètres
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.
Bogue
Bogue
Bogue
Paramètres
Renvoie
Exemples
advanced/06_image.c, advanced/07_transparency.c,
advanced/08_zone_click.c, et advanced/09_animation.c.
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.
Paramètres
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.
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).
Paramètres
Exemples
advanced/06_image.c.
Éffectue une rotation suivie d'une homotétie.
Paramètres
É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.
Paramètres
Éffectue une rotation sur une image donnée.
Paramètres
Sauvegarde une image dans une fichier BMP.
Bogue
Paramètres
Renvoie
Modifie l'image à l'aide d'une homotétie ( Étire l'image )
Paramètres
Étire l'image suivant l'axe X et l'axe Y avec des coefficients de proportionnalité différents pour les deux axes.
Paramètres
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.
Par exemple,
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 )
Paramètres
Exemples
advanced/07_transparency.c.
Écrase les composantes rouge, bleue, vert et alpha d'un pixel par celles passées en paramètre de la fonction.
Paramètres
Exemples
advanced/08_zone_click.c.
Modifie l'image en réalisant une réflexion verticale.
Paramètres
Généré automatiquement par Doxygen pour MLV-3.1.0 à partir du code source.
Lundi 2 Janvier 2023 | MLV-3.1.0 |