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

AWT/Swing Java Discussion :

Dessiner image partiellement transparente


Sujet :

AWT/Swing Java

  1. #1
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut Dessiner image partiellement transparente
    Salut,

    J'ai une image (BufferedImage avec comme type TYPE_INT_ARGB) totalement opaque, je voudrais lui appliquer un filtre pour la mettre par exemple avec une transparence à 127 pour le canal alpha.

    Comment dois-je m'y prendre?

    Merci d'avance, je n'ai jamais vraiment fait de dessin 2D...

  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
    Créer une nouvelle BufferedImage de la taille de l'ancienne, récupérer ses Graphics2D, leur définir un niveau de tranparence en passant par un composite et dessiner l'ancienne image dans ces graphics.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    BufferedImage src = ImageIO.read(...);
    BufferedImage dst = new BufferedImage(src.getWidth(),src.getHeight(),BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2d = (Graphics2D) dst.createGraphics();
    g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.2f )); // sert à mettre la tranparence
    g2d.drawImage(src,0,0,null);
    ImageIO.write(dest,"png",...); //si tu as besoin de sauvegarder dans un fichier prends un type qui gère la transparence, le png au hasard
    ensuite si c'est pour la dessiner sur un panel il suffit de placer les opérations de dessin dans le paintComponent et pour les Graphics2D il sont récupérables par un simple cast depuis les gGraphics fournis en paramètre de la méthode

  3. #3
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Merci, il me manquait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.2f ));

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

Discussions similaires

  1. Comment utiliser usemap sur une image png transparente
    Par master_kb2 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/01/2008, 14h00
  2. Impossible de dessiner Image avec Graphics sur pictureBox
    Par Arnard dans le forum Windows Forms
    Réponses: 11
    Dernier message: 14/12/2007, 14h06
  3. Superposition d'images semi-transparentes
    Par Celelibi dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 13/12/2006, 15h30
  4. [Dessin]Image qui ne s'enleve pas
    Par ehmppowa dans le forum 2D
    Réponses: 4
    Dernier message: 28/03/2006, 11h39
  5. problème dessiner image dans fenêtre
    Par raoulman dans le forum MFC
    Réponses: 5
    Dernier message: 13/12/2004, 15h44

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