JavaScriptでカラーが暗いと判定する方法


  1. RGB値を使用した方法: RGB値を取得し、各チャンネルの値を比較して暗いかどうかを判定することができます。一般的な暗さの基準として、R、G、およびBの値がすべて一定の閾値以下である場合に暗いとみなす方法があります。
function isColorDarkUsingRGB(color) {
  // カラーのRGB値を取得
  var r = color[0];
  var g = color[1];
  var b = color[2];
  // 閾値を設定(0〜255の範囲)
  var threshold = 128;
  // RGB値を比較して暗いかどうかを判定
  return r <= threshold && g <= threshold && b <= threshold;
}
// 使用例
var color = [34, 45, 67];
var isDark = isColorDarkUsingRGB(color);
console.log(isDark); // 結果: true
  1. HSL値を使用した方法: HSL(Hue, Saturation, Lightness)値を取得し、Lightness値を基準にして暗いかどうかを判定することもできます。Lightness値は0〜100の範囲で表され、0が最も暗く、100が最も明るいです。一般的な暗さの基準として、Lightness値が一定の閾値以下である場合に暗いとみなす方法があります。
function isColorDarkUsingHSL(color) {
  // カラーのHSL値を取得
  var hsl = rgbToHsl(color[0], color[1], color[2]);
  var lightness = hsl[2];
  // 閾値を設定(0〜100の範囲)
  var threshold = 50;
  // Lightness値を比較して暗いかどうかを判定
  return lightness <= threshold;
}
// RGBからHSLに変換する関数
function rgbToHsl(r, g, b) {
  r /= 255;
  g /= 255;
  b /= 255;
  var max = Math.max(r, g, b);
  var min = Math.min(r, g, b);
  var h, s, l = (max + min) / 2;
  if (max == min) {
    h = s = 0; // グレースケール
  } else {
    var d = max - min;
    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
    switch (max) {
      case r:
        h = (g - b) / d + (g < b ? 6 : 0);
        break;
      case g:
        h = (b - r) / d + 2;
        break;
      case b:
        h = (r - g) / d + 4;
        break;
    }
    h /= 6;
  }
  return [h, s, l];
}
// 使用例
var color = [34, 45, 67];
var isDark = isColorDarkUsingHSL(color);
console.log(isDark); // 結果: true

これらの方法を使用すると、JavaScriptでカラーが暗いかどうかを判定することができます。必要に応じて閾値や他の条件を調整して、暗さの定義をカスタマイズすることもできます。