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 :

convertir l'image d'un espace de couleur à un autre


Sujet :

2D Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 8
    Points
    8
    Par défaut convertir l'image d'un espace de couleur à un autre
    salut tout le monde!
    En fait je veux bien savoir comment convertir mon image d'un espace de couleur à un autre par exemple de RGB en HSV (CMJN,YCrCb..).D'apres mes recherche j'ai remarqué qu'il y en a des methodes de type RGBtoHLS mais ca ne marche pas j'aime bien avoir un code (et c'est en java que je travaille )pour que je puisse le modifier selon le contexte voulue,encore une question ,est ce que je peux travailler sur une image de type imageIcon ou bien je dois la convertir en BuffredImage.
    MERCI POUR VOTRE AIDE et à Bientôt!!!!

  2. #2
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,

    Pour convertir une couleur de RGB en HSV, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int red = 255;
    int blue = 0;
    int green = 0;
     
    float hsbValues = new float[3];
     
    Color.RGBtoHSB(red, green, blue, hsbValues);
     
    System.out.println("Hue :\t" + hsbValues[0]);
    System.out.println("Saturation :\t" + hsbValues[1]);
    System.out.println("Brightness :\t" + hsbValues[2]);
    Par contre, pour ce qui est des valeurs en CMJN, ou YCrCb (ça existe, ça ??), essaie de chercher des codes sources sur google.

    Pour choisir entre ImageIcon et BufferedImage, ça dépend de ce que tu veux en faire.
    Mais si tu veux modifier l'image, il faudra obligatoirement utiliser une BufferedImage.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 8
    Points
    8
    Par défaut conversion
    merci bien pour ton aide,mais pour convertir l'image je dois la préciser donc l'instancier ,je vopis pas ou es ce que je vais le faire dans ton code et à propos de image et icon, on a la possibilité d'appliqué plusieurs modifications et plusieurs méthoses avec l'image que l'icon.merci bien de m'expliqué ton code avec des commentaires

  4. #4
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Là je ne te suis plus trop. Est-ce que tu pourrais me dire plus précisément :
    - qu'est-ce que tu veux dire par convertir une image ? Passer d'un tableau de valeurs RGB à un tableau de valeurs HSB ? Ou passer d'un objet ImageIcon à un objet BufferedImage ?
    - ou est-ce que tu vois qu'on peut modifier le contenu d'une Image ou d'une Icon ?

    Par rapport à mon code, il prend en entrée 3 nombres : red, green et blue, et donne en sortie trois nombres : hsbValues[0], hsbValues[1] et hsbValues[2] qui définissent la même couleur mais avec un codage différent. Le revoilà en plus détaillé :
    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
    21
    22
    23
    // valeurs initiales de la couleur
    int red = 255;
    int blue = 0;
    int green = 0;
     
    // tableau qui va servir à contenir les valeurs hsb
    float[] hsbValues = new float[3];
     
    // conversion
    Color.RGBtoHSB(red, green, blue, hsbValues);
     
    // Voici comment construire un objet Color en RGB
    Color rgbColor = new Color(red, green, blue);
     
    // Voici comment construire un objet Color en HSB
    Color hsbColor = Color.getHSBColor(hsbValues[0], hsbValues[1], hsbValues[2]);
     
    // On teste que les deux objets décrivent la meme couleur
    System.out.println(rgbColor);
    System.out.println(hsbColor);
     
    if(rgbColor.equals(hsbColor))
      System.out.println("Les couleurs sont les mêmes");

Discussions similaires

  1. [Image] Transformations des espaces de couleurs
    Par benDelphic dans le forum Contribuez
    Réponses: 2
    Dernier message: 05/02/2015, 17h03
  2. convertir une image en niveau de gris en niveau de couleur
    Par roulian46 dans le forum Graphisme
    Réponses: 1
    Dernier message: 20/05/2011, 05h56
  3. [Image] [JAI] conversion d'espaces de couleur
    Par Patriarch24 dans le forum Graphisme
    Réponses: 2
    Dernier message: 25/08/2010, 17h01
  4. Réponses: 0
    Dernier message: 20/01/2010, 10h57
  5. Convertir une image couleur en niveau de gris
    Par mine87 dans le forum Flex
    Réponses: 1
    Dernier message: 29/12/2009, 12h20

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