IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Ecrire image dans fichier csv


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut Ecrire image dans fichier csv
    Bonjour,
    je souhaite écrire une image dans un fichier csv mais je ne sais comment faire?
    Mon image est au format BufferedImage ou byte [] en Java.

    Je souhaite écrire dans un fichier csv l'image mais elle apparait sous forme de nombreux caractères incompréhensibles...

    Merci pour votre aide

  2. #2
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    Un fichier CSV étant un fichier texte, et qu'une image est un binaire, il est normal qu'elle soit stockée sous forme d'une suite de caractères illisibles. D'ailleurs, cela est même dangereux, rien ne dit que ce binaire ne va pas contenir des caractères pertubant le format CSV (saut de ligne, séparateur ...). Le mieux pour le stocker dans un fichier texte, c'est de convertir sa représentation dans un sous ensemble de caractères acceptables, comme en base64 (google pour plus d'infos).

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut
    Verrai je mon image dans mon fichier csv en faisant cela?
    Je n'arrive pas à trouve la librairie appacheSoap pour base64...

    En faisant cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FileOutputStream out = new FileOutputStream(new File("C:"+File.separator+"text.jpeg"));
    ImageIO.write(bi, "jpeg", out);
    bi étant mon bufferedImage, j'obtient un rectangle noir et pas mon image, je ne comprend pas pourquoi...

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Sous quel format veux tu enregistrer l'image dans le fichier csv ?
    Décris nous précisément ça.

  5. #5
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par franfr57 Voir le message
    Verrai je mon image dans mon fichier csv en faisant cela?
    Pourquoi parler de fichier CSV ? Si tu veux sauver une image dans un fichier, il s'agit de fichiers JPG ou GIF ou JNG par exemple. Et dans ce cas là, oublie la notion de base64.

    Citation Envoyé par franfr57 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FileOutputStream out = new FileOutputStream(new File("C:"+File.separator+"text.jpeg"));
    ImageIO.write(bi, "jpeg", out);
    bi étant mon bufferedImage, j'obtient un rectangle noir et pas mon image, je ne comprend pas pourquoi...
    Mettre un File.separator, alors que tu utilises un chemin absolu avec C: n'apporte pas grand chose. Avec C: tu est obligatoirement sous Windows ...
    L'image est noire ? As-tu bien fermé le flux d'écriture dans le fichier ? Pour éviter ça, utilises directement la méthode ImageIO.write qui prend en paramètre un objet File, tu n'auras pas à te poser la question.

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut
    je souhaiterai pourvoir écrire une image dans un fichier csv mais je ne sais pas cela est possible car un fichier est un fichier texte.

    Sinon je souhaite enregistrer mon image dans un fichier jpeg que j'insererai dans une page html

  7. #7
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par djsnipe Voir le message
    Pourquoi parler de fichier CSV ? Si tu veux sauver une image dans un fichier, il s'agit de fichiers JPG ou GIF ou JNG par exemple. Et dans ce cas là, oublie la notion de base64.



    Mettre un File.separator, alors que tu utilises un chemin absolu avec C: n'apporte pas grand chose. Avec C: tu est obligatoirement sous Windows ...
    L'image est noire ? As-tu bien fermé le flux d'écriture dans le fichier ? Pour éviter ça, utilises directement la méthode ImageIO.write qui prend en paramètre un objet File, tu n'auras pas à te poser la question.

    Je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ImageIO.write(bi, "jpeg", new File("C:"+File.separator+"text.jpeg"));
    J'ai toujours un rectangle noir...

  8. #8
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par franfr57 Voir le message
    je souhaiterai pourvoir écrire une image dans un fichier csv mais je ne sais pas cela est possible car un fichier est un fichier texte.

    Oui mais comment ça ? Il y a 50.000 possibilités de le faire.

    Exemple qui me viendrait à l'esprit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    255; 145; 0 ; 145
    255; 145; 50 ; 145
    255; 145; 90 ; 145
    255; 145; 91 ; 140

  9. #9
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par millie Voir le message
    Oui mais comment ça ? Il y a 50.000 possibilités de le faire.

    Exemple qui me viendrait à l'esprit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    255; 145; 0 ; 145
    255; 145; 50 ; 145
    255; 145; 90 ; 145
    255; 145; 91 ; 140
    S'il n'est pas possible de visualiser l'image dans le fichier csv (visuellement) et l'avoir uniquement au format texte, je préfère l'enregistrer et la mettre dans une page html

  10. #10
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par franfr57 Voir le message
    S'il n'est pas possible de visualiser l'image dans le fichier csv (visuellement) et l'avoir uniquement au format texte, je préfère l'enregistrer et la mettre dans une page html
    Ah bah non, c'est pas possible de mettre une image comme ça comme dans un fichier word ou excel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileOutputStream out = new FileOutputStream(new File("C:"+File.separator+"text.jpeg"));
    ImageIO.write(bi, "jpeg", out);
    Si ton fichier bi est noir, alors forcement l'image de sortie sera noir.

  11. #11
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par millie Voir le message
    Si ton fichier bi est noir, alors forcement l'image de sortie sera noir.
    +1 c'est imparable ....
    Un bout de code que tu peux vérifier pour quelque chose de pas tout à fait noir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BufferedImage bi = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
    int[] pixelColors = new int[100 * 100];
    Arrays.fill(pixelColors, 0x00F0F0);
    bi.setRGB(50, 50, 100, 100, pixelColors, 0, 0);
    ImageIO.write(bi, "jpg", new File("C:\\test.jpg"));

  12. #12
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut
    Mon fichier bi n'est pas noir je l'affiche dans une fenêtre Java. C'est un graphique crée grâce à jfrreechart!
    Si j'arrive à l'afficher dans une fenêtre java je devrait pouvoir créer un fichier avec cette image dedans, je n'arrive pas à comprendre pourquoi cela ne fonctionne pas...


    Avec microsoft photo editor l'image est noir, avec paint j'ai mon image mais pas avec les bonne couleur! Le fond est orange alors qu'il devrait être blanc

  13. #13
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    Si tu as un graphique, pourquoi ne pas utiliser directement l'utilitaire de JFreeChart saveChartAsPNG(java.io.File, org.jfree.chart.JFreeChart, int, int) ?
    J'ai déjà eu un problème lors de l'utilisation du JPEG comme format de sortie, alors je préfère le PNG

  14. #14
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut
    La méthode fonctionne bien en png mais pas en jpeg moi je voudrais en jpeg..

  15. #15
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par franfr57 Voir le message
    La méthode fonctionne bien en png mais pas en jpeg moi je voudrais en jpeg..
    Pourquoi ?

  16. #16
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut
    En png l'image est normale, en jpg l'image est soir noir soit orangé en fonction du logiciel avec lequel je l'ouvre

  17. #17
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par franfr57 Voir le message
    En png l'image est normale, en jpg l'image est soir noir soit orangé en fonction du logiciel avec lequel je l'ouvre
    J'ai eu le même problème. Je ne me suis pas casser la tête à cherché, j'ai fait du PNG

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 63
    Points
    63
    Par défaut
    tu exportes en png...puis tu convertis ce png en jpeg

    j'ai trouvé ça vite fait :
    http://forum.java.sun.com/thread.jsp...sageID=2880009

Discussions similaires

  1. Ecrire ou enregistrer dans fichier CSV
    Par AnneJulie dans le forum VB.NET
    Réponses: 3
    Dernier message: 04/06/2011, 20h23
  2. Réponses: 4
    Dernier message: 30/05/2008, 02h27
  3. Problème de séparateur dans fichier CSV
    Par mbibim63 dans le forum Excel
    Réponses: 4
    Dernier message: 05/07/2007, 09h29
  4. Recherche dans fichier CSV
    Par psal78 dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 02/05/2007, 08h48
  5. Sauvegarde de données dans fichier csv
    Par issou dans le forum C
    Réponses: 1
    Dernier message: 22/12/2005, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo