|
| Iniciado por Frédéric FOURGEOT, 07,ene. 2020 15:07 - 3 respuestas |
| |
| | | |
|
| |
Miembro registrado 34 mensajes |
|
| Publicado el 07,enero 2020 - 15:07 |
Bonjour,
Je cherche une solution pour convertir une valeur numérique représentative du RGB (ou RVB) et une valeur numérique représentative du RGBA (ou ARGB ou RVBA).
Par exemple la valeur RGB 12648447 devrait me donner -64 en RGBA (je précise que le -64 est obtenu par une application en .NET).
Quelqu'un aurait-il une suggestion ? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 08,enero 2020 - 09:07 |
Bonjour,
Ce n'est pas une valeur type RGB mais Hex que vous indiquez ici. Le RGBa gère la transparence et WinDev a la propriété Opacité. C'est utilisé en Web avec le CSS. Quelle votre objectif final? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 34 mensajes |
|
| Publicado el 08,enero 2020 - 10:24 |
J'ai une table dans laquelle une couleur a été enregistrée via un programme en .NET. Je souhaiterais pouvoir modifier cette couleur depuis une programme WINDEV sans pour autant qu'elle ne soit plus accessible depuis le programme d'origine .NET.
J'ai donc -64 dans un des enregistrement de cette table. J'ai trouvé un code me permettant de transformer cette valeur en 12648447 pour l'afficher sous mon programme WINDEV. Par contre je ne sais pas faire l'inverse si l'utilisateur souhaite modifié la couleur et l'enregistrée dans la base.
J'ai un peu de mal avec les manipulations binaires.
Voici le code que j'utilise pour obtenir les composantes Rouge, Verte et Bleue :
Procedure ConvertirLongRVBAEnRVB(nCouleur est un entier) : entier
nAlpha est un entier = ETBinaire(bitDécaleDroite(nCouleur, 24), 0xff) nRed est un entier = ETBinaire(bitDécaleDroite(nCouleur, 16), 0xff) nGreen est un entier = ETBinaire(bitDécaleDroite(nCouleur, 8), 0xff) nBlue est un entier = ETBinaire(bitDécaleDroite(nCouleur, 0), 0xff)
RENVOYER RVB(nRed, nGreen, nBlue) |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 34 mensajes |
|
| Publicado el 08,enero 2020 - 10:30 |
Ben je suis très bête et finalement je viens de répondre tout seul à ma question...
Il suffit de réaliser l'opération inverse en binaire :
Procedure ConvertirRVBEnLongRVBA(nCouleur est un entier) : entier
nRed est un entier = RVBRouge(nCouleur) nBlue est un entier = RVBBleu(nCouleur) nGreen est un entier = RVBVert(nCouleur) nAlpha est un entier = 255
nCouleurRVBA est un entier = OUBinaire(OUBinaire(OUBinaire(bitDécaleGauche(nAlpha,24), bitDécaleGauche(nRed, 16)), bitDécaleGauche(nGreen, 8)), bitDécaleGauche(nBlue, 0))
RENVOYER nCouleurRVBA |
| |
| |
| | | |
|
| | | | |
| | |
|