Convertir image couleur en niveaux de gris

Signaler
Messages postés
1
Date d'inscription
mardi 19 juin 2007
Statut
Membre
Dernière intervention
6 avril 2008
-
Messages postés
3
Date d'inscription
lundi 7 décembre 2009
Statut
Membre
Dernière intervention
31 mai 2010
-
Bonjour,

Je cherche à tranformer une image couleur en niveaux de gris.

Voici le début de mon code :

import java.awt.image.Raster;
import javax.media.jai.*;
import java.awt.image.*;

public abstract class convertir {
 
    public static void main(String[] args) {
       
        PlanarImage img = JAI.create("fileload", "image.jpg");
        Raster raster = img.getData();
       
        int[] pixels = new int[3];
        int[] pixelgris = new int[1];
       
        for (int i=0;iJ'obtiens, pour chaque pixel couleur de mon image, la valeur du pixel gris correspondant : j'ai donc tous les pixels de mon image en niveux de gris. Mon problème est d'enregistrer ces valeurs dans un raster : en gros, je cherche à faire raster.setPixels(*) - ce qui n'existe pas. J'ai vu qu'il existait WritableRaster, mais je n'arrive pas du tout à comprendre comment ça marche.

Merci beaucoup pour votre aide,
Bonne journée
A voir également:

2 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Salut:

import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.awt.color.ColorSpace;
/**
  * Transformer une image colorée en Niveau de gris.
  */
BufferedImage toGray (BufferedImage bi) {
    ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);   
    ColorConvertOp op = new ColorConvertOp(cs, null);
   
    return op.filter(bi, null);
}
Messages postés
3
Date d'inscription
lundi 7 décembre 2009
Statut
Membre
Dernière intervention
31 mai 2010

soit mon interface qui gére des modifications sur une image.


import java.util.Vector;
import javax.swing.*;
import java.awt.*;
class Image extends JFrame
{


Image()
{
JButton b1=new JButton("parcourir");
JTextField t1=new JTextField(20);
JPanel p1=new JPanel();
JPanel p6=new JPanel();
JLabel l1=new JLabel("traitement");
JLabel img1=new JLabel("source");
JLabel img2=new JLabel("res");
JPanel prin=new JPanel();
JList st=new JList ();
add(prin);
prin.setLayout(new GridLayout(3,1));
JButton b2=new JButton("appliquer");
JButton b3=new JButton("enregistrer");
JPanel p2=new JPanel();
p2.add(b1);
p2.add(t1);

JPanel p3=new JPanel();
p3.add(p1);
p3.add(p6);
JPanel p4=new JPanel();
JScrollPane s=new JScrollPane();
p4.add(l1);
p4.add(s);
JPanel p5=new JPanel();
p5.setLayout(new GridLayout(2,1));
p5.add(b2);
p5.add(b3);
p4.add(p5);
Vector v1=new Vector();
v1.addElement("nievau de gris");
v1.addElement("rotation");
v1.addElement("zoom");
st.setListData(v1);
p1.add(img1);
p6.add(img2);
s.setViewportView(st);
prin.add(p2);
prin.add(p3);
prin.add(p4);
setTitle("image");
setVisible(true);
pack();

}
public static void main(String args[])
{

Image I = new Image();
I.setVisible(true);
I.setTitle("Interface");
I.setSize(600,400);

}

}