import java.awt.*; import java.awt.image.BufferedImage; import javax.swing.*; import java.io.*; public class Imag extends JComponent{ private Image image; public Imag(int width, int height, String path) throws IOException { image = readFromFile(width, height, path); setPreferredSize(new Dimension(width, height)); } private Image readFromFile(int width, int height, String path) throws IOException { FileInputStream input = new FileInputStream(path); BufferedInputStream input2 = new BufferedInputStream(input); BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR); for (int i = 0; i < height; i++){ for (int j = 0; j < width; j++){ int r = input.read(); int g = input.read(); int b = input.read(); int rgb = (r << 16 | (g << 8) | (b)); img.setRGB(j, i, rgb); } } return img; } @Override protected void paintComponent(Graphics pinceau) { // obligatoire : on cree un nouveau pinceau pour pouvoir le modifier plus tard Graphics pinceau2 = pinceau.create(); if (this.isOpaque()) { // obligatoire : on repeint toute la surface avec la couleur de fond pinceau2.setColor(this.getBackground()); pinceau2.fillRect(0, 0, this.getWidth(), this.getHeight()); } pinceau2.drawImage(this.image, 0, 0, this); } }