Conversion couleur html vers RGB

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Conversion couleur html vers RGB

Message par falsam »

Bonjour.

La couleur html #ff0000 correspond à RGB(255, 0, 0) c'est à dire du rouge (Ai je vraiement besoin de le préciser)

Pourquoi je n'ai pas ce résultat avec le code suivant ?

Code : Tout sélectionner

HTMLColor.s = "#ff0000"

Color = Val("$" + Mid(HTMLColor, 2, 6))

Debug Red(Color)
Debug Green(Color)
Debug Blue(Color)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Conversion couleur html vers RGB

Message par PAPIPP »

Bonjour Falsam
La cause est la représentation des nombres en little indian
donc comme ceci

Code : Tout sélectionner

HTMLColor.s="#ff0000"

Color=Val("$"+ReverseString(Mid(HTMLColor,2,6)))

Debug Red(Color)
Debug Green(Color)
Debug Blue(Color)

Structure Col 
  StructureUnion 
    color2.l
    colc.c[4]
  EndStructureUnion 
  
EndStructure 
Define co.col
co\color2=RGB(255,0,0)

Debug Hex(co\color2)
For i=0 To 3
  s$+ Hex(co\colc[i])
Next
Debug s$

A+
Dernière modification par PAPIPP le mar. 03/juin/2014 7:38, modifié 1 fois.
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Conversion couleur html vers RGB

Message par falsam »

Halalalala ces indiens (endian) !! Comme quoi il est nécessaire d'avoir un sage dans un groupe. Merci Papipp :)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Conversion couleur html vers RGB

Message par PAPIPP »

A Falsam
Tous les indiens ne sont pas sages.
J'ai ajouté ci dessus la démo de la représentation en little indian
A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Conversion couleur html vers RGB

Message par falsam »

Merci pour cette démonstration Papipp.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Conversion couleur html vers RGB

Message par djes »

Vérifiez toujours le sens des couleurs dans le système/OS que vous utilisez, y compris la position du canal alpha. Il y a souvent une fonction qui permet de le savoir.
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Conversion couleur html vers RGB

Message par Micoute »

Bonjour à tous et merci pour ce partage.

Juste pour être un tantinet pointilleux:

Code : Tout sélectionner

HTMLColor.s="#ff0000"

Color=Val("$"+ReverseString(Mid(HTMLColor,2,6)))

Debug Red(Color)
Debug Green(Color)
Debug Blue(Color)

Structure Col
  StructureUnion
    color2.l
    colc.c[4]
  EndStructureUnion
 
EndStructure
Define co.col
co\color2=RGB(255,0,0)

Debug Hex(co\color2)
For i=0 To 3
  s$+ RSet(Hex(co\colc[i]),2,"0")
Next
Debug s$

Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Conversion couleur html vers RGB

Message par falsam »

djes a écrit :Vérifiez toujours le sens des couleurs dans le système/OS que vous utilisez, y compris la position du canal alpha. Il y a souvent une fonction qui permet de le savoir.
A part le jeu de couleur ARGB utilisé par Google sous la forme d'une valeur hexa , une couleur web avec couche alpha existe sous la forme hexadécimale ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Conversion couleur html vers RGB

Message par PAPIPP »

Bonjour Micoute
C'est tout à fait exact pour les nombres hexa inférieurs à '10' ou 16 en décimal il faut ajouter un '0' à gauche
merci pour cette rectification.
A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Conversion couleur html vers RGB

Message par djes »

falsam a écrit :
djes a écrit :Vérifiez toujours le sens des couleurs dans le système/OS que vous utilisez, y compris la position du canal alpha. Il y a souvent une fonction qui permet de le savoir.
A part le jeu de couleur ARGB utilisé par Google sous la forme d'une valeur hexa , une couleur web avec couche alpha existe sous la forme hexadécimale ?
Apparemment non, l'alpha est géré depuis le CSS 3, mais pas sous la forme hexadécimale :
4.2.2. RGBA color values

The RGB color model is extended in this specification to include “alpha” to allow specification of the opacity of a color. See simple alpha compositing for details. These examples all specify the same color:
em { color: rgb(255,0,0) } /* integer range 0 - 255 */
em { color: rgba(255,0,0,1) /* the same, with explicit opacity of 1 */
em { color: rgb(100%,0%,0%) } /* float range 0.0% - 100.0% */
em { color: rgba(100%,0%,0%,1) } /* the same, with explicit opacity of 1 */
Unlike RGB values, there is no hexadecimal notation for an RGBA value.
The format of an RGBA value in the functional notation is ‘rgba(’ followed by a comma-separated list of three numerical values (either three integer values or three percentage values), followed by an <alphavalue>, followed by ‘)’. The integer value 255 corresponds to 100%, rgba(255,255,255,0.8) = rgba(100%,100%,100%,0.8). White space characters are allowed around the numerical values.
Implementations must clip the red, green, and blue components of RGBA color values to the device gamut according to the rules for the RGB color value composed of those components.
These examples specify effects that are possible with the rgba() notation:
p { color: rgba(0,0,255,0.5) } /* semi-transparent solid blue */
p { color: rgba(100%, 50%, 0%, 0.1) } /* very transparent solid orange */
Note. If RGBA values are not supported by a user agent, they should be treated like unrecognized values per the CSS forward compatibility parsing rules ([CSS21], Chapter 4). RGBA values must not be treated as simply an RGB value with the opacity ignored.
Répondre