Comment lire une image en java pixel par pixel

Résolu
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015 - 20 avril 2011 à 22:58
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015 - 23 avril 2011 à 21:24
Bonjour tout le monde ;

j'ai un probléme avec la lecture des images avec java ,je veux lire une image pixel par pixel . J'ai pas trouvé le code pour lire pixel par pixel.
et en plus je veux connaitre comment detecter une image à partir d'un fichier contenant le texte ,
c'est à dire comment séparer l'image du texte dans un document.
Merci d'avance.

14 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
21 avril 2011 à 11:31
Salut,

Une solution pour lire l'image pixel par pixel pourrait être de passer par la classe java.awt.image.RGBImageFilter (Pour l'exemple d'utilisation voir le petit snippets qui est dans la doc sinon ici).




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
1
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
22 avril 2011 à 16:17
Salut,

c'est quoi ce document ? (enfin le format)




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
1
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
22 avril 2011 à 19:04
Salut,

Pour lire des documents doc and co il faut passer par une api (de mémoire POI le fait) après il va te permettre de séparer texte et image.




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
1
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 avril 2011 à 00:49
Salut,

"j'ai pas compris ta réponse"
>> Bah... tu regardes sur le site il y a des exemples (source+forum) pour exploiter un fichier au format .doc
>> Ou tu regarde du coté de POI

"déjà je suis débutante en java"
>> Et ?

"tu peux me donner un exemple stp"
>> Tu en as sur le site (source+forum), sur google et sur le site de POI


------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
1

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

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 avril 2011 à 19:58
Tu utilises un fichier docx (Office OpenXML - ooxml) donc tu dois utiliser le jar poi-ooxml-3.7-20101029.jar ... qui est livré avec le zip de poi...




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
1
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 avril 2011 à 20:48
GRRRRR, tu sais quand tu récupère une API (comme POI par exemple), et qu'il y a pleins de jar's, ils ne sont pas là pour décorer..... de plus le site de POI n'est pas fait pour meubler......

Bref dernière aide voici les jar's que tu dois avoir dans ton classpath pour faire fonctionner le bout de code que j'ai envoyer :
- dom4j-1.6.1.jar
- poi-3.7-20101029.jar
- poi-ooxml-3.7-20101029.jar
- poi-ooxml-schemas-3.7-20101029.jar
- xmlbeans-2.3.0.jar


après pour ce qui est de l'emplacement du fichier, si tu exécutes ton code depuis eclipse et que tu utilises un chemin relatif (comme c'est le cas ici) le point de départ se trouve dans le répertoire de ton projet.




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
1
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
22 avril 2011 à 14:54
Merci Twinuts pour la réponse ,mais il me reste un probléme ,par exemple j'ai un document contient à la fois du texte et d'image ;je veux connaitre est ce qu'on peut
connaitre ou ditinguer l'image du texte ?çàd je veux mettre les lettres du text dans un tableau et les pixels d'une image dans un autre tableau pour effectuer un chiffrement
sur ces données mais je doit initialemnt les séparer ? aider moi j'ai besoin de la réponse pour que je puisse continuer mon projet.Merci d'avance
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
22 avril 2011 à 17:32
Salut Twinuts;

pour le document ,moi je travaille sur un projet de la cryptographie des données .
par exemple je donne la main à l'utilisateur d'ouvrir un fichier soit texte ,soit image
ou bien comme par exmple un document word qui contient des fois à la fois du texte et d'image ,je veux maintenant codé le contenu de ce document ,pour l'image seule ou le texte seule ça marche bien ,mais pour des données mélangés (texte +image )je ne sais pas est ce que mon langage(java) peut détecter l'image séparément du texte ,çàd je ne suis pas obligé de lire le contenu caractére par caractere ? sinon comment lire l'image puis lire le texte séparément pour entrer chacun d'eux dans un tableau ?
merci d'avance
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
23 avril 2011 à 00:42
Salut ;
j'ai pas compris ta réponse ,déjà je suis débutante en java ;tu peux me donner un exemple stp ?
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
23 avril 2011 à 18:00
Bonjour,
j'ai documenter sur POI ,et j'ai télécharger poi-3.7 et l’intégré dans Eclipse.
j'ai essayer d'extraire le texte à partir d'un document Word ;mais rien ne m'affiche
j'ai pas compris le problème.
tiens le code:

import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.poi.poifs.filesystem.*;
import org.apache.poi.hwpf.*;
import org.apache.poi.hwpf.extractor.*;
import org.apache.poi.hwpf.model.PicturesTable;
import org.apache.poi.hwpf.usermodel.Picture;


public class imText {
public String m1() throws FileNotFoundException, IOException
{
String filesname="Hello.docx";
POIFSFileSystem fs=null;
fs=new POIFSFileSystem(new FileInputStream(filesname));
HWPFDocument doc=new HWPFDocument(fs);
WordExtractor we=new WordExtractor(doc);
String str=we.getText();
String[]paragraphs=we.getParagraphText();
/*Picture pic=new Picture(..);
pic.writeImageContent(arg0);
PicturesTable picTable=new PicturesTable(...);
if(picTable.hasPicture(arg0))
{
picTable.extractPicture(arg0, arg1);
picTable.getClass();
}
*/
return str;
}
public static void main(String[] args)
{
imText im=new imText();
try
{

String te=im.m1() ;
System.out.print(te+"im");
}
catch(IOException e)
{

}
}
}

et pour l'image je ne sais pas quoi mettre comme par paramètres
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 avril 2011 à 18:54
Salut,

pour les images tu peux faire :
import java.io.FileInputStream;
import java.util.List;

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFPictureData;

import static java.lang.System.err;

public class Test {

public Test() throws Exception {
String filename="doc.docx"; 
FileInputStream is = new FileInputStream(filename);


XWPFDocument doc = new XWPFDocument(is); 
List<XWPFPictureData> pictures = doc.getAllPictures();
for(XWPFPictureData picture : pictures) {
err.printf("Picture: %s\n", picture.getFileName());
err.printf("\tExtension: %s\n", picture.suggestFileExtension());
err.printf("\tLength: %d\n", picture.getData().length); // tu peux faire ImageIcon(picture.getData()) pour avoir l'image en java
}
is.close();
}

public static void main(String[] args) {
try {
new Test();
} catch (Exception e) {
e.printStackTrace();
}
}
}



Pour le reste il y a masse de doc sur le net (recherche google) pour t'aider....


------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
23 avril 2011 à 19:14
Salut ;
il y a une erreur lors de l'importation ,il ne connait pas ces des deux importation :
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFPictureData;

je ne sais pas c'est quoi le problème ?
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
23 avril 2011 à 20:27
Merci Twinuts ,l'importation marche bien maintenant mais j'ai rencontré une exception , qui est la suivante :
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException
at Crypto.Test1.(Test1.java:19)
at Crypto.Test1.main(Test1.java:31)
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more

l'erreur est dans l'instruction : XWPFDocument doc = new XWPFDocument(is);

dit moi ,pour le fichier word "Hello.docx" je dois le mettre dans mon projet pour le reconnaître ,c'est ça?
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
23 avril 2011 à 21:24
Salut Twinuts ,
je te remercie énormément pour ton aide ,elle m'a aidé bcp . L'extraction d'image marche bien ; je cherche maintenant moi même de corriger le code d'extraction du texte .
Merci encore une fois .
0
Rejoignez-nous