Mit dieser Bibliothek können Sie HSI-Farbmodellwerte in RGB- und RGBW-Werte konvertieren. Ich habe es geschrieben, weil ich diese Konvertierung für programmierbare LEDs wie WS2812 oder APA102C sowie für die DMX-512-Lichtsteuerung wollte. Außerdem können Sie RGB-Werte in HSI-Werte konvertieren.
Bei HSI-Werten bleibt die Gesamtleistung der LED konstant und die Helligkeit des Auges bleibt konstant, wenn über Farbtöne hinweg überblendet wird. Dies sorgt für gleichmäßigere Farbübergänge. Eine bessere Erklärung und den Beispielcode, auf dem dies basiert, finden Sie im Blogbeitrag von Saiko LED.
ColorConverter.HSItoRGB(Farbton, Sättigung, Intensität);
Farbton ( Float ) – Farbton, 0 bis 360 Grad
Sättigung ( Float ) – Farbsättigung, 0 bis 100
Intensität ( Float ) – Farbintensität, 0 bis 100
RGBColor ( struct ) – eine Struktur mit vier Ganzzahlen: Rot, Grün, Blau und Weiß. Alle drei oder Rot, Grün und Blau liegen im Bereich von 0 bis 255. Für diese Funktion ist Weiß immer 0.
RGBColor c = ColorConverter.HSItoRGB(Farbton, Sättigung, Intensität); Serial.print(c.red); Serial.print(" "); Serial.print(c.green); Serial.print(" "); Serial.println(c.blue);
ColorConverter.HSItoRGB(Farbton, Sättigung, Intensität);
Farbton ( Float ) – Farbton, 0 bis 360 Grad
Sättigung ( Float ) – Farbsättigung, 0 bis 100
Intensität ( Float ) – Farbintensität, 0 bis 100
RGBColor ( struct ) – eine Struktur mit vier Ganzzahlen: Rot, Grün, Blau und Weiß. Alle vier liegen im Bereich von 0 bis 255.
RGBColor c = ColorConverter.HSItoRGB(Farbton, Sättigung, Intensität); Serial.print(c.red); Serial.print(" "); Serial.print(c.green); Serial.print(" "); Serial.print(c.blue); Serial.print(" "); Serial.print(c.white);
ColorConverter.RGBtoHSI(rot, grün, blau);
red ( int ) – Rotwert, 0 bis 255
grün ( int ) – Grünwert, 0 bis 255
blue ( int ) – Blauwert, 0 bis 255
HSIColor ( struct ) – eine Struktur, die drei Gleitkommazahlen enthält: Farbton, Sättigung und Intensität. Der Farbton liegt im Bereich von 0 bis 359. Sättigung und Intensität liegen im Bereich von 0 bis 100.
HSIColor c = ColorConverter.RGBtoHSI(rot, grün, blau); Serial.print(c.hue); Serial.print(" "); Serial.print(c.saturation); Serial.print(" "); Serial.println(c.intensity);
Urheberrecht (c) Tom Igoe. Alle Rechte vorbehalten.
Bei dieser Bibliothek handelt es sich um freie Software. Sie können es unter den Bedingungen der GNU Lesser General Public License, wie von der Free Software Foundation veröffentlicht, weiterverbreiten und/oder ändern; entweder Version 2.1 der Lizenz oder (nach Ihrer Wahl) eine spätere Version.
Diese Bibliothek wird in der Hoffnung verteilt, dass sie nützlich sein wird, jedoch OHNE JEGLICHE GARANTIE; ohne die stillschweigende Garantie der MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Weitere Einzelheiten finden Sie in der GNU Lesser General Public License.
Sie sollten zusammen mit dieser Bibliothek eine Kopie der GNU Lesser General Public License erhalten haben; Wenn nicht, schreiben Sie an die Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA