問題タブ [hsl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - Firefox での hsl 色の問題
次のように hsl() を使用して div の境界線を宣言しようとしています。
Firefox 3.5 を使用していますが、境界線がまったく表示されません。hsl() を rgb() に置き換えると、同じコードが完全に機能します。
Firefox が hsl() と hsla() をサポートしていることをどこかで読みました
私は何か間違ったことをしていますか?
hsl() がサポートされていない場合、hsl を rgb に変換するコードを持っている人はいますか?
algorithm - HSL補間
HSL カラーの色相成分が度単位の場合、2 つの色相を正しく補間するにはどうすればよいですか? (h1 + h2) / 2 を使用しても、すべての場合に望ましい結果が得られるとは限りません。その理由を示す 2 つの例を次に示します。
させて:
赤 = 0°
黄 = 60°
青 = 240°
(赤 + 黄) / 2 = 30° (オレンジ)
(黄 + 青) / 2 = 150° (青緑)
(赤 + 青) / 2 = 120° (緑)
ご覧のとおり、赤と青を平均すると、紫/マゼンタではなく緑になります! ただし、次のようにします。
赤 = 360°
黄 = 60°
青 = 240°
(赤 + 黄) / 2 = 210° (青緑)
(黄 + 青) / 2 = 150° (青緑)
(赤 + 青) / 2 = 300° (マゼンタ)
ここで、赤と青は期待どおりの色を生成しますが、赤と黄色は青緑色を生成します! 色の色相成分をどのように補間して、実際の塗料を混ぜた場合に期待される結果と一致させることができますか? ありがとう!
colors - HSL との間の linearRGB 変換
linearRGB カラー (sRGB カラーではない) から HSL を取得する方法を知っている人はいますか? 多くの sRGB<->HSL 変換を見てきましたが、linearRGB<->HSL については何もありません。マイナーな調整を加えた基本的に同じ変換であるかどうかはわかりませんが、これについて誰かが持っている洞察をいただければ幸いです.
線形 RGB は、sRGB を線形化すること ([0,255] を [0,1] にすること) とは異なります。sRGB との間の線形 RGB 変換はhttp://en.wikipedia.org/wiki/SRGBにあります。VBA では、これは次のように表されます (線形化された sRGB 値 [0,1] を使用):
Linear RGB 値を標準の RGB_to_HSL ルーチンに送信し、HSL_to_RGB から戻そうとしましたが、うまくいきません。おそらく、現在の HSL<->RGB アルゴリズムはガンマ補正を考慮しており、リニア RGB はガンマ補正されていないため、正確にはわかりません。2つを除いて、これができるという参照はほとんど見たことがありません:
- http://en.wikipedia.org/wiki/HSL_and_HSV#cite_note-9 (番号付きアイテム 10)の参照 。
- オープン ソース プロジェクト Grafx2 @ http://code.google.com/p/grafx2/issues/detail?id=63#c22に関する参考文献では 、寄稿者が Linear RGB <-> HSL 変換を行ったと述べており、 .diff ファイル内の彼のコメントに添付されたいくつかの C コード (実際には読めません :( )
私の意図は次のとおりです。
- sRGB (例:
FF99FF
(R=255, G=153, B=255
)) から Linear RGB (R=1.0, G=0.318546778125092, B=1.0
) に送信- 上記のコードを使用します (たとえば、G=153 は からリニア RGB で取得されます
sRGB_to_linearRGB(153 / 255)
) 。
- 上記のコードを使用します (たとえば、G=153 は からリニア RGB で取得されます
- HSLへ
- 彩度を 350% 変更/変調します。
- HSL->Linear RGB->sRGB から送り返すと、結果は
FF19FF
(R=255, G=25, B=255
) になります。
.getHue
aなどの .NET から利用可能な関数を使用するSystem.Drawing.Color
と、任意の HSL 値の 100% 変調を超える sRGB 空間では機能しないため、sRGB の代わりにリニア RGB を送信する必要があります。
javascript - このJavascriptRGBからHSLへのコードが機能しないのはなぜですか?
このRGBからHSLへのスクリプトはhttp://www.mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascriptで見つかりました。私は他の小さなまともなものを見つけることができません。問題は、このコードが実際には機能しないことです。誰かがその理由を知っていますか?(私は少し色の数学を知りませんが、多分それは補完的なものを返していますか?)
編集:実行するrgbToHsl(126,210,22)
と、[。24、.81、.45]が表示されます。これは、オレンジ色のHSLです。
algorithm - HSL から RGB への色変換
HSL カラーを RGB に変換するアルゴリズムを探しています。
HSL はあまり広く使用されていないように思われるため、コンバーターを探すのにあまり苦労していません。
colors - RGB/Hex/HSL/HSV などの色名
私はこの素晴らしい機能/コマンドに出くわしました。色を RGB に変換するには、次の操作を行います。
1 つの 16 進数値を返します。Perl、Python、または PHP を使用してこれを拡張したいのですが、たとえば「yellow」を渡すことができるようにしたいのですが、関数はすべてのタイプの黄色 (hex/rgb/?/etc 値) を返します。
色名を16進値にマッピングすることを含む簡単な解決策がすでに実装されていますが、今ではより正確になり、いくつかの式などを使用して何が何であるかを判断したいと考えています。
しかし、いつものように、これを行う方法についての手がかりがありません! したがって、これを行う方法に関する実装のアドバイスに感謝します。
皆さんありがとう
java - JavaでHSL色空間を使用するにはどうすればよいですか?
ColorSpaceクラスを調べたところ、定数が見つかりましたTYPE_HLS
(おそらく、順序が異なるHSLだけです)。
この定数を使用してColor
、色相、彩度、明度から作成できますか?そうでない場合、このためのJavaクラスはありますか、それとも自分で作成する必要がありますか?
iphone - Objective C を使用した RGB から HSL への変換
私はObjective Cにはまったく慣れていませんが、しばらくの間プログラミングを行っています。RGB から HSL に変換して元に戻す関数の作成を開始しましたが、長すぎて間違った方向に向かっているように感じます。この変換を実行する簡単な方法を知っている人はいますか?
c# - 特定の割合で色相に近づく、または色相から遠ざかる
Open XMLの色合い効果をエミュレートしようとしています。色相をシフトすることにより、画像内のピクセルの色相を変更します。2 つのパラメータを取ります: 1) hue
(度) と 2) amt
(量、パーセンテージ)。問題があるのは#2です。仕様には次のように記載されています。
色合い: エフェクト カラー値を、指定された量だけ色相に向かって、または色相から遠ざけます。
- amt (量) - 色の値をシフトする量を指定します。
- hue (Hue) - 着色する色相を指定します。
XML 構造を気にせずにamt
、100% の値をエミュレートできます。たとえば、青 (色相: 240°) が必要な場合は、これ (着色されたもの) を作成できます。次に例を示します。
オリジナルと着色(色相 = 240、量 = 100%)。
これは、色相を 240 に設定し、彩度と輝度を同じに保ち、RGB に変換して各ピクセルを書き込むだけで実現できます。
ただし、達成できないことは次のとおりです。
色相 = 240 (青)、量 = 30%、50%、および80%、それぞれ
繰り返しますが、Specify by how much the color value isAmount
shift と言っています。これを機能させるためにここであらゆる種類の方法を試しましたが、うまくいかないようです ( 、など)。hue=hue*amount
originalhue * amount + hue
その他の例: 色相 = 120 (緑)、量 = 30%、50%、80%、および100%。私が得ることができる100%のもの。
上の写真の単一ピクセルの値のリストを次に示します。
Pixel 159、116 - 青の写真
Pixel 159、116 - 緑の写真
それで、質問は次のとおりです。これがどのように機能するか知っている人はいますか?
注: これは次の複製ではありません。
- 全体の明るさを維持しながらビットマップの色合いを変更する
- C# で ImageAttributes を使用して色相を回転する
- ...または私がSOで見つけることができる他のもの