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

avec Java Discussion :

Actualiser une image à partir d'un bouton


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Actualiser une image à partir d'un bouton
    Bonjour,
    Je suis débutant en Java et dans le cadre d'un projet, je voudrais pouvoir envoyer une image d'un serveur à un client puis que ce client modifie l'image avant de la renvoyer à ce même serveur.
    Malheureusement je ne suis pas très doué, j'ai réussi à m'en sortir pour la 1ère partie mais je n'arrive pas à appliquer la modification de l'image sur la panneau d'affichage...
    Merci de votre aide!

    Code serveur:

    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
    public class SendImage extends JFrame {
        BufferedImage bi;
        JButton btn;
        ServerSocket serverSocket;
        Socket socket;
     
     
     
        public SendImage() {
            super("SendImage");
            bi = createImage();
            this.add(btn = new JButton("Send"), BorderLayout.NORTH);
            this.add(new JLabel(new ImageIcon(bi)), BorderLayout.CENTER);
            this.setSize(511, 512);
            this.setVisible(true);
            this.setDefaultCloseOperation(EXIT_ON_CLOSE);
            this.setLocationRelativeTo(null);
            try{
                 serverSocket = new ServerSocket(8000);
                 socket = serverSocket.accept();
            }
            catch(IOException ex){
                System.err.println(ex);
            }
            btn.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    try {
                        ImageIO.write(bi, "PNG", socket.getOutputStream());
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            });
        }
        public BufferedImage createImage() {
            BufferedImage bi = null;
    		try {
    			bi = ImageIO.read(new File("java.jpg"));
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
            return bi;
        }
        public static void main(String[] args) {        
                    new SendImage();
        }
    }
    Code Client:

    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
    public class ReceiveImage extends JFrame {
    	JButton btn1;
    	JButton btn2;
    	BufferedImage image;
     
     
    		public ReceiveImage() {
            super("ReceiveImage");
            this.setSize(511, 522);
            this.add(btn1 = new JButton("Modify"),BorderLayout.NORTH);
            this.add(btn2= new JButton("Re Send"),BorderLayout.SOUTH);
            this.setVisible(true);
            this.setDefaultCloseOperation(EXIT_ON_CLOSE);
            this.setLocationRelativeTo(null);
     
     
                    try 
                    {
                    	Socket socket = new Socket("127.0.0.1", 8000);
                    	BufferedImage image = ImageIO.read(socket.getInputStream());
                    	this.image = image;
                    	this.add(new JLabel(new ImageIcon(image)), BorderLayout.CENTER);
     
     
     
                    } 
                    catch (IOException e) 
                    {
                    	// TODO Auto-generated catch block
                    	System.err.println(e);
                    }
     
     
            btn1.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
     
     
    				BufferedImage imageFlou = new BufferedImage(image.getWidth(),image.getHeight(), image.getType());
    				float[ ] masqueFlou = 
    				{
    					0.1f, 0.1f, 0.1f,
    					0.1f, 0.2f, 0.1f,
    					0.1f, 0.1f, 0.1f
    				};
     
    				Kernel masque = new Kernel(3, 3, masqueFlou);
    				ConvolveOp opération = new ConvolveOp(masque);
    				opération.filter(image, imageFlou);
    				image = imageFlou;
    				repaint();
     
     
                }
            });
            revalidate();
     
    	    }
     
     
            public static void main(String[] args) {        
                new ReceiveImage();
    }
    		@Override
    		public void actionPerformed(ActionEvent arg0) {
    			// TODO Auto-generated method stub
     
    		}
     
    }

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    image = imageFlou;
    repaint();
    Tu dois adapter aussi ton label, sinon il continue d'afficher l'image précédente. Il n'y a pas de lien entre ce qu'affiche le JLabel et ton champs "image", du coup changer le champ image ne change rien au JLabel.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    leLabel.setIcon(new ImageIcon(image));

  3. #3
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup!!

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

Discussions similaires

  1. [Débutant] Charger une séquence d'images à partir d'un bouton
    Par Boutheina87 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 27/06/2014, 06h39
  2. [Débutant] GUI charger une image à partir d'un bouton
    Par phyfab dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 17/06/2014, 16h13
  3. [ImageMagick] Générer une image à partir de plusieurs images ?
    Par fichtre! dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/02/2005, 15h32
  4. [CR] Inserer une image à partir d'un fichier
    Par Gandalf24 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 23/07/2003, 10h55
  5. Réponses: 3
    Dernier message: 12/06/2002, 19h03

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