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 :

Fond d'une Image transparent


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Fond d'une Image transparent
    Bonjours,
    voila je voudrais implementer le principe de calques.
    Mais mon problème est que je ne vois pas comment mettre le fond d'une image (en java biensur => new Image ...) transparent.
    En fait, pouvoir tracer un trait sur une image, et pouvoir superposer cette image sur une autre en n'ayan de visible que le trait et les autres éléments de l'autres image.
    Si quelqu'un peut m'aider....
    Merci d'avance.

  2. #2
    Membre averti Avatar de dazz_x
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 269
    Points : 328
    Points
    328
    Par défaut
    je suis en train de réaliser un editeur de graphes (quasiment terminé d'ailleurs), et j'ai eu à réaliser ce dont tu parles :
    - création d'une couche arrière-plan (image orthophoto ou satellite)
    - création de plusieurs couches de graphes

    Le choix que j'ai fait est d'avoir un Manager de couches qui maintient une liste des couches dessinées et de leur ordre
    Toutes mes couches dérivent d'un type général de couche et les méthodes particulières sont gérées grâce au polymorphisme.
    Dans la méthode draw de mon Manager, je passe le contexte graphique du panel où je dessine. Il itère sur les couches dans un ordre particulier en passant le contexte graphique à toutes les couches. Comme ça, je dessine mon image en premier (qui sera comme en fond d'écran) et mes couches de graphes sont dessinées les unes sur les autres.
    C'est le manager qui s'occupe de dispatcher les évènements souris, et de gérer le zoom grâce à un viewport perso.

    Voilà, voilà, c'est juste une idée comme ça

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 850
    Points : 22 861
    Points
    22 861
    Billets dans le blog
    51
    Par défaut
    Tu peux demander la creation d'une image supportant la transparence avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    GraphicsConfiguration configuration = GraphicsEnvironment.getLocalGraphicsEnvironment()
    .getDefaultScreenDevice().getDefaultConfiguration();
    BufferedImage result = configuration.createCompatibleImage(width, height, Transparency.TRANSLUCENT);
    Transparency.BITMASK peut aussi marcher (pas teste) mais a ce moment l'image sera soit opaque, soit transparente (pas de juste milieu avec de la transparence variable).

    Ou alors tu crees une BufferedImage manuellement avec un des types supportant la transparence (ex : TYPE_ARGB) et ensuite tu met manuellement tous les pixels a une couleur transparente (ex : 0, 0, 0, 0) avec la methode setRGB().

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Points : 18
    Points
    18
    Par défaut
    Tu peux également jouer sur la composante alpha de la classe Color :
    cela te fait une couleur transparente.

  5. #5
    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
    Points : 3 080
    Points
    3 080
    Par défaut
    Moi, je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BufferedImage buf = new BufferedImage(w,h,TYPE_INT_ARGB);
    Graphics2D g = (Graphics2D) buf.getGraphics();
    g.setBackground(new Color(0,0,0,0));
    et buf est une Image qui est transparente, après il suffit de dessiner sur son Graphics...

Discussions similaires

  1. Rendre le fond d'une PictureBox transparent
    Par nic076 dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/07/2011, 20h19
  2. [GD] Fond d'une image
    Par rezguiinfo dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 08/03/2010, 10h29
  3. Fond personnalisé à une image
    Par Xenon03 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 29/07/2009, 15h59
  4. Réponses: 2
    Dernier message: 27/03/2007, 17h35

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