Cette bibliothèque vous permet de convertir les valeurs du modèle de couleur HSI en valeurs RVB et RGBW. Je l'ai écrit parce que je voulais cette conversion pour les LED programmables comme WS2812 ou APA102C ainsi que pour le contrôle d'éclairage DMX-512. Il vous permet également de convertir les valeurs RVB en valeurs HSI.
Avec les valeurs HSI, la puissance globale de la LED reste constante et la luminosité de l'œil reste constante lors du fondu des teintes. Cela permet d’obtenir des fondus de couleurs plus cohérents. Pour une meilleure explication et l'exemple de code sur lequel cela est basé, consultez le blog de Saiko LED.
ColorConverter.HSItoRGB (teinte, saturation, intensité) ;
hue ( float ) - teinte de couleur, 0 à 360 degrés
saturation ( float ) - saturation des couleurs, 0 à 100
intensité ( float ) - intensité de la couleur, 0 à 100
RGBColor ( struct ) - une structure contenant quatre entiers : rouge, vert, bleu et blanc. Les trois ou rouge, vert et bleu vont de 0 à 255. Pour cette fonction, le blanc est toujours 0.
RGBColor c = ColorConverter.HSItoRGB (teinte, saturation, intensité) ; Serial.print(c.red); Série.print(" "); Serial.print(c.vert); Série.print(" "); Serial.println(c.bleu);
ColorConverter.HSItoRGB (teinte, saturation, intensité) ;
hue ( float ) - teinte de couleur, 0 à 360 degrés
saturation ( float ) - saturation des couleurs, 0 à 100
intensité ( float ) - intensité de la couleur, 0 à 100
RGBColor ( struct ) - une structure contenant quatre entiers : rouge, vert, bleu et blanc. Les quatre vont de 0 à 255.
RGBColor c = ColorConverter.HSItoRGB (teinte, saturation, intensité) ; Serial.print(c.red); Série.print(" "); Serial.print(c.vert); Série.print(" "); Serial.print(c.bleu); Série.print(" "); Serial.print(c.blanc);
ColorConverter.RGBtoHSI (rouge, vert, bleu) ;
red ( int ) - valeur rouge, 0 à 255
green ( int ) - valeur verte, 0 à 255
bleu ( int ) - valeur bleue, 0 à 255
HSIColor ( struct ) - une structure contenant trois flottants : teinte, saturation et intensité. La teinte va de 0 à 359. La saturation et l'intensité vont de 0 à 100.
HSIColor c = ColorConverter.RGBtoHSI (rouge, vert, bleu) ; Serial.print(c.hue); Série.print(" "); Serial.print(c.saturation); Série.print(" "); Serial.println(c.intensité);
Droit d'auteur (c) Tom Igoe. Tous droits réservés.
Cette bibliothèque est un logiciel gratuit ; vous pouvez le redistribuer et/ou le modifier selon les termes de la licence publique générale limitée GNU telle que publiée par la Free Software Foundation ; soit la version 2.1 de la Licence, soit (à votre choix) toute version ultérieure.
Cette bibliothèque est distribuée dans l'espoir qu'elle sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de QUALITÉ MARCHANDE ou d’ADAPTATION À UN USAGE PARTICULIER. Voir la licence publique générale limitée GNU pour plus de détails.
Vous devriez avoir reçu une copie de la licence publique générale limitée GNU avec cette bibliothèque ; sinon, écrivez à Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA