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 :

[Image]Gérer la transparence


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
    Septembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 95
    Par défaut [Image]Gérer la transparence
    Bonjour,

    je recopie des images dans une Image. Il s'agit d'une image qui se superpose à une autre, seulement :

    1 - Le fond de mon Image est noir par défaut, comment le rendre transparent ?

    2 - Comment :
    + recopier des images transparentes dans l'Image ?
    + gérer la transparence de mon Image ?

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 905
    Billets dans le blog
    54
    Par défaut
    Pour ma part j'utilise une methode de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
    for (int j = 0 ; j < height ; j++) {
      for (int i = 0 ; i < width ; i++) {
        image.setRGB(i, j, 0);
      }
    }
    ou ceci (après avoir lu l'un des post récents sur le blog de Gfx) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GraphicsConfiguration configuration = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
    BufferedImage result = configuration.createCompatibleImage(width, height, Transparency.TRANSLUCENT);
    Pour la recopie d'autres images (transparentes ou pas) dans celle-ci, un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Graphics2D graphics = image.createGraphics();
    graphics.drawImage(anotherImage, x, y, null);
    graphics.dispose();
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 905
    Billets dans le blog
    54
    Par défaut
    Gérer la transparence comment ?

    - facon faire varier la transparence quand on compose des images entre elles. Voir du côté de la classe AlphaComposite et de la démo Java2D fournie avec le JDK.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Graphics2D graphics = ...
    graphics.setComposite(maComposite);
    ...
    - facon transparence dans le fichier image. ImageIO gère très bien la transparence dans les PNG sans avoir besoin de spécifier quoi que ce soit. Pour les GIF il faudra voir les options du writer fournis avec le JDK 6 mais ce n'est pas une vrai transparence, c'est juste 1 couleur parmis les 256 dont on décide qu'elle ne s'affiche pas. Pour d'autres writers/encodeur GIF il faut voir dans leur doc comment spécifier la couleur transparente.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Personnellement j'utilise des PNG ou, quand je veux superposer des images, une BufferedImage de type TYPE_INT_ARGB. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2 = img.getGraphics();
    g2.drawImage(monImage, 0, 0, null);
    g2.dispose();
    Les TYPE_INT_ARGB ont plein d'avantages notamment d'avoir un tres bon support pour l'acceleration materielle (contrairement par exemple au(x) type(s) BYTE utilise(s), par exemple, par ImageIO pour charger des JPEG).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 95
    Par défaut
    merci beaucoup, je vais essayé tout ça...

    Losque je parlais de gérer la transparence, je veus parler d'afficher une image avec une variable d'opacité

    quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dst.drawImage(monImage, x, y, null, opacity);
    C'est possible ?

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 905
    Billets dans le blog
    54
    Par défaut
    => AlphaComposite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Composite oldComposite = graphics.getComposite();
    Composite newComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, opacity);
    graphics.setComposite(newComposite);
    graphics.drawImage(image, x, y, null);
    graphics.setComposite(oldComposite);
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 95
    Par défaut
    Merci beaucoup ^^

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 06/11/2006, 14h45
  2. [image] Problème de transparence
    Par Cedrun dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 19/09/2006, 00h40
  3. [D5] Zoom d'image PNG avec transparence
    Par Thierry Laborde dans le forum Delphi
    Réponses: 9
    Dernier message: 12/06/2006, 15h41
  4. [FLASH MX2004] Les images avec fond transparent
    Par Garra dans le forum Flash
    Réponses: 5
    Dernier message: 24/03/2006, 18h19
  5. Image avec fond transparent
    Par Virgile59 dans le forum Access
    Réponses: 3
    Dernier message: 16/09/2005, 11h48

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