vendredi 7 septembre 2012

Créer dynamiquement une image en Java

Il y a peu, j'ai voulu créer un ripper d'image du jeu mythique des années 90, "Jill of the Jungle".
J'ai trouvé sur le site www.shikadi.net une explication sommaire des fichiers d'image.
Il me fallait donc créer une image dynamiquement et l'enregistrer.

J'ai cherché de la documentation à ce sujet. J'ai trouvé l’officielle d'Oracle, très sommaire, et des exemples sur internet un peu trop complexe.

L'idée est simple : créer une image, dessiner un pixel et l'enregistrer.

Voici l'exemple ci-dessous.
BufferedImage image =
    new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB) ;

Graphics2D g2 = image.createGraphics() ;
  
BufferedImage image =
    new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB) ;

Graphics2D g2 = image.createGraphics() ; 

g2.setColor(color) ;
                  
g2.drawLine(x, y, x, y) ;

outputfile = new File(fileName) ;
ImageIO.write(bi, "png", outputfile);
Création de l'image (un BufferImage puisque tout est en mémoire), de type Alpha (transparence), red, green, blue.
Création d'un graphic (objet permettant le dessin).
Définition de la couleur du pinceau.
Dessin du pixel.

Graphic2D ne permet pas de dessiner un pixel, via une méthode. On dessine donc une ligne, d'un point.

A la fin, est utilisé la classe ImageIO pour enregister le buffer.

C'est aussi simple que ça

Aucun commentaire:

Enregistrer un commentaire