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

Python Discussion :

Equivalence rgb 16bits en 8bits?


Sujet :

Python

  1. #1
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut Equivalence rgb 16bits en 8bits?
    Bonjour,
    J'ai besoin de trouver des équivalences, en 8bits, de couleurs rgb codés en 48 bits 16 bits que me retournes une commande de Tkinter.
    ...
    Comment m'y prendre?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par Hominidé Voir le message
    Comment m'y prendre?
    Ben il faut faire une surjection... et comme vous n'êtes certainement pas le premier à avoir ce problème regarder ce qui traîne sur Internet est une piste.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    48 bits ?

    J'ai trouvé ce bout de code, il fonctionne très bien chez moi :

    Code Python : 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
    import tkinter as tk
     
    def hex_to_rgb(value):
        value = value.lstrip('#')
        lv = len(value)
        return tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
     
     
    def _from_rgb(rgb):
        """translates an rgb tuple of int to a tkinter friendly color code
        """
        return "#%02x%02x%02x" % rgb
     
     
    h_color = _from_rgb((0, 10, 255))
     
    print(hex_to_rgb(h_color)) # (0, 10, 255)
     
    root = tk.Tk()
    root.configure(bg=h_color)
    root.mainloop()

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut
    Bonsoir,
    merci à vous.
    wiztricks : Ma première approche était de faire une règle de trois mais les résultats me paraissaient incorrects . En fait, le problème se situait non pas dans la conversion mais à dans la suite de mon programme. La fatigue aidant j'ai douté et j'ai posté
    ça m'a permis de voir ce qu'est une surjection (ben oui , l'école et l'enfance ça date)

    danielhagnoul: oui 48bit , il s'agissait du retour de root.winfo_rgb() qui est codé en 48bit ...
    édit: il s'agit d'une coquille de la documentation que j'avais consulté... Tkinter travaille en interne en 16 bit.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par Hominidé Voir le message
    wiztricks : Ma première approche était de faire une règle de trois mais les résultats me paraissaient incorrects
    C'est plus compliqué qu'une règle de 3, voir cet article sur SOW.


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut
    Ok je regarderai ça demain à tête reposée. merci

  7. #7
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    C'est plus compliqué qu'une règle de 3, voir cet article sur SOW.


    - W
    Je n'en suis pas convaincu . Tkinter travaille en interne en 16 bits mais il semble que toutes les couleurs ont leurs équivalences en 8 bits. d'ailleurs lorsqu’on fait bg="##b7f731" ça correspond bien à une couleur rgb codé en 8bits, non?
    En tous cas les retours du test ci dessous semblent valides
    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
    24
    25
    26
    import tkinter as tk
     
    root = tk.Tk()
    def hex_to_rgb(value):
            value = value.lstrip('#')
            lv = len(value)
            return tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
     
    for test in ['pink', 'yellow', 'grey', 'grey4','red4']:
            frame = tk.LabelFrame(root,text='test', width=100,height=40,  bg=test, bd=2)
            frame.grid()
            R,G,B=root.winfo_rgb(test)
            test = "#%02x%02x%02x" %(R//256, G//256, (B//256))
            print(R,G,B,"____",test)
            frame2 = tk.Frame(root, width=100,height=40,  bg=test)
            frame2.grid()
     
     
    for test in ['#b7f731', '#CD5C5C', '#F08080', '#FA8072', '#E9967A', '#454545']:
        rgb = root.winfo_rgb(test)
        print(rgb)
        R, G, B = rgb
        print((R//256, G//256, B//256))
        print(hex_to_rgb(test))
     
    root.mainloop()

  8. #8
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par Hominidé Voir le message
    Je n'en suis pas convaincu . Tkinter travaille en interne en 16 bits mais il semble que toutes les couleurs ont leurs équivalences en 8 bits. d'ailleurs lorsqu’on fait bg="##b7f731" ça correspond bien à une couleur rgb codé en 8bits, non?
    En tous cas les retours du test ci dessous semblent valides
    Qui ne dit mot, consent...
    J'édite alors en résolu

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

Discussions similaires

  1. Equivalent c# de RGB(a,b,c)
    Par Le gris dans le forum C#
    Réponses: 3
    Dernier message: 11/06/2012, 19h31
  2. Décomposition Couleur 8bit en RGB
    Par norwy dans le forum C
    Réponses: 4
    Dernier message: 27/09/2006, 17h53
  3. [C#] Equivalent méthode RGB de Visual Basic
    Par frechy dans le forum C#
    Réponses: 11
    Dernier message: 13/11/2005, 01h13
  4. [Kylix] Equivalent ShellExec en CLX
    Par Anonymous dans le forum EDI
    Réponses: 7
    Dernier message: 14/08/2002, 11h55
  5. [Kylix] equivalent winsock avec kylix
    Par Victor dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 07h43

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