Traitement d'image

cs_marweno87 Messages postés 2 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 2 mars 2010 - 26 févr. 2010 à 21:29
mesiesis Messages postés 1 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 18 août 2010 - 18 août 2010 à 21:20
Bonjour à tous,

J'essaye en ce moment de DIVISER une iamge en bloc(ensemble de pixel) en Java, cependant je n'arrive pas à diviser ni par pixel ni par ensemble de pixel cad (bloc), j'ai créer une classe qui contient une matrice mais il faut utiliser des methode standare de boblio java pour diviser l'image en matrice qui contient des bloc .
c a dire je veux une classe ou methode qui permet de diviser en bloc et de manipuler ces bloc (déplacer) et ces pixels.
. Pourriez-vous m'aider?

Merci d'avance!

Cordialement,

marwen

7 réponses

uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
27 févr. 2010 à 10:26
> J'essaye en ce moment de DIVISER une image en bloc

Essaie ceci:
public static BufferedImage[] splitImage(BufferedImage img, int cols, int rows) {
    int w = img.getWidth() / cols;
    int h = img.getHeight() / rows;
    int num = 0;
    BufferedImage imgs[] = new BufferedImage[w * h];
    for (int y = 0; y < rows; y++) {
        for (int x = 0; x < cols; x++) {
            imgs[num] = new BufferedImage(w, h, img.getType());
            // Tell the graphics to draw only one block of the image
            Graphics2D g = imgs[num].createGraphics();
            g.drawImage(img, 0, 0, w, h, w * x, h * y, w * x + w, h * y + h, null);
            g.dispose();
            num++;
        }
    }
    return imgs;
}
0
Utilisateur anonyme
27 févr. 2010 à 10:48
Bonjour

Tu peux aussi t'en sortir avec un PixelGrabber, c'est plus simple à mon avis.


0
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
28 févr. 2010 à 06:27
Pourquoi c'est plus simple avec un PixelGrabber?
0
Utilisateur anonyme
28 févr. 2010 à 12:31
En fait, ça revient presqu'au même, le PixelGrabber te permet de récupérer un tableau de pixels (sous forme d'entiers) et ça ne t'oblige ni à créer une instance de Graphics2D ni à créer des instances de BufferedImage (tu peux quand même appeler setRGB si nécessaire). J'ai peut-être sousestimé la difficulté d'utiliser le PixelGrabber, à tester.


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_marweno87 Messages postés 2 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 2 mars 2010
2 mars 2010 à 17:05
merci de m'avoir répondu
je me demandais si vous pourriez me definir le fonctionnement de chaque terme?
getRGB permet de lire un pixel?
setRGB permet d'ercire un pixel?
le probleme est de déplacer un pixel d'une image de position(x,y) vers une position (x',y')pour faire une operation de crypatge d'image, avec le setRGB on peut modifier la couleur?ou ....
comment utiliser un PixelGrabber?


Pourriez-vous m'aider?

Merci d'avance!

Cordialement,

marwen
0
Utilisateur anonyme
2 mars 2010 à 18:52
Je te conseille déjà de regarder dans la documentation de l'API les classes dont nous t'avons parlé, notamment PixelGrabber, BufferedImage, Image et ImageIO :
http://java.sun.com/javase/6/docs/api/

Utilise principalement la méthode grabPixels de la classe PixelGrabber pour récupérer tous les pixels de l'image. Cependant, des appels à getRGB et setRGB peuvent peut-être suffire, à toi de voir.



0
mesiesis Messages postés 1 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 18 août 2010
18 août 2010 à 21:20
Bonjour à Tous.
je fais une application en java (annuaire) je dois recuperer dans une db access des infos. avec le code ci joint je recupere les l'identité de la personne(nom, prenom, mail...) mais la photo ne se recupere pas. l'image est enregister au format bitmap dans la bd access. Si quelqu'un peut nous corriger.

private void rechercher(){
Blob blob;
try {
//creation dde la connexion
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connect=DriverManager.getConnection("jdbc:odbc:"+BD,"","");

s=connect.createStatement();
System.out.println("Connection etablie");
nom=tbnom.getText();
//selection de la table et preparation de la requête

String rek="SELECT * FROM collegues WHERE Nom='"+nom+"'";
rs=s.executeQuery(rek);

//Traitement de la requête

nbrcol=rs.getMetaData().getColumnCount();
//System.out.println("Colonnes" +nbrcol);

while (rs.next()) {
for (int i = 1; i < nbrcol; i++) {
if (i==2) {
jlnom.setText(rs.getString(i));

}
if (i==3) {
jlprenom.setText(rs.getString(i));
}
if (i==4) {
dtnais.setText(rs.getString(i));
}
if (i==5) {
dtentree.setText(rs.getString(i));
}
if (i==6) {
dtordination.setText(rs.getString(i));
}
if (i==7) {
dtderniervoeux.setText(rs.getString(i));
}
if (i==8) {
jlemail.setText(rs.getString(i));
}
if (i==9) {
jltel.setText(rs.getString(i));
}
if (i==14) {
jlnomcom.setText(rs.getString(i));
}
if (i==15) {
jladresse.setText(rs.getString(i));
}
if (i==18) {
// tache.setText(rs.getString(i));
jTaches.setText(rs.getString(i));
}
if (i==20) {
//photoo.setIcon((new ImageIcon(rs.getString(i))));

//blob = rs.getBlob("photo");
// ImageIcon icon = new ImageIcon(blob.getBytes(1, (int)blob.length()));
ImageIcon icon=new ImageIcon(rs.getBytes("photo"));
photoo = new JLabel(icon);

}

}

}



} catch (SQLException ex) {
Logger.getLogger(fenPrincipale.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(fenPrincipale.class.getName()).log(Level.SEVERE, null, ex);
}
0