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 74 75 76 77 78
| import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
public class Test extends JFrame implements KeyListener {
private Image[][] images;
private BufferStrategy strategy;
private Graphics backBuffer;
public Test() {
setSize(600, 600);
addKeyListener(this);
setVisible(true);
createBufferStrategy(2);
strategy = getBufferStrategy();
backBuffer = strategy.getDrawGraphics(); ;
//initialisation du tableau d'images
images = new Image[1][2];
try {
images[0][0] = ImageTransparente(ImageIO.read(new File("rpg1-2.GIF")), 0, 255, 0);
images[0][1] = ImageTransparente(ImageIO.read(new File("rpg1-1.GIF")), 0, 255, 0);
} catch (IOException e) {
e.printStackTrace();
}
show();
}
//rendre la couleur transparente
public Image ImageTransparente(BufferedImage bufferedImage, int red, int green, int blue) {
int filtre = new Color(red, green, blue).getRGB();
int remplissage = new Color(255, 255, 255, 0).getRGB();
for (int y = 0; y < bufferedImage.getHeight(); y++) {
for (int x = 0; x < bufferedImage.getWidth(); x++) {
if (bufferedImage.getRGB(x,y) == filtre) {
bufferedImage.setRGB(x, y, remplissage);
}
}
}
return createImage(bufferedImage.getSource());
}
//afficher le tableau d'images
private void afficher() {
for (int i = 0; i<images.length; i++) {
for (int j = 0; j<images[0].length; j++) {
backBuffer.drawImage(images[i][j], 50 * j + 50, 50 * i + 50, this);
}
}
repaint();
}
public void paint(Graphics comp) {
if (strategy!=null) {
strategy.show();
}
}
//lorsqu'on appuie sur une touche on lance l'affichage
public void keyPressed(KeyEvent event) {
afficher();
}
public void keyReleased(KeyEvent event) {
}
public void keyTyped(KeyEvent event) {
}
public static void main(String[] args) {
Test test = new Test();
}
} |
Partager