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.NET Discussion :

Comment extraire la valeur d'une des composantes Rouge, Verte et Bleue d'une couleur


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut Comment extraire la valeur d'une des composantes Rouge, Verte et Bleue d'une couleur
    Salut,

    Comment ont fait en VB pour extraire la composante rouge, verte et bleu d'une couleur, dans se style là pour donner une idée:

    Couleur = RGB(123, 159, 147)

    Rouge = Red(Couleur)
    Vert = Green(Couleur)
    Bleu = Blue(Couleur)

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    asp.net ? winforms ? wpf ?

    pour winforms c'est par là : http://msdn.microsoft.com/fr-fr/libr...ing.color.aspx

    (.A .R .G .B .FromArgb)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Color.ToArgb

    EDIT: En fait non je suis à côté de la plaque... Il faudra utiliser ce que Pol63 a dit : (TaColor.R & TaColor.G & TaColor.B)
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  4. #4
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    Winforms oui

    Je comprends pas votre commande, moi je veux savoir les composante depuis un nombre mais c'est peut être pas possible.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut
    Salut Lord

    Le mieux est de faire des recherches sur le net pour trouver des bouts de codes, ensuite les pro t'aideront à l'ajuster à ton projet mais personne fera le travail pour toi

    Google= VB.net couleur par exemple

    c'est le meilleur moyen pour apprendre

    indice :
    tu veux récupérer trois variables de type integer
    Dim IntR As Integer = ?
    Dim IntG As Integer = ?
    Dim IntB As Integer = ?

    bonne chance

  6. #6
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    Bha au pire pas grave, je vais me la faire cette fonction
    Merci quand même

  7. #7
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    Admiral....Messieurs les anglais ,tirez les premiers ..avec Color.FromArgb...

    simplistic code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      Dim Couleur As Color = Color.FromArgb(123, 159, 147)
            Dim Rouge As Color = Color.FromArgb(Couleur.R, 0, 0)
            Dim Vert As Color = Color.FromArgb(0, Couleur.G, 0)
            Dim Bleue As Color = Color.FromArgb(0, 0, Couleur.B)
    la composante alpha vaut 255 et n'est specifie que pour les cas de transparence....

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut
    ok la façon dont je lisant son poste il demande de récupérer la valeur de chaque couleur c'est pour ça que je l'orientais dans le sens de trois integers

    je croyais que cette façon était une bonne piste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Col = Color.FromArgb(0, 125, 155, 25)
            Dim IntR As Integer = Col.R
            Dim IntG As Integer = Col.G
            Dim IntB As Integer = Col.B
    merci

  9. #9
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    Bonjour et merci pour votre aide

    En faite je voyais plus quelque chose comme ceci:

    Couleur = 14795235

    Rouge = Valeur de rouge dans la couleur
    Vert = Valeur de vert dans la couleur
    Bleu = Valeur de bleu dans la couleur

    Je voudrait aussi savoir comment se serais possible de savoir les valeur en faisan des opérations mathématique
    Merci.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    Bon, j'ai fini par trouver...

    Voici un petit mixte de choses sur les couleur et leurs conversion dans diverses situations.
    Je ne sais pas si mes méthodes sons correcte mais en tout les cas, cela fonctionne.

    Donc ici, ont va convertir:

    Une couleur VB.Net vers un nombre égale à la couleur
    Un nombre en couleur VB.Net
    Valeurs Rouge, Vert et Bleu vers un nombre
    Valeurs Rouge, Vert, Bleu et Alpha vers un nombre

    On va aussi pouvoir savoir les composante des couleurs:

    Rouge
    Verte
    Bleu
    Alpha

    Voici le code:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    Public Class Form1
     
        ' Convertir une couleur VB.Net en une couleur en tans que nombre
        Private Function CouleurVersNombre(ByVal Couleur As Color) As Double
            Return System.Drawing.ColorTranslator.ToWin32(Couleur)
        End Function
     
        ' Convertir une couleur en tans que nombre en une couleur VB.Net
        Private Function NombreVersCouleur(ByVal Nombre As Double) As Color
     
            If Nombre < 0 Then
                Nombre = 0
            End If
     
            If Nombre > 256 ^ 3 Then
                Nombre = 256 ^ 3
            End If
     
            Return ColorTranslator.FromWin32(Nombre)
        End Function
     
        ' Renvoie la valeur de la couleur 24-bit correspondant aux valeurs Rouge, Vert et Bleu.
        ' Chaque composante 'Rouge', 'Verte', 'Bleue' est une valeur comprise entre 0 et 255
        Private Function RGB(ByVal Rouge As Double, ByVal Vert As Double, ByVal Bleu As Double) As Double
     
            If Rouge < 0 Then
                Rouge = 0
            End If
     
            If Vert > 255 Then
                Rouge = 255
            End If
     
            If Vert < 0 Then
                Vert = 0
            End If
     
            If Vert > 255 Then
                Vert = 255
            End If
     
            If Bleu < 0 Then
                Bleu = 0
            End If
     
            If Bleu > 255 Then
                Bleu = 255
            End If
     
            Return Rouge + (Vert * 256) + (Bleu * 65536)
     
        End Function
     
        ' Renvoie la valeur de la couleur 32-bit correspondant aux valeurs Rouge, Vert, Bleu et Alpha.
        ' Chaque composante 'Rouge', 'Verte', 'Bleue', 'Alpha' est une valeur comprise entre 0 et 255
        Private Function RGBA(ByVal Rouge As Double, ByVal Vert As Double, ByVal Bleu As Double, ByVal Alpha As Double) As Int64
     
            If Rouge < 0 Then
                Rouge = 0
            End If
     
            If Vert > 255 Then
                Rouge = 255
            End If
     
            If Vert < 0 Then
                Vert = 0
            End If
     
            If Vert > 255 Then
                Vert = 255
            End If
     
            If Bleu < 0 Then
                Bleu = 0
            End If
     
            If Bleu > 255 Then
                Bleu = 255
            End If
     
            If Alpha < 0 Then
                Alpha = 0
            End If
     
            If Alpha > 255 Then
                Alpha = 255
            End If
     
            Return Rouge + (Vert * 256) + (Bleu * 65536) + (Alpha * 16777216)
     
        End Function
     
        ' Renvoie la valeur de la composante rouge d'une couleur RVB 24-bit.
        ' La valeur retournée est comprise entre 0 et 255. 
        Private Function Rouge(ByVal Nombre As Double) As Double
     
            If Nombre < 0 Then
                Nombre = 0
            End If
     
            If Nombre > 256 ^ 4 Then
                Nombre = 256 ^ 4
            End If
     
            Return 255 And Nombre
     
        End Function
     
        ' Renvoie la valeur de la composante vert d'une couleur RVB 24-bit.
        ' La valeur retournée est comprise entre 0 et 255. 
        Private Function Vert(ByVal Nombre As Double) As Double
     
            If Nombre < 0 Then
                Nombre = 0
            End If
     
            If Nombre > 256 ^ 4 Then
                Nombre = 256 ^ 4
            End If
     
            Return (65280 And Nombre) \ 256
     
        End Function
     
        ' Renvoie la valeur de la composante bleu d'une couleur RVB 24-bit.
        ' La valeur retournée est comprise entre 0 et 255. 
        Private Function Bleu(ByVal Nombre As Double) As Double
     
            If Nombre < 0 Then
                Nombre = 0
            End If
     
            If Nombre > 256 ^ 4 Then
                Nombre = 256 ^ 4
            End If
     
            Return (16711680 And Nombre) \ 65536
     
        End Function
     
        ' Renvoie la valeur de la composante alpha d'une couleur RVBA 32-bit.
        ' La valeur retournée est comprise entre 0 et 255. 
        Private Function Alpha(ByVal Nombre As Double) As Double
     
            If Nombre < 0 Then
                Nombre = 0
            End If
     
            If Nombre > 256 ^ 4 Then
                Nombre = 256 ^ 4
            End If
     
            Return (4278190080 And Nombre) \ 16777216
     
        End Function
     
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     
            ' Contient une couleur naturel
            Dim CouleurNaturel As Color = Color.DarkBlue
     
            ' Renvoie la valeur de la couleur 24-bit correspondant aux valeurs Rouge, Vert et Bleu
            Dim CouleurNombre24Bits As Double = RGB(251, 252, 253)
     
            ' Renvoie la valeur de la couleur 32-bit correspondant aux valeurs Rouge, Vert, Bleu et Alpha
            Dim CouleurNombre32Bits As Double = RGBA(147, 151, 155, 185)
     
            ' Renvoie la composante rouge de la couleur
            Dim CouleurRouge24Bits As Double = Rouge(CouleurNombre24Bits)
     
            ' Renvoie la composante vert de la couleur
            Dim CouleurVert24Bits As Double = Vert(CouleurNombre24Bits)
     
            ' Renvoie la composante bleu de la couleur
            Dim CouleurBleu24Bits As Double = Bleu(CouleurNombre24Bits)
     
     
            ' Renvoie la composante rouge de la couleur
            Dim CouleurRouge32Bits As Double = Rouge(CouleurNombre32Bits)
     
            ' Renvoie la composante vert de la couleur
            Dim CouleurVert32Bits As Double = Vert(CouleurNombre32Bits)
     
            ' Renvoie la composante bleu de la couleur
            Dim CouleurBleu32Bits As Double = Bleu(CouleurNombre32Bits)
     
            ' Renvoie la composante alpha de la couleur
            Dim CouleurAlpha32Bits As Double = Alpha(CouleurNombre32Bits)
     
     
            ' Ici la couleur naturel sera toujours en 24 bits car il n'y a pas de trensparence dans les couleur VB.Net !
            Dim ConvertionCouleurNaturelEnNombre As Double = CouleurVersNombre(CouleurNaturel)
     
            ' Attention, ici on ne peut convertir qu'une couleur 24 bit (RGB) et non 32 bits (RGBA) !
            Dim ConvertionCouleurNombreEnCouleurNaturel As Color = NombreVersCouleur(ConvertionCouleurNaturelEnNombre)
     
     
            Dim Résultat1 As String = "Couleur en nombre 24 bits = " & CouleurNombre24Bits & vbCr & vbCr & "Composante rouge = " & CouleurRouge24Bits & vbCr & "Composante verte = " & CouleurVert24Bits & vbCr & "Composante bleu = " & CouleurBleu24Bits & vbCr & vbCr & vbCr
            Dim Résultat2 As String = "Couleur en nombre 32 bits = " & CouleurNombre32Bits & vbCr & vbCr & "Composante rouge = " & CouleurRouge32Bits & vbCr & "Composante verte = " & CouleurVert32Bits & vbCr & "Composante bleu = " & CouleurBleu32Bits & vbCr & "Composante alpha = " & CouleurAlpha32Bits & vbCr & vbCr & vbCr
            Dim Résultat3 As String = "Couleur naturel = " & CouleurNaturel.ToString & vbCr & vbCr
            Dim Résultat4 As String = "Convertion couleur naturel -> nombre = " & ConvertionCouleurNaturelEnNombre.ToString & vbCr
            Dim Résultat5 As String = "Convertion couleur nombre -> couleur naturel = " & ConvertionCouleurNombreEnCouleurNaturel.ToString
     
     
            MsgBox(Résultat1 & Résultat2 & Résultat3 & Résultat4 & Résultat5)
     
        End Sub
     
    End Class
    N'hésitez pas à me dire si ya un soucis quelque part ou si ont peut mieux faire

Discussions similaires

  1. Comment extraire la valeur de la clé primaire suivant un choix combobox
    Par Hind4Dev dans le forum Interfaces Graphiques en Java
    Réponses: 15
    Dernier message: 27/06/2015, 17h13
  2. Réponses: 4
    Dernier message: 28/01/2011, 17h03
  3. Réponses: 3
    Dernier message: 19/04/2010, 16h18
  4. Comment afficher les valeurs à la place des "?"
    Par jeyce dans le forum Hibernate
    Réponses: 9
    Dernier message: 12/09/2007, 16h58

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