### 9.7.3 Pour recréer ou créer une image : `writergb`

`writergb` permet de stocker une image lue avec `readrgb` dans un fichier de suffixe `.png`.
ou
de créer une image et de la stocker dans un fichier de suffixe `.png`. On peut créer cette image avec des niveaux de gris ou des niveaux des différentes couleurs.

- 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])`