覚書。
//---------------------------------------------------------------------------
// グラデーション色を計算で取得
//---------------------------------------------------------------------------
TColor __fastcall TfraPresetButtons::GetGradientColor(TColor basecl)
{
Word H;
Word L;
Word S;
// HLS値に変換
ColorRGBToHLS(basecl,H,L,S);
// 調整してRGB値に戻す
TColor retcl = ColorHLSToRGB(H,
AdjustLSValue(L + 25),
AdjustLSValue(S - 35));
return retcl;
}
//---------------------------------------------------------------------------
// Luminance, Saturationの値を0~240に収める
//---------------------------------------------------------------------------
Word __fastcall TfraPresetButtons::AdjustLSValue(int val)
{
if (val > 240) {
val -= 70;
}
else if (val < 0) {
val += 70;
}
return val;
}
**************************************************************
ベース色だけ指定して、同じ色で色彩だけ変化させた色を計算。
ちょっとうすめにしたり濃い目にしたり。
ずっと調べてたんだけど意外と簡単だったとはorz
共通関数あると便利~
色相変化させたいときにはHの値を変えたらいいらしい。
RGBやらHLSやら他にもなんちゃら・・・
デザイン系てむつかしい。