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

2D Java Discussion :

Charger trois images sur disque


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut Charger trois images sur disque
    Bonjour à tous je voudrais charger trois images sur disque

    mais je bloque encore à la première image

    le code ci dessous devrait écrire l'image sur disque et l'afficher

    j'après mes test il le stocke bien mais affiche une cadre noir je ne comprend pas pourquoi

    merci de m'aider à comprendre

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    import java.awt.*;
    import java.awt.image.*;
    import java.io.*;
     
    import javax.imageio.ImageIO;
    import javax.swing.*;
     
     
    public class AfficheImage extends JPanel {
    	BufferedImage imageAAfficher,imageAStocker;
    	JFileChooser fc;
    	JDialog info;
    	String format;
    	File image;
    	int i=1,larg,haut;
    	private static final long serialVersionUID = 1L;
    	boolean affiche;
    	public AfficheImage() {
    		super();
    }
     
    	 public void afficher (boolean val)
    		{
    		  fc = new JFileChooser();
    		  int vals = fc.showOpenDialog(this);
    		  if (vals==JFileChooser.CANCEL_OPTION)
    			  image=null;
    		  else
    			  {
     
    			    image=fc.getSelectedFile();
    			    format = (image.toString()).substring((image.toString()).lastIndexOf('.')+1);
     
    			    //Fonction pour ecrire sur  disque
     
    			    SauveImage(i,image.toString());
     
    			    //Image suivante
    			    i++;
    			    affiche =  val;
    			  }
     
     
    			   try {
    				   imageAAfficher = ImageIO.read(image);
    			       } catch (IOException e) {
     
    				     e.printStackTrace();
    			      }
    			   repaint();
    		}
    	private void SauveImage(int val, String img) {
    		image = new File(img);
    	    BufferedImage bi = new BufferedImage(300, 300, val);
    	    format = img.substring(img.lastIndexOf('.')+1);
    	    try{
    	    	 boolean success = ImageIO.write(bi, format, image);
    	    	 if (!success) { 
    	    	        JOptionPane.showMessageDialog(new JFrame(), "Ecriture impossible:"+format);
    	    	 }else{
    		    	        JOptionPane.showMessageDialog(new JFrame(), "ok");
     
    	    	        }
     
    	    }catch(Exception e)
    	    {
     
    	    }
    	}
     
    	public void paintComponent(Graphics g)
    	   {
    		   super.paintComponent(g);
    		   if((imageAAfficher != null) && (affiche))
    		    {
    			   g.drawImage(imageAAfficher, 5,5,300, 300, null);
    		    }	
    	   }
    }

    l'appel est fait par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void actionPerformed(ActionEvent ev) {
    		Object src = ev.getSource();
    		if (src == MenuOuvrir)
    		{	 //panneauGauche.afficher(true);
    		     System.out.println(ev.getActionCommand());
    		     PanelDeGauche.afficher(true);
     
    		}
    		if (src == MenuQuitter)
    		{	 
    			System.exit(0);
    		}
    	}

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah c'est normal.

    Dans ton SauveImage l'images que tu utilises dans ImageIO.write (bi), tu viens de la créer et tu n'as absolument rien dessiné dedans...

  3. #3
    Membre expérimenté

    Homme Profil pro
    Ingénieur logiciel embarqué
    Inscrit en
    Juillet 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur logiciel embarqué
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2002
    Messages : 411
    Par défaut
    une fois que tu a ton buffer (bi, buffer pour moi) tu doit mettre l'image (output_data dans l'exemple) dedan :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Graphics2D g2d = buffer.createGraphics();
    g2d.drawImage(output_data, 0, 0, w, h, null);
    ensuite seulement tu fait ton ImageIO.write(...)

Discussions similaires

  1. [BufferedImage] Redimensionner / Sauvegarder image sur disque
    Par nicolas.pied dans le forum Multimédia
    Réponses: 1
    Dernier message: 17/04/2007, 03h54
  2. [Image]charger une image sur une page HTML
    Par Malo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/07/2006, 19h33
  3. Charger une image sur la page web
    Par gregbart dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/03/2006, 19h18
  4. [PHP-JS] charger plusieurs images sur le serveur
    Par ehmppowa dans le forum Langage
    Réponses: 4
    Dernier message: 13/12/2005, 17h22
  5. enregistrer image sur disque avec URL
    Par meufeu dans le forum Langage
    Réponses: 8
    Dernier message: 26/10/2005, 13h55

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