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

Java Discussion :

Ouvrir un fichier sur Windows enregistré à partir d'un programme Java


Sujet :

Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Ouvrir un fichier sur Windows enregistré à partir d'un programme Java
    Bonjour,
    Je suis en train de créer une sorte de Paint et j'en suis à l'ajout de l'option de sauvegarde, que j'ai réussie, à un détail près : lorsque j'enregistre une image (au format .jpg), elle apparaît bien au niveau du répertoire où elle est enregistrée, elle est bien du format JPEG.... mais n'est lisible par aucun programme (ni la visionneuse d'image de Windows, ni le Paint de Windows..) : "La visionneuse de photos Windows ne peut ouvrir cette image. Ce format de fichier n'est pas pris en charge." (idem pour Paint). Et le pire, c'est que même mon propre programme ne peut l'ouvrir, alors qu'il ouvre sans problème des images "normales" (non crées par le-dit programme).

    Comment faire pour pouvoir ouvrir et voir les images que j'enregistre? Merci d'avance de vos réponses !

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 215
    Points : 558
    Points
    558
    Par défaut
    Tu ne donnes pas beaucoup d'indications sur le problème que tu rencontres.
    Cela aurait été utile par exemple de voir le code avec lequel tu écris le fichier, pour vérifier si tu écris bien au format jpg (il ne suffit pas de mettre .jpg comme extension de fichier pour qu'il soit au bon format).

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    Navrée,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    if(file != null){
    							try{
    								ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
    								oos.writeObject(feuille.getListe());
    								oos.close();
    							} catch(FileNotFoundException e1){
    								e1.printStackTrace();
    							} catch(IOException e1){
    								e1.printStackTrace(); 
    							}
    						}
     
    						else{
    							if(choixFichier.showSaveDialog(null) == JFileChooser.APPROVE_OPTION){
    								file = choixFichier.getSelectedFile();
    								if(choixFichier.getFileFilter().accept(file)){
    									try {
    											ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
    											oos.writeObject(feuille.getListe());
    											oos.close();
    									} catch(FileNotFoundException e1){
    										e1.printStackTrace();
    									} catch(IOException e1){
    										e1.printStackTrace();
    									}
    								}
     
    								else{
    									JOptionPane alerte = new JOptionPane();
    									alerte.showMessageDialog(null, "Erreur d'extension de fichier, votre sauvegarde a échoué", "Erreur", JOptionPane.ERROR_MESSAGE);
    								}		
     
    							}
     
    						}
    Et le filtre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    public class FiltreImage extends FileFilter{
     
    	String extension = "jpeg", description = "Image JPEG(*.jpeg, *.jpg)";
     
    	public FiltreImage(String ext, String descrip){
    		this.extension = ext;
    		this.description = descrip;
    	}
     
    	public static String getExtension(File f) {
            String ext = null;
            String s = f.getName();
            int i = s.lastIndexOf('.');
     
            if (i > 0 &&  i < s.length() - 1) {
                ext = s.substring(i+1).toLowerCase();
            }
            return ext;
        }
     
     
     
     
    	@Override
    	public boolean accept(File f) {
    		if(f.isDirectory()){
    			return true;
    		}
     
    		extension = getExtension(f);
    		if(extension != null){
    			if(extension.equals("jpeg") || extension.equals("jpg")){
    				return true;
    			} 
    		}
     
     
    		return false;
    	}
     
    	@Override
    	public String getDescription() {
    		// TODO Auto-generated method stub
    		return description;
    	}
     
    }
    Mais maintenant tu me dis "il ne suffit pas d'écrire .jpg pour que ça soit au bon format", je me dis que j'ai rien fait de spécial pour que ça le soit et pensait que justement il suffisait de l'écrire.. il faudrait faire comment?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par Alcooline Voir le message
    Mais maintenant tu me dis "il ne suffit pas d'écrire .jpg pour que ça soit au bon format", je me dis que j'ai rien fait de spécial pour que ça le soit et pensait que justement il suffisait de l'écrire..
    L'extension d'un fichier n'est rien d'autre que la fin de son nom. C'est purement indicatif, et n'a pas de lien avec son contenu. Les gens et les programmes essaient juste de ne pas mentir en donnant une extension aux fichiers.

    Citation Envoyé par Alcooline Voir le message
    il faudrait faire comment?
    Tu dois construire ton image sous forme de BufferedImage. Puis, pour l'enregistrer, utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageIO.write(image, "JPEG", file);

    - image est ton BufferedImage
    - "JPEG" est le nom du format dans lequel enregistrer l'image. Pour du PNG ce serait "PNG".
    - file est un File qui indique à quel emplacement et à quel nom le fichier va être créé. (Exactement le même que dans ton exemple.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup
    Toute l'aprem j'ai cherché, et j'avais trouvé cette histoire de ImageIO.write... sauf que quand j'ai testé, en mettant l'extension, je mettais ".jpg" au lieu de "JPEG"... Merci infiniment

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je dois reconnaître que, chose rare en Java, la doc des images I/O est particulièrement obscure, notamment sur la liste des formats d'images gérés.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. enregistrer un fichier sur le serveur à partir d'une url
    Par visqueu dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 16/05/2012, 20h00
  2. Comment comparer des fichiers sur Windows?
    Par programmerPhil dans le forum Autres Logiciels
    Réponses: 9
    Dernier message: 22/02/2006, 20h47
  3. Réponses: 1
    Dernier message: 12/12/2005, 16h11
  4. problem de compression(zip) d'un fichier sur windows.
    Par timsah dans le forum Autres Logiciels
    Réponses: 14
    Dernier message: 25/10/2005, 13h21
  5. Ouvrir un fichier sur un double-clic dans une TListBox
    Par SegmentationFault dans le forum Composants VCL
    Réponses: 4
    Dernier message: 09/08/2004, 17h22

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