Images en Java

Le petit programme suivant montre :
      import java.awt.*;
//import javax.swing.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.File;
import java.io.IOException;
/**
 * Dans cette classe :
 * On crée une image de taille 255x255,
 * On y dessine une ligne diagonale en rouge
 * L'objet TestBuffered sert à afficher cette image.
 *
 *
 * voir aussi : uiswing/painting/usingImages.html
 * dans le tutorial de java.
 * 
 */

public class TestBuffered1 {
    // Constantes
    public static final int DIMX= 255;
    public static final int DIMY= 255;
    
    BufferedImage image;
    
    
    
    public TestBuffered1() 
    {
    }
    
    public BufferedImage getImage() {
	return image;
    }

    
    public void creerImage() {
	// On crée l'image en RGB.
	image= new BufferedImage(DIMX, DIMY, BufferedImage.TYPE_INT_RGB);
    }
    
    public void dessinerImage() {
	// On dessine l'image :
	// point par point :
	for (int x= 0; x < 255; x++)
	    {
		// Paramètres de setRGB : x,y,couleur.
		// Attention avec les décalages (<<)
		// comme "<<" a la même priorité que "<"
		// il est nécessaire de mettre des parenthèses.
		//            rouge   vert     bleu
		int couleur = (200 << 16) + (0 << 8) + 0;
		image.setRGB(x, x, couleur);
	    }
	// Plus directement :
	Graphics2D g= image.createGraphics();
	g.setColor(Color.BLUE);
	g.drawLine(10,10, 240, 60);
    }

    public void sauverImage(String nom, String format) {
	try {
	    // On sauve l'image histoire de rire un peu :
	    File fic= new File(nom+ "." + format);
	    ImageIO.write(getImage(), format, fic);
	} catch (IOException e) {
	    e.printStackTrace();
	}
    }
    
    public static void main(String args[]) {
	TestBuffered1 t= new TestBuffered1();
	t.creerImage();
	t.dessinerImage();
	t.sauverImage("toto", "png");
	
	// On affiche les formats disponibles :
	String formats[]= ImageIO.getWriterFormatNames();
	for(int i= 0; i< formats.length; i++)
	    System.out.println(formats[i]);
    }
}
    

Serge ROSMORDUC
Last modified: Mon Mar 24 12:49:32 CET 2003