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 et codage RGB


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
    Mars 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Par défaut Image et codage RGB
    Bonjour,

    J'ai lu un topic sur le codage RGB car c'est la 1er fois oùje suis confronté au codage des couleurs en info.

    R : 256 poss
    G : 256 poss
    B : 256 poss

    Ils parlent de 16777216 de possibilites (256*256*256).

    J'ai une image que je dois construire pixel par pixel (avec une boucle). La fonction "setRGB"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setRGB(int x, int y, int rgb)
    de la classe BufferedImage devrait me permettre de le faire.

    Mais comment obtient t-on la valeur entière "int rgb" a partir d'une couleur voulue ?

    Au depart, je pensais naivement que cela revenait a multiplier les termes RGB entre eux mais vu ce cas, cela ne doit aps etre ca (sinon ce serait les memes valeurs lol)

    rouge R = 255 , G = 0 , B = 0 ==> ?
    bleu R = 0, G = 0 , B = 255 ==> ?
    ....

    Merci pour votre aide

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Voila la formule magique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int rgb = (r<<16) | (g<<8) | b;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Par défaut
    Citation Envoyé par Sanguko
    Voila la formule magique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int rgb = (r<<16) | (g<<8) | b;
    Et en francais ca donne ?
    A quoi ca sert le decalage de bit dans ce ca sla, merci

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    La couleur est codé sur 32 bits
    Les 8 bits entre les positions16 et 24 servent a coder le rouge
    Les 8 bits entre les positions 8 et 16 servent a coder le vert
    Les 8 bits entre les positions 0 et 8 servent a coder le blue

    Dans la formule, (r<<16) positionne donc le rouge sur les 8 bits qui vont de la position 16 à la position 24.
    Si par exemple r=0x000000A0, r<<16 vaut 0x00A00000
    Si je fais pour toutes les composantes :
    r=0x000000A0, r<<16 donne 0x00A00000
    g=0x000000B0, r<<16 donne 0x0000B000
    b=0x000000C0, r<<16 donne 0x000000C0
    Avec le "ou" de la formule, ca donne pour rgb:
    rgb = 0x00A0B0C0;

  5. #5
    Membre expérimenté Avatar de jibbi
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 165
    Par défaut
    Salut

    Réponse à ta question ici:

    http://www.developpez.net/forums/sho...42&postcount=4

  6. #6
    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
    Par défaut
    Ou si tu veux le faire plus "lentement" à l'exécution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Color(r,g,b).getRGB()

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

Discussions similaires

  1. Superposition de deux images avec codage différent
    Par cedji dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 15/02/2012, 15h12
  2. Convertir une image binaire en RGB
    Par miss_angel dans le forum OpenCV
    Réponses: 0
    Dernier message: 28/06/2011, 18h04
  3. Transformer une image gray to rgb
    Par abdobergach dans le forum Images
    Réponses: 3
    Dernier message: 24/06/2011, 10h07
  4. conversion d'image monochrome vers rgb
    Par Alec6 dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 05/11/2009, 12h34
  5. Image grayscale to rgb?
    Par soeursourire dans le forum Images
    Réponses: 5
    Dernier message: 10/11/2007, 18h09

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