このライブラリを使用すると、HSI カラー モデル値を RGB 値および RGBW 値に変換できます。これを書いたのは、WS2812 や APA102C などのプログラマブル LED と DMX-512 照明制御用のこの変換が必要だったからです。また、RGB 値を HSI 値に変換することもできます。
HSI 値を使用すると、色相全体がフェードしても LED の全体的な出力は一定に保たれ、目の明るさも一定に保たれます。これにより、より安定した色落ちが得られます。より詳しい説明とそのベースとなるコード例については、Saiko LED のブログ投稿を参照してください。
ColorConverter.HSItoRGB(色相、彩度、強度);
hue ( float ) - 色相、0 ~ 360 度
saturation ( float ) - 色の彩度、0 ~ 100
強度 ( float ) - 色の強度、0 ~ 100
RGBColor ( struct ) - 赤、緑、青、白の 4 つの整数を含む構造体。 3 つすべて、つまり赤、緑、青の範囲は 0 ~ 255 です。この関数では、白は常に 0 です。
RGBColor c = ColorConverter.HSItoRGB(色相、彩度、強度); Serial.print(c.red); Serial.print(" "); Serial.print(c.green); Serial.print(" "); Serial.println(c.blue);
ColorConverter.HSItoRGB(色相、彩度、強度);
hue ( float ) - 色相、0 ~ 360 度
saturation ( float ) - 色の彩度、0 ~ 100
強度 ( float ) - 色の強度、0 ~ 100
RGBColor ( struct ) - 赤、緑、青、白の 4 つの整数を含む構造体。 4 つすべての範囲は 0 ~ 255 です。
RGBColor c = ColorConverter.HSItoRGB(色相、彩度、強度); Serial.print(c.red); Serial.print(" "); Serial.print(c.green); Serial.print(" "); Serial.print(c.blue); Serial.print(" "); Serial.print(c.white);
ColorConverter.RGBtoHSI(赤、緑、青);
red ( int ) - 赤の値、0 ~ 255
green ( int ) - 緑色の値、0 ~ 255
blue ( int ) - 青の値、0 ~ 255
HSIColor ( struct ) - 色相、彩度、強度の 3 つの浮動小数点数を含む構造体。色相の範囲は 0 ~ 359 です。彩度と強度の範囲は 0 ~ 100 です。
HSIColor c = ColorConverter.RGBtoHSI(赤、緑、青); Serial.print(c.hue); Serial.print(" "); Serial.print(c.saturation); Serial.print(" "); Serial.println(c.intensity);
著作権 (c) トム・アイゴエ。無断転載禁止。
このライブラリはフリー ソフトウェアです。 Free Software Foundation によって公開されている GNU Lesser General Public License の条件に基づいて、再配布したり変更したりすることができます。ライセンスのバージョン 2.1、または (オプションで) それ以降のバージョンのいずれか。
このライブラリは役立つことを期待して配布されていますが、いかなる保証もありません。商品性や特定目的への適合性についての暗黙の保証もありません。詳細については、GNU 劣等一般公衆利用許諾書を参照してください。
このライブラリと一緒に GNU Lesser General Public License のコピーを受け取っているはずです。そうでない場合は、Free Software Foundation, Inc. (51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA) までご連絡ください。