On posséde une variable (par exemple a) contenant une image lue
avec readrgb.
writergb a deux arguments : le nom du fichier dans lequel on veut stocker
la nouvelle image et une liste contenant a[0] (liste contenant le nombre
de canaux et les dimensions de la matrice des pixels de cette image), puis les
couleurs de cette image qui sont les matrices a[1] pour la couleur rouge,
a[2] pour la couleur verte, a[3] pour la transparence et a[4]
pour la couleur bleu.
La transparence permet de superposer plusieurs images : sa valeur va de 0 à
255 (si la transparence vaut 0 c’est un cache !).
On tape :
a:=readrgb("image.jpg")
Puis on tape :
writergb("imagevrb.png",[a[0],a[2],a[1],a[3],a[4]])
Puis on tape :
gimp "imagevrb.png"
On obtient :
l’image de départ dans laquelle le rouge est devenu vert et le vert est devenu rouge
Essayer de crèer une image :
writergb("essai.png",[[4,2,2],[[255,0],[0,0]], [[0,255],[0,0]],[[255,125],[255,255]], [[0,0],[255,0]]])
vous obtenez (avec un vert attenué du au 125 de la 3ième matrice):
ou encore essayer :
writergb("image1.png",[[4,2,3],[[255,0,255],[0,255,0]], [[0,0,255],[0,0,0]],[[255,125,125],[255,255,255]], [[0,0,0],[255,255,0]]])
On peut aussi créer et stocker des images, au format PNG avec une
version simplifiée de la syntaxe : pas d’argument correspondant au nombre
de canaux et aux dimensions de la matrice des pixels de cette image ni de
matrice correspondant à la transparence.
writergb a alors deux ou quatre arguments : le nom du fichier dans lequel
on veut stocker la nouvelle image et la matrice des niveaux de gris des pixels,
ou 3 matrices (du rouge, du vert et du bleu) donnant la couleur RGB des
pixels.
Par exemple :
writergb("image.png",[[255,0],[0,255]])
crée et affiche une image 2x2 pixels au format PNG en 256 niveaux de gris
(0 noir, 255 blanc)
writergb("image.png",[[255,0],[0,0]],[[0,255],[0,0]], [[0,0],[255,0]])
crée et affiche une image 2x2 pixels au format PNG en RGBA avec 256 niveaux
pour chaque couleur (rouge, bleu, vert). Ici la première ligne rouge,vert et la deuxième ligne est bleu,noir.
Essayez :
writergb("essai.png",[[4,300,300],makemat(0,300,300), makemat(0,300,300), makemat(255,300,300), makemat(0,300,300)+idn(300)*255])