Grimage est une bibliothèque destinée à la lecture, à l'écriture et
à l'affichage d'images en Caml Light. Elle traite les images au format
BMP
et PPM
. Une extension du format
PPM
autorise également le traitement d'images comportant
des parties transparentes.
Les modules spécialisés aux formats BMP
et
PPM
définissent des fonctions de lecture et d'écriture des
formats d'images correspondants et manipulent directement le format
d'image de la bibliothèque Graphics. Ainsi, pour les formats
BMP
(bitmap): utiliser
bmp__load_image filename
pour obtenir une image de Graphics à partir d'une image sur
disque au format BMP
.
bmp__save_image filename bmp
pour sauver sur disque une image au format BMP
à partir
d'une image de Graphics.
PPM
(portable pixmaps): utiliser
ppm__load_image filename
pour obtenir une image de Graphics à partir d'une image sur
disque au format PPM
.
ppm__save_image filename ppm
pour sauver sur disque une image au format PPM
à partir
d'une image de Graphics.
Pour afficher les images dans la fenêtre de Graphics, il vous suffit
d'utiliser la primitive draw_image
du module Graphics.
La bibliothèque définit un format d'image pivot dans lequel elle
transforme les différents formats d'images manipulés. C'est le type
grimage__image
. Ainsi les fonctions de lecture de bas niveau
produisent toutes des valeurs de type grimage__image
.
Sur le format pivot on dispose des fonctions générales suivantes:
draw_grimage grim x y
pour afficher, au point de coordonnées (x, y)
de
la fenêtre graphique, une image au format pivot (de type
grimage__image
).
image_of_grimage
pour convertir une image de type
grimage__image
en une image du module Graphics
(de type graphics__image
).
grimage_of_image
pour convertir une image du module
Graphics en une image au format pivot.
Les fonctions de lecture et d'écriture de haut niveau des images traitent toutes du format pivot (voir ci-dessous).
Le module pivot Grimage traite les formats suivants:
BMP
: utiliser les fonctions
grimage__load_bmp_grimage filename
pour obtenir une image de Grimage (de type grimage__image
)
à partir d'une image sur disque au format BMP
.
grimage__save_bmp_grimage filename bmp
pour sauver sur disque une image au format BMP
,
à partir d'une image de Grimage (de type grimage__image
).
PPM
: les fichiers avec
l'extension PPM
(portable pixmaps),
PGM
(portable graymap) ou PBM
(portable
bitmap). Utilisez les fonctions suivantes:
grimage__load_ppm_grimage filename
pour obtenir
une image de Grimage (de type grimage__image
)
à partir d'une image sur disque au format PPM
.
grimage__save_ppm_grimage filename ppm
pour
pour sauver sur disque une image au format PPM
,
à partir d'une image de Grimage (de type grimage__image
).
Les images comportant des parties transparentes sont traitées au
format PPM
uniquement. L'image comprend alors deux
parties corrélées, à savoir:
PPM
définissant l'image couleur,
La première image est un pixmap, la seconde un bitmap; voir ci-dessous pour les définitions et les fonctions de base fournies pour bitmaps et pixmaps.
Les images avec parties transparentes sont indiquées par une
nouvelle variante du format PPM
(codée
P6
). Ce codage est (normalement) compatible avec les
programmes habituels de traitement des images PPM
.
Dans le module Pixmap
, la bibliothèque définit
donc la notion de pixmap, c'est-à-dire de matrices de
couleurs au format R, G, B codées sur un entier (un pixmap a donc pour
type graphics__color vect vect
).
Les bitmap sont des pixmaps dont les couleurs ne prennent que les deux valeurs blanc ou noir.
Le module Pixmap
fournit des utilitaires de base pour
transformer les pixmaps, créer des bitmaps en calculant une
représentation dégradée d'un pixmap, obtenir des images avec
parties transparentes, ou encore afficher des pixmaps dans la fenêtre
de Graphics.
pixmap__bitmap_of_pixmap : int -> int -> pixmap
-> pixmap
transforme un pixmap en une image bitmap.
pixmap__set_background_transp : pixmap -> unit
rend transparents tous les point de l'image qui ont la couleur
du fond actuelle.
pixmap__draw_pixmap pixmap x y
pour afficher au point
(x, y)
de la fenêtre graphique, une image
pixmap.
Le module Color
fournit des fonctions de traductions
de triplets d'entiers en couleurs aux formats RGB ou HSB.
Pour de plus amples informations sur la bibliothèque, lisez les
interfaces des modules et les fichiers d'exemples du répertoire
test
.
Essayer Grimage
c'est l'adopter!
Pierre weis.