1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| package pkg;
import java.awt.BorderLayout;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
public class TestImage extends JFrame {
private static final long serialVersionUID = 1L;
public TestImage(Image imageSource, Image imageColor, Image imageGray, Image imageBinary) {
super("TestImage");
setDefaultCloseOperation(EXIT_ON_CLOSE);
// réglage de l'affichage, ajout d'une marge entre les images.
((BorderLayout)getContentPane().getLayout()).setHgap(14);
((BorderLayout)getContentPane().getLayout()).setVgap(14);
// Gestion de l'affichage des images.
getContentPane().add(new JLabel(new ImageIcon(imageSource)), BorderLayout.NORTH);
getContentPane().add(new JLabel(new ImageIcon(imageColor)), BorderLayout.WEST);
getContentPane().add(new JLabel(new ImageIcon(imageGray)), BorderLayout.CENTER);
getContentPane().add(new JLabel(new ImageIcon(imageBinary)), BorderLayout.EAST);
}
public static void main(String[] args) {
// Ouverture d'une image.
BufferedImage imageTmp = null;
try {
imageTmp = ImageIO.read(ClassLoader.getSystemResource("image.jpg"));
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
final BufferedImage imageSource = imageTmp;
// Conversion de l'image en rouge, vert, bleu.
final BufferedImage imageColor = new BufferedImage(imageSource.getWidth(), imageSource.getHeight(), BufferedImage.TYPE_INT_RGB);
imageColor.getGraphics().drawImage(imageSource, 0, 0, null);
// Conversion de l'image en niveaux de gris.
final BufferedImage imageGray = new BufferedImage(imageSource.getWidth(), imageSource.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
imageGray.getGraphics().drawImage(imageSource, 0, 0, null);
// Conversion de l'image en noir et blanc binnaire.
final BufferedImage imageBinary = new BufferedImage(imageSource.getWidth(), imageSource.getHeight(), BufferedImage.TYPE_BYTE_BINARY);
imageBinary.getGraphics().drawImage(imageSource, 0, 0, null);
// lance l'affichage
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new TestImage(imageSource, imageColor, imageGray, imageBinary);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
} |