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 :

Détection transparence & modification couleur


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Par défaut Détection transparence & modification couleur
    Bonjour,

    Avant tout, merci d'avance à ceux qui vont prendre du temps pour lire ce post et y répondre.

    Voici ma première question : existe-t-il un moyen de vérifier si une image contient une zone de transparence ? Prenons l'exemple d'un png, même si le format permet de gérer la transparence, tout les png n'ont pas de zones transparentes. Comment faire pour savoir si l'image contient des pixels transparents ?

    Voici ma seconde question : lorsque j'ai une image qui possède des zones transparentes (BufferedImage chargée à partir d'un png). Comment puis je faire pour remplacer les pixels transparents par une couleur quelconque (blanc par exemple) ?


    Merci,
    Quentin.

    P.S : Edit - Rajout de la seconde question.

  2. #2
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Citation Envoyé par Quentin D Voir le message
    Bonjour,

    Avant tout, merci d'avance à ceux qui vont prendre du temps pour lire ce post et y répondre.

    Voici ma première question : existe-t-il un moyen de vérifier si une image contient une zone de transparence ?
    toujour avec du code source

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Raster trame      = imageARGB.getData();
    ColorModel modèle = imageARGB.getColorModel();
     
    for (int y=0; y<imageARGB.getHeight(); y++)
    				for (int x=0; x<imageARGB.getWidth(); x++) 
    				{
     
    				  Object données = trame.getDataElements(x, y,null);
     
    				  alpha[(modèle).getAlpha(données)]++;
     
    	                         }
    et me prévenir des résultats

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Par défaut
    Merci pour la réponse..

    Je me réattaque à ça cet aprem ou demain matin et je te donnerai des infos sur le résultat obtenu..

  4. #4
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    ou bien un code trouvé dans la FAQ

    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
     
    public boolean alphaLayer(Image image){
       ColorModel modele = null; 
       if(image instanceof BufferedImage){
          // si on a affaire à une BufferedImage on regarde son ColorModel
          BufferedImage bi = (BufferedImage)image;
          modele = bi.getColorModel(); 
       }else {
         // on traite l'image pixel par pixel afin de récuperer un ColorModel
          PixelGrabber pg = new PixelGrabber(image, 0, 0, 1, 1, false); 
          try{
           // on découpe donc l'image pixel par pixel
             pg.grabPixels(); 
          }catch (InterruptedException e) {
             e.printStackTrace();
          } 
          modele = pg.getColorModel();
       }
       return modele.hasAlpha(); 
    }

Discussions similaires

  1. Transparence d'une couleur dans une CDialog
    Par CrazyDev dans le forum MFC
    Réponses: 2
    Dernier message: 09/11/2006, 17h30
  2. Réponses: 1
    Dernier message: 02/11/2006, 09h25
  3. détection zone pour changer couleur
    Par petunia28 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/05/2006, 17h13
  4. modification couleur de fond d'un textbox
    Par zeby dans le forum IHM
    Réponses: 3
    Dernier message: 01/02/2006, 18h24
  5. Réponses: 1
    Dernier message: 23/02/2003, 06h22

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