プロが教える店舗&オフィスのセキュリティ対策術

HSLからRGBのGを求めたいのですが、L+(S×(1-|2×L-1|))/2部分が良く分かりません。
https://ja.wikipedia.org/wiki/HLS%E8%89%B2%E7%A9 …

例えば、下記で、213はどうやって導き出すのでしょうか?
・HSL 146.6°, 89.3, 44.1
・RGB Decimal 12, 213, 101


-------------------------------
最大値

2×L-1
・2×44.1-1=87.2

1-|2×L-1|
・1-87.2=-86.2

L+(S×(1-|2×L-1|))/2
・44.1+(89.3×-86.2)/2=-3804.73
-------------------------------
最小値

L-(S×(1-|2×L-1|))/2
・44.1-(89.3×-86.2)/2=3892.93
-------------------------------
R
・Hが146.6なので、最小値がR
・3892.93≠12
・試しに結果を255で割ってみましたが、3892.93/255=15.2≠12

-------------------------------
255を掛けてから計算

最大値

2×L-1
・2×44.1×255-1=22490

1-|2×L-1|
・1-22490=--22489
-------------------------------
255で割ってから計算
最大値

2×L-1
・2×44.1/255-1=-0.65411764705

1-|2×L-1|
・1-0.65411764705=0.34588235295

L+(S×(1-|2×L-1|))/2
・44.1/255+(89.3/255×0.34588235295)/2=0.23
-------------------------------

A 回答 (2件)

HSL のそれぞれの値や RGB のそれぞれの値がどのような意味を持っていてどのような範囲であるのか, 確認してください.

    • good
    • 0

https://oshiete.goo.ne.jp/qa/9276425.html

同じですよね?


算数で
「秒速4mで2時間移動すると何km進めるか?」
って問題に 4*2=8km と答えたらだめです。
単位をそろえる必要があります。

HLS⇔RGBだって、同じことです。
式が想定する「単位」に変換しなければ、正しい値は求まりません。



重箱の隅をつつけば

・HSL 146.6°, 89.3, 44.1
とあるだけでは、 89.3%なのか 89.3‰ なのか 89.3/255 なのかわかりません。
よって0〜1.0に変換することなどできません。

・RGB Decimal 12, 213, 101
も、 24bitカラー(1色8bit)の 213なのか、 48bitカラー(1色16bit)の 213なのか、213‰なのかはっきりしません。

計算結果から
・HSL 146.6°, 89.3%, 44.1%
・RGB 12/255, 213/255, 101/255
だとわかりましたが。
    • good
    • 0
この回答へのお礼

・回答ありがとうございました

>HSL 146.6°, 89.3%, 44.1%
>RGB 12/255, 213/255, 101/255
・参考になりました

お礼日時:2016/05/18 08:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!