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

Graphisme Java Discussion :

Modification d'image en asynchrone


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Par défaut Modification d'image en asynchrone
    Bonjour,

    Je poste ici car mon problème concerne une BufferedImage mais j'effectue mon traitement dans une servlet.
    C'est assez bizarre, car mon code marchait une fois deployé sur le tomcat de netbeans, mais pas sur un tomcat normal ou encore sur celui d'Eclipse.

    Donc j'essaye d'ouvrir une image, de la retailler et de l'afficher (mon projet ne se reduisait pas à ça, mais là, j'essaye de revenir au plus simple). j'arrive à l'ouvrir et à l'afficher mais dès que j'essaye de la retailler, là j'ai plus rien, pas d'Exception mais ma BufferedImage est vide.

    A cause de ce code là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    newBuf = new BufferedImage(150, 150, BufferedImage.TYPE_INT_ARGB);
     
    Graphics2D g = newBuf.createGraphics();
    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    g.drawImage(buf, 0, 0, 150, 150, null);
    g.dispose();
    Mmon traitement complet :
    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
     
    ServletContext sce = this.getServletContext();
    String sourcePath = sce.getRealPath("/images/naissance.jpg");
     
    File fic = new File(sourcePath);
    BufferedImage buf = null;
    try { 
          buf = ImageIO.read(fic);
    } 
    catch (IOException e) { e.printStackTrace(); }
     
     
    //traitement à probleme
    newBuf = new BufferedImage(150, 150, BufferedImage.TYPE_INT_ARGB);
     
    Graphics2D g = newBuf.createGraphics();
    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    g.drawImage(buf, 0, 0, 150, 150, this);
    g.dispose();
     
    //je renvois directement le flux de l'image, au lieu d'ecrire un fichier
    this.response.setContentType("image/jpeg");
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    try {
    	ImageIO.write(buf, "jpeg", out);
    	out.writeTo(response.getOutputStream());
    } catch (IOException e) {
    	e.printStackTrace();
    }

    Et ça ne genere pas d'Exception mais je n'ai plus aucun flux de renvoyé.
    Donc, j'ai cherché un peu, il semble que ça vienne du traitement asynchrone de mes BufferedImage. Il faudrait que j'utilise un ImageObserver pour continuer mon traitement mais je ne vois pas comment le mettre en place.

    Si vous avez une idée ?

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Par défaut
    Bon bah la réponse était simple :p

    BufferedImage.TYPE_INT_ARGB ne fait pas bon menage avec
    this.response.setContentType("image/jpeg");

    De la transparence en jpeg...., ça se saurait

    Bonne soirée.

  3. #3
    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
    De plus, tu étais sur une piste plutôt mauvaise car ImageIO a des méthodes qui sont synchrones (et non asynchrones comme peuvent l'être celles de Toolki.getDefaultToolkit()...)

    Penses à passer tes sujets en résolu quand c'est le cas (ici je l'ai fait pour toi)

  4. #4
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Par défaut
    Oki, merci.

    J'y penserai la prochaine fois.

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

Discussions similaires

  1. [web]Modification d'image en ligne.
    Par tydjet dans le forum Graphisme
    Réponses: 6
    Dernier message: 03/11/2008, 08h52
  2. [web] modification d'image en ligne.
    Par tydjet dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 31/10/2008, 14h53
  3. Modification d'images chargée à la volée
    Par popovitch130 dans le forum Flash
    Réponses: 4
    Dernier message: 13/08/2008, 22h35
  4. modification format image par VBA
    Par coyote égaré dans le forum VBA Word
    Réponses: 0
    Dernier message: 04/02/2008, 12h17
  5. probleme avec le zoom avec une modification d'image
    Par yoyo59650 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/02/2006, 09h22

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