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 :

Récupérer la valeur alpha des pixels


Sujet :

2D Java

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut Récupérer la valeur alpha des pixels
    salut j'ai un objet BufferedImage dans laquelle j'ai stocké une image extraite d'un fichier sur le disque dur avec ImageIO.read(...)
    je veut afficher les valeurs de la composante alpha d'une image dont j'ai modifier le contraste et la luminosité .
    à l'aide d'un logiciel de traitement d'image, l'histogramme est significatif par contre pour mon programme et avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                  Raster trame = image.getRaster();
    			ColorModel modèle = image.getColorModel();
    			int maximum = 0;
    			for (int y=0; y<image.getHeight(); y++)
    			for (int x=0; x<image.getWidth(); x++) 
    			{
    			Object données = trame.getDataElements(x, y, null);
                            System.out.println(modèle.getAlpha(données));
    j'obtient toujours la valeur 255 !!!
    c'est quoi le problème exactement ? avez vous des idées ?

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 872
    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 872
    Points : 22 939
    Points
    22 939
    Billets dans le blog
    53
    Par défaut
    Peux-tu verifier le type de ta BufferedImage et egalement faire(image.getRGB(x, y) >> 24) & 0xFF et voir les valeurs retournees ?

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    la valeur retourné après image.getType() est 5 c'est a dire mon image est de type TYPE_3BYTE_BGR !!!
    mon image est obtenu apartir d'un fichier image de type BMP avec ImageIO.read()
    je me souviens qu'avant j'ai essayé d'écrire mon image dans une autre de type ARGB mais j'ai obtenu 255 pour (modèle).getAlpha(données)

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 872
    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 872
    Points : 22 939
    Points
    22 939
    Billets dans le blog
    53
    Par défaut
    Et heu, c'est sensé supporter l'alpha les BMP ?

    En tout cas avec TYPE_3BYTE_BGR, cela me semble logique que cela retourne tout le temps 255 comme valeur.

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par bouye Voir le message
    Et heu, c'est sensé supporter l'alpha les BMP ?
    j'ai essayé ce traitement avec la même image avec un logiciel de traitement d'image est ça donne de bonne résultats

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par bouye Voir le message
    En tout cas avec TYPE_3BYTE_BGR, cela me semble logique que cela retourne tout le temps 255 comme valeur.
    j'ai essayé en changent le type d'image avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BufferedImage imageARGB = new BufferedImage(image.getWidth(),image.getHeight(),BufferedImage.TYPE_INT_ARGB);
    Graphics g = imageARGB.createGraphics();
    g.drawImage(image,0,0,null);
    et ca donne toujour la valeur 255

  7. #7
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 872
    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 872
    Points : 22 939
    Points
    22 939
    Billets dans le blog
    53
    Par défaut
    Cela ne changera rien, vu que ton image est chargee opaque de base.
    Si Java ne supporte pas les BMP avec transparence, ca restera toujours opaque, quelques soit le type d'image dans laquelle tu la recopies par la suite.

    http://lists.apple.com/archives/Java.../msg00301.html
    http://www.developpez.net/forums/d24...ansparent-bmp/


    Apparement le support de la transparence (soit par une seconde image qui sert de masque, soit par l'usage d'un canal Alpha pour les BMP en 32-bits), contrairement a ce que semble indiquer l'article sur wikipedia, n'est pas trop officiel et donc peut varier d'un logiciel a un autre.... donc je crois bien que tu pourrais etre parti pour toi-meme ecrire ta propre extension pour ImageIO pour lire-ecrire de tels fichiers.

    M'est avis que ca sera plus rapide (et prendra moins de place) d'utiliser des PNG a la place.

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/06/2015, 15h57
  2. [XL-2003] Récupérer les valeurs sur des colonnes spécifiques pour les coller sur un autre onglet
    Par Thomas2412 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/12/2014, 14h32
  3. Réponses: 9
    Dernier message: 03/07/2014, 19h08
  4. Récuperer la valeur rgb des pixels d'un gif
    Par sachadee dans le forum VBScript
    Réponses: 7
    Dernier message: 23/10/2013, 20h05
  5. Réponses: 1
    Dernier message: 08/05/2009, 21h37

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