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

Applets Java Discussion :

Ouvrir une image depuis le disque dur


Sujet :

Applets Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Ouvrir une image depuis le disque dur
    Bonjour,

    je suis novice en Java, j'aimerais connaitre un moyen d'intégrer une image sur une page web depuis le disque dur local de l'utilisateur.
    J'arrive à récupérer le nom de fichier sélectionné depuis une boite de dialogue javascript (type="file"), ou afficher une image depuis le serveur...
    J'ai signé mon applet afin qui l'application ait accès directement au contenu local, mais toujours rien :/ ...
    Des pistes?

    Merci.

    voici le code que j'utilise:

    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
    import java.applet.Applet;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Label;
    import java.awt.event.*; 
    import javax.imageio.*;
    import javax.swing.*;
    import com.sun.image.codec.jpeg.JPEGCodec;
    import com.sun.image.codec.jpeg.JPEGImageEncoder; 
    import java.lang.System;
     
    // Graphics and Image Classes 
    import java.awt.image.*;
    import java.io.*; 
    import java.io.File; 
    import com.sun.image.codec.jpeg.*; 
     
     
     
    public class helloworld extends Applet {
     
        StringBuffer buffer; 
        Graphics graph=null; 
     
     
        private Image image = null; // A la construction de notre objet, image est initialisé à null
     
        public void init() { 
     
            //System.setSecurityManager(null); 
            buffer = new StringBuffer(); 
            buffer.append("Ici l'Applet :"); 
            repaint(); 
     
    	}
     
        public void paint(Graphics g) {
     
            g.drawString( buffer.toString(),20,25); 
            graph=g;   
     
        } 
    }

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ça ne serait pas plus simple de faire un upload de l'image sur le serveur et d'utiliser une balise <img> standard ?
    Quel est l'intérêt au juste de prendre l'image du poste client ?

    Sinon, oui, l'applet signée fonctionnera...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    L'intérêt c'est de ne pas surcharger le serveur d'images uploadées par les utilisateurs, sachant que le gestionnaire du serveur est responsable du contenu... ça évite beaucoup de soucis.
    J'ai finalement finis par trouver ce code qui fonctionne parfaitement pour afficher une image depuis le disque (avec le jar évidemment signé)... maintenant je dois récupérer cette image et faire un "drag n drop" pour l'envoyer dans un champ html...
    Si vous avez une idée je suis toujours preneur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <html>
    <head>
    </head>
    <body bgcolor="#ffffff">
    <applet codebase="./" code="test.class" archive="test2.jar" name="myApplet" width="500" height="500"></applet>
        <!-- Fonction de test de récupération de données de l'applet  -->
        <a href="javascript:alert(document.myApplet.getString());">chemin du r&eacute;pertoire</a>
    </body>
    </html>
    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
     
    import java.applet.*;
    import java.awt.*;
    import java.util.*;
    import java.lang.*;
    import java.text.*;
    import java.awt.event.*; 
    import java.io.*;
    import javax.swing.*;
    import java.net.URLDecoder;
     
     
    public class test extends Applet {
         String sFileName; 
         ImageIcon icon;
         Image img;
        String sjsFileName;
        String sjsFilePath;
     
        public test() {
            Panel p = new Panel();
            Font f;
            String osname = System.getProperty("os.name","");
            if (!osname.startsWith("Windows")) {
                f = new Font("Arial",Font.BOLD,10);
            } else {
                f = new Font("Verdana",Font.BOLD,12);
            }
            p.setFont(f);
            p.add(new Button("Parcourir"));
     
            p.setBackground(new Color(255, 255, 255));
     
            add("North",p);
     
        }
        public boolean action(Event evt, Object arg) {
            if (arg.equals("Parcourir")) {
                System.out.println("OPEN CLICKED");
                // cette méthode fonctionne
                Frame parent = new Frame();
                FileDialog fd = new FileDialog(parent, "Répertoire de l'image:", FileDialog.LOAD);
                fd.show();
                String selectedItem = fd.getFile();
                if (selectedItem == null) {
                    // no file selected
                } else {
                    // read the file
                    //System.out.println("reading file " + fd.getDirectory() + File.separator + fd.getFile() );
                    sFileName = fd.getDirectory() + File.separator + fd.getFile();
     
                    displayFile(sFileName); 
                }        
            } else return false;
            return true;
        }
     
        public void paint(Graphics g)
        {
            int width, height;
     
            if (img!=null) {
                    width = img.getWidth(this);
                    height = img.getHeight(this);
                if (width < height) {
                    if (height <= 500)    {
                        g.drawImage(img, 0, 40, this);
                    }else {
                        double ratio = 500 / (double) height;
                        double temp2 = width*ratio;
                        int temp = (int) temp2;
                        g.drawImage(img, 0, 40, temp, 500, this);
                    }
                } else {
                    if (width <= 500)    {
                        g.drawImage(img, 0, 40, this);
                    }else {
                        double ratio = 500 / (double) width;
                        double temp2 = height*ratio;
                        int temp = (int) temp2;
                        g.drawImage(img, 0, 40, 500, temp, this);
                    }
                }
            }    
        }
     
        public void displayFile (String sFileName){
            System.out.println("file name : " + sFileName);
            try {
                String slocalFileName = URLDecoder.decode(sFileName, "UTF-8");
                System.out.println("slocalFileName : " + slocalFileName);
                icon = new ImageIcon(slocalFileName);
                img = icon.getImage();
     
                repaint();
            }
            catch (Exception e)
            {
                System.out.println("erreur " + e.toString());
            }
        }
    // quand j'appelle cette fonction directement de la page html, ça génère l'exception
        public void displayFile2 (String sPathName){
            System.out.println("path name : " + sPathName);
     
            try {
                String slocalFileName = URLDecoder.decode(sPathName, "UTF-8");
     
                System.out.println("slocalFileName : " + slocalFileName);
                icon = new ImageIcon(slocalFileName);
                img = icon.getImage();
     
                repaint();
            }
            catch (Exception e)
            {
                System.out.println("erreur " + e.toString());
            }
        }
     
        public String getString() {
            return sFileName; 
        }
     
        public void setFileName(String s)  throws Exception 
        {
            try {
                 sjsFileName = new String( s );
                System.out.println("sjsFileName : " + sjsFileName);
                 return ;
            }
            catch  (Exception e)
            {
                System.out.println("erreur " + e.toString());
            }
        }
     
        public void setFilePath(String s)  throws Exception 
        {
            try {
                 sjsFilePath = new String( s );
                System.out.println("sjsFilePath  (encodé): " + sjsFilePath);
                System.out.println("sjsFilePath  (décodé): " + URLDecoder.decode(sjsFilePath, "UTF-8"));
                 sjsFilePath = new String( URLDecoder.decode(sjsFilePath, "UTF-8") );
                 return ;
            }
            catch  (Exception e)
            {
                System.out.println("erreur " + e.toString());
            }
        }
    }

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    ton applet est autorisée à ouvrir un socket vers son serveur, tu peux t'en servir pour remonter l'image.
    pour le code proprement dit de l'applet, je suis un peu rouillé dans les clients lourds
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/01/2009, 21h10
  2. recuperer une image sauvegardée sur disque dur
    Par tatikambwa dans le forum C#
    Réponses: 3
    Dernier message: 28/05/2008, 11h21
  3. Prendre une image d'un disque dur
    Par scolyo dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2006, 13h52
  4. faire le lien avec une image sur mon disque dur
    Par tsubasette dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 23/10/2006, 00h45
  5. Faire une image de son disque dur, puis restaurer cette imag
    Par cartonis dans le forum Autres Logiciels
    Réponses: 27
    Dernier message: 18/08/2005, 16h32

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