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

VB 6 et antérieur Discussion :

Trouver la Luminosité d'une couleur


Sujet :

VB 6 et antérieur

  1. #21
    Membre actif
    Homme Profil pro
    libre
    Inscrit en
    Juin 2019
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : libre

    Informations forums :
    Inscription : Juin 2019
    Messages : 205
    Points : 292
    Points
    292
    Par défaut
    Par exemple, vu la taille des disques actuels, si je veux une marge de sécurité vers le haut je vais choisir une variable de type QWord (unsigned) car une variable Int64 me fera perdre toute la range 0...-92233..., étant entendu qu'il ne peut pas y avoir de tailles négatives dans ce domaine.
    Mais si tu travailles dans le bancaire, tu devras choisir des variables signées car tu pourras avoir des soldes négatifs, des fois.
    Le cas le plus fréquent c'est la comparaison entre les type signés et non signés ou dans les conditions des boucles par exemple plusieurs fonctions renvoient -1 et si on utilise ça avec un type non signé la condition ne se réalisera jamais heureusement dans certains cas le compilateur les signale mais pas tous.


    Mais un Integer qui va de -N à +N est-il un nombre signé ? (juste pour m'assurer que j'ai bien tout compris).
    Oui c'est ça en VB6 Long et Integer sont signés et Byte non signé sur un octet..

    Pour revenir au sujet initial de la discussion j'ai constater qu l'utilisation de la contraste et plus pertinent que la luminance et s'adapte bien aux différentes nuances des couleurs ..



    test sur VBA Excel
    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
    27
    28
    Private Declare Function GetSysColor Lib "user32" (ByVal ColIdx As Long) As Long
     
    Private Function Ct(ByVal Value As Long, ByVal A As Integer) As Long
    Dim m As Long
        m = (Abs(127 - Value) * A) \ 255
        Ct = IIf(m > 127, Value - m, Value + m)
        If Ct > 255 Then
            Ct = 255
        ElseIf (Ct < 0) Then
            Ct = 0
        End If
    End Function
     
    Function ChangerContrast(ByVal aColor As Long, ByVal ALevel As Integer) As Long
      Dim R As Byte, G As Byte, B As Byte
      If aColor < 0 Then
         aColor = GetSysColor(aColor And &HFF)
      End If
      R = aColor And &HFF
      G = (aColor \ &H100) And &HFF
      B = (aColor \ &H10000) And &HFF
      ChangerContrast = RGB(Ct(R, ALevel), Ct(G, ALevel), Ct(B, ALevel))
    End Function
     
    Private Sub ScrollBar1_Change()
     
      CommandButton1.ForeColor = ChangerContrast(CommandButton1.BackColor, ScrollBar1.Value)
    End Sub

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 53
    Points
    53
    Par défaut
    Bonjour,
    Merci pour vos réponses.
    Citation Envoyé par Jipété Voir le message
    Je n'aurais pas dit ça comme ça, parce que ça n'a pas d'importance.
    Ce qui est important, c'est l'étendue possible des valeurs, et donc tu choisiras tes variables en conséquence.
    Oui bien sûr. C'était juste pour m'assurer que je n'avais pas loupé une étape.

    Citation Envoyé par wheel
    Pour revenir au sujet initial de la discussion j'ai constater qu l'utilisation de la contraste et plus pertinent que la luminance et s'adapte bien aux différentes nuances des couleurs ..
    Effectivement, oui c'est surprenant.

    MarcVB6

  3. #23
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par MarcVB6 Voir le message
    Citation Envoyé par wheel Voir le message
    Pour revenir au sujet initial de la discussion j'ai constaté que l'utilisation du contraste est plus pertinente que la luminance et s'adapte bien aux différentes nuances des couleurs...
    Effectivement, oui c'est surprenant.
    (réécrit en français pour une meilleure compréhension)

    Mais surtout, on compare là deux choses qui ne jouent pas dans la même cour : le contraste c'est l'écart entre une teinte claire et une teinte sombre et au plus il est élevé, cet écart, au plus on va gagner en lisibilité, ce qui est quand même le but recherché, quand il est question de faire passer un message écrit/imprimé.

    La luminance c'est autre chose : La luminance est une grandeur correspondant à la sensation visuelle de luminosité d'une surface... En pratique la luminance d'un écran peut être modifiée globalement de façon proportionnelle à l'aide du réglage du contraste.
    Source, mais prévoir un tube d'aspirine...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par Jipété Voir le message
    La luminance c'est autre chose : [I]La luminance est une grandeur correspondant à la sensation visuelle de luminosité d'une surface...
    Je pense que wheel voulait dire 'Luminosité'.
    Pour en revenir au sujet de départ, comme le proposait vttman en tapant "Building your own color contrast checker" sous Google j'ai trouvé ici la formule pour retrouver la luminosité d'une couleur unique. (Celle du texte d'un Label dans mon cas.)
    Ca marche très bien. J'obtiens un résultat L qui va de 0 à 1. Basiquement, si L < 0.5 je mets le BackColor du Label au blanc. Si L > 0.5 je mets le BackColor au noir.
    Il faut que je fasse des tests avec plein de différentes couleurs afin d'affiner la condition pour un coef de 0.5. Car, visuellement parlant, un texte sur fond noir est plus lisible que sur fond blanc. La condition avec un coef de 0.4 fonctionne aussi.

    Mais la conversation a évolué et c'est très instructif et passionnant. (J'ai arrêté de compter les tubes d'aspirine )
    Dans la proposition de wheel, il est vrai que mettre une couleur plutôt que du noir ou blanc dans le BackColor est plus esthétique mais le contraste est moins marqué, visuellement parlant.

    Bonne journée
    MarcVB6

  5. #25
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par MarcVB6 Voir le message
    Car, visuellement parlant, un texte sur fond noir est plus lisible que sur fond blanc.
    Ça se discute...
    Pourquoi le papier est-il blanc ?
    Mais surtout, pourquoi les panneaux routiers, qui n'existaient pas du temps du parchemin, sont-ils, la plupart du temps, également blancs, avec le texte noir ?

    Nom : panneaux-typo-couleurs.png
Affichages : 107
Taille : 199,7 Ko
    source

    Citation Envoyé par MarcVB6 Voir le message
    Mais la conversation a évolué et c'est très instructif et passionnant. (J'ai arrêté de compter les tubes d'aspirine )
    Tu marches dans mes pas, lol !
    On dirait le sujet de 2017 dont j'ai donné le lien.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Ça se discute...
    Pourquoi le papier est-il blanc ?
    Je n'ai pas de réponse scientifique à cette question mais vu de ma fenêtre je dirais que (peut être) il est plus facile et moins onéreux de faire du papier blanc (qui ne nécessite pas d'encre mais un peu de chlore) que du papier noir (qui en nécessite) ?
    Et que, de fait, ça demande (au total) moins d'encre pour imprimer sur du blanc que sur du noir ?

    Citation Envoyé par Jipété Voir le message
    Mais surtout, pourquoi les panneaux routiers, qui n'existaient pas du temps du parchemin, sont-ils, la plupart du temps, également blancs, avec le texte noir ?
    Je donne ma langue au chat. Peut être à cause de la lumière ambiante qui est claire ? La nuit, pour les panneaux réfléchissants, c'est le texte qui est réfléchissant, donc plus clair.

    Mais à l'inverse pourquoi les salle de spectacles sont-elles toujours dans l'obscurité et la scène éclairée ?
    Pourquoi les salles de cinéma sont-elles dans l'obscurité ?
    "Ah contraste quand tu nous tiens."

    Citation Envoyé par Jipété Voir le message
    Tu marches dans mes pas, lol !
    On dirait le sujet de 2017 dont j'ai donné le lien.
    Oui j'ai vu, c'est un travail impressionnant.

    Bonne journée.
    MarcVB6

  7. #27
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par wheel Voir le message
    Un octet est toujours positif[...]
    Citation Envoyé par wheel Voir le message
    [...]et Byte non signé sur un octet.[...]

    Je ne suis pas d'accord. Même si la documentation de Microsoft dit que une variable "As Byte" est non signée, un octet n'est pas toujours positif. C'est le contexte qui décidera que l'octet est signé ou pas. Il faut faire la différence entre As Byte (particularité du VB qui fait qu'une variable As Byte est toujours un nombre positif) et "un octet", qui n'a rien à voir avec VB, et qui sera positif si le bit de poids fort est à 0, et positif ou négatif selon le contexte si le bit de poids fort est à 1.

    10110111 peut représenter 183 OU -73 selon le contexte. C'est toujours le contexte qui détermine si le nombre est signé ou pas. Sans le contexte, on ne peut pas affirmer que 10110111 ne vaut QUE 183.


    D'ailleurs, Jipété parlait plus haut des VRAI ou FAUX, avec VRAI qui vaut -1, car -1 en binaire, c'est 11111111 (tous les bits à 1 pour un octet SIGNÉ), par opposition à FAUX = 0 = 00000000 (tous les bits à 0).
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. trouver une couleur depuis un pixel
    Par mazertys17 dans le forum Android
    Réponses: 3
    Dernier message: 26/02/2016, 15h50
  2. Trouver la valeur d'une couleur de fond
    Par zozoman dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/06/2013, 14h07
  3. trouver les valeurs H, S et V d'une couleur
    Par Tomas.Image dans le forum Traitement d'images
    Réponses: 24
    Dernier message: 23/11/2012, 20h33
  4. [Algo] Tracking d'une couleur et luminosité
    Par Aspic dans le forum Traitement d'images
    Réponses: 14
    Dernier message: 05/07/2012, 12h19
  5. Trouver une couleur dans une cellule
    Par babybell dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/10/2008, 14h19

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