Teaching - 2i013

Enseignants


2i013 - Groupe 5 : Course de voiture

Jouer avec les images

Il faut utiliser les instructions suivantes en comprenant la philosophie du code mais sans s'attarder sur les éléments techniques qui seront vus plus loin dans l'UE.

 import java.awt.Graphics;
 import java.awt.image.BufferedImage;
 import java.io.*;
 import javax.imageio.ImageIO;

 public class TestImage {
    public static void main(String[] args) {        
        // Construction d'une image 600x800
        int nColonnes = 800;
        int nLignes = 600;
        BufferedImage im = // objet image en mémoire
                new BufferedImage(nColonnes, nLignes, BufferedImage.TYPE_INT_ARGB);

        // récupération d'un stylo pour écrire dans l'image
        Graphics g = im.getGraphics();

        // tracer une ligne entre le point (10,10) et le point (100, 50)
        g.drawLine(10, 10, 100, 50);

        // Sauver l'image dans un fichier
        try {
            File outputfile = new File("saved.png");
            ImageIO.write(im, "png", outputfile);
         } catch (IOException e) {
            System.out.println("Erreur lors de la sauvegarde");
         }
    }
}

NB: ce programme n'affiche rien dans la console, il crée une image qu'il faut ensuite ouvrir avec un éditeur ad'hoc.

L'exemple ci-dessus doit vous permettre de comprendre le fonctionnement basique d'une image... Vous êtes prêt pour jouer avec maintenant.

Aide sur les images (création...):

http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html

Aide sur le stylo (formes réalisables, choix des couleurs...)

http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html

ATTENTION Le repère image est particulier. Comme le montre l'image suivante, le point (0,0) est en haut à gauche, la première coordonnée désigne les colonnes, la seconde les lignes. Le repère est donc inversé et le sens trigo est toujours de l'axe x vers l'axe y... Je donne un exemple avec la tortue pour s'y repérer plus clairement.