Esta biblioteca permite converter valores do modelo de cores HSI em valores RGB e RGBW. Eu escrevi porque queria essa conversão para LEDs programáveis como WS2812 ou APA102C, bem como para controle de iluminação DMX-512. Também permite converter valores RGB em valores HSI.
Com os valores HSI, a potência geral do LED permanece constante e o brilho do olho permanece constante, ao desbotar entre os matizes. Isso resulta em desbotamentos de cores mais consistentes. Para uma explicação melhor e o código de exemplo no qual isso se baseia, consulte a postagem do blog de Saiko LED.
ColorConverter.HSItoRGB(matiz, saturação, intensidade);
matiz ( float ) - matiz da cor, 0 a 360 graus
saturação ( float ) - saturação da cor, 0 a 100
intensidade ( float ) - intensidade da cor, 0 a 100
RGBColor ( struct ) - uma estrutura contendo quatro inteiros: vermelho, verde, azul e branco. Todos os três ou vermelho, verde e azul variarão de 0 a 255. Para esta função, branco é sempre 0.
RGBColor c = ColorConverter.HSItoRGB(matiz, saturação, intensidade); Serial.print(c.red); Serial.print(" "); Serial.print(c.verde); Serial.print(" "); Serial.println(c.azul);
ColorConverter.HSItoRGB(matiz, saturação, intensidade);
matiz ( float ) - matiz da cor, 0 a 360 graus
saturação ( float ) - saturação da cor, 0 a 100
intensidade ( float ) - intensidade da cor, 0 a 100
RGBColor ( struct ) - uma estrutura contendo quatro inteiros: vermelho, verde, azul e branco. Todos os quatro variarão de 0 a 255.
RGBColor c = ColorConverter.HSItoRGB(matiz, saturação, intensidade); Serial.print(c.vermelho); Serial.print(" "); Serial.print(c.verde); Serial.print(" "); Serial.print(c.azul); Serial.print(" "); Serial.print(c.branco);
ColorConverter.RGBtoHSI(vermelho, verde, azul);
vermelho ( int ) - valor vermelho, 0 a 255
verde ( int ) - valor verde, 0 a 255
azul ( int ) - valor azul, 0 a 255
HSIColor ( struct ) - uma estrutura contendo três pontos flutuantes: matiz, saturação e intensidade. O matiz variará de 0 a 359. A saturação e a intensidade variarão de 0 a 100.
HSIColor c = ColorConverter.RGBtoHSI(vermelho, verde, azul); Serial.print(c.hue); Serial.print(" "); Serial.print(c.saturação); Serial.print(" "); Serial.println(c.intensidade);
Direitos autorais (c) Tom Igoe. Tudo bem reservado.
Esta biblioteca é um software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral Menor GNU conforme publicada pela Free Software Foundation; a versão 2.1 da Licença ou (a seu critério) qualquer versão posterior.
Esta biblioteca é distribuída na esperança de ser útil, mas SEM QUALQUER GARANTIA; mesmo sem a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM. Consulte a Licença Pública Geral Menor GNU para obter mais detalhes.
Você deve ter recebido uma cópia da Licença Pública Geral Menor GNU junto com esta biblioteca; caso contrário, escreva para Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 EUA