Modification pixels d'une bufferedImage

Signaler
Messages postés
9
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
4 mai 2010
-
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
-
Bonjour tout le monde,
J'ai un problème, je n'arrive pas modifier certains pixels que je spécifie dans mon BufferedImage. Le principe est d'afficher une image depuis un JFileChooser et l'afficher dans un JPanel (a ce niveau c bon), et puis certains pixels doivent être coloré en rouge par exemple, donc je dois modifier leur couleur et puis afficher la même image avec ces nouveaux pixels.
Merci d'avance, même une indication peut me servir

3 réponses

Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
23
Salut,

Désolé je ne peux pas m'empêcher, il est énorme ce site :
lien pour t'aider

cherche la méthode setRGB

Ça m'a pris 10s + 30s pour te répondre.

De grâce, apprenez à rechercher un minimum, Google répond à 95% de mes questions en quelques minutes...
Messages postés
9
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
4 mai 2010

setRGB, je la connais, et si je veux colorer un cercle ?? ca va être une perte de temps !!! Superposer mon image et cette forme c'est une idée, mais comment le faire ??
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
23
Re,

Il fallait le dire tout de suite! Pour dessiner avec AWT/Swing on utilise un Graphics/Graphics2D. Donc tu fait monImage.getGraphics() pour obtenir le Graphics et monImage.createGraphics() pour obtenir le Graphics2D qui définit plus de possibilités (antialiasing, stroke, ...).

Ensuite, sur ton graphics, tu fais :

// tu as le droit de le faire uniquement sur un Graphics2D
monGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);

monGraphics.setColor(Color.RED);
monGraphics.fillOval(x, y, width, height);