Changer la couleur de certain pixels

Maniarr Messages postés 4 Date d'inscription samedi 10 août 2013 Statut Membre Dernière intervention 11 août 2013 - 10 août 2013 à 23:06
Maniarr Messages postés 4 Date d'inscription samedi 10 août 2013 Statut Membre Dernière intervention 11 août 2013 - 11 août 2013 à 21:06
Bonjour,

Pour un de mes projets je doit changer la couleur de certain pixels sur un image 64 x 32 en format PNG.
J'ai écumé internet et j'ai trouver se code malheureusement je ne sais pas comment l'utiliser et si c'est vraiment se code que je doit utiliser.

private Color[][] image;

BufferedImage b = ImageIO.read(new File(adresse));
h = b.getHeight();
w = b.getWidth();
image = new Color[w][h];
for(int wi=0; wi<w; wi++){
for(int hi=0; hi<h; hi++){
Color pixel = new Color(b.getRGB(wi, hi));
image[wi][hi] = pixel;
}
}


En espérant qu'une personne peux m'aider je vous remercie d'avance.
Et à bientôt sur le site.

Maniarr

4 réponses

KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 127
11 août 2013 à 11:33
"J'ai écumé internet"
Il faut connaitre les bons sites, en particulier le site officiel !

http://docs.oracle.com/javase/tutorial/2d/images/index.html
http://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html
http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html

// Lecture de l'image
BufferedImage img = ImageIO.read(new File("C:/test.png"));

// Modification des pixels (exemple : ajout d'une diagonale rouge)
for (int x=0, y=0; x<img.getWidth() && y<img.getHeight(); x++, y++)
    img.setRGB(x, y, Color.RED.getRGB());

// Enregistrement de l'image
ImageIO.write(img, "png", new File("C:/test2.png"));
0
Maniarr Messages postés 4 Date d'inscription samedi 10 août 2013 Statut Membre Dernière intervention 11 août 2013
11 août 2013 à 18:26
Merci, malheureusement je n'ai pas un très bon niveau en anglais donc je regarde les sites francophones.
Après une demi heure j'ai trouver comment faire et sa fonctionne.
Merci, je voulais savoir si il était possible de mettre une variable a la place de "C:/image" qu'ont obtient a partir d'un chooser.
0
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 127
11 août 2013 à 19:31
Ton chooser va te renvoyer un File, donc tu vas pouvoir faire directement :

BufferedImage img = ImageIO.read(chooser.getSelectedFile());
0
Maniarr Messages postés 4 Date d'inscription samedi 10 août 2013 Statut Membre Dernière intervention 11 août 2013
11 août 2013 à 19:36
Merci sa marche impec.
Euh une dernière question, je voulais savoir comment mettre un code couleur héxadécimal à la place de Color.RED.getRGB();
0
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 127
11 août 2013 à 20:50
Color.RED est une couleur prédéfinie (le rouge ^^), mais tu peux utiliser la classe Color d'autres manière, notamment avec son code RGB, son code HSV, ou effectivement avec son code hexadécimal :

Color.decode("#ff0000").getRGB();
0
Maniarr Messages postés 4 Date d'inscription samedi 10 août 2013 Statut Membre Dernière intervention 11 août 2013
11 août 2013 à 21:06
Merci infiniment de ta patience et de la pertinence de tes réponses et encore merci à toi.
0
Rejoignez-nous