Images en Java
Le petit programme suivant montre :
- comment créer une image
- comment l'écrire sur disque.
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