x%の不透明度を適用した後の色の結果を見つけるための式?


10

2色あります

  1. #a1a2a4
  2. 黒(#000000
  3. 白(#ffffff

最初の色に「最も近い」(目で判断される)色を実現するには、3番目の色(白)の背景に対して2番目の色(黒)にどれだけの不透明度(パーセント)を適用する必要があるかを知る必要があります。色(#a1a2a4)。

どうすればそれを行うことができますか?


逆の方法については、graphicdesign.stackexchange.com / questions / 2204 /…も参照してください
JariKeinänen11年

私はあなたの言葉遣いに少し混乱していますgray。指定した色に最も近い色調にしたいですか?
horatio

回答:


6

このケースは多かれ少なかれ単純です(あなたは白黒を扱っています)。

色(#a1a2a4)を適用した後、RGBレベルを確認します。

RGBレベル

約162(平均)であることがわかります。0から255までの範囲であることがわかっているので、パーセントを確認するだけです。

162 * 100/255 =〜63.5%

ここで、RGBはCMYKとは逆の方法で動作するため(混色に関しては、フルカラーミックスは白を意味し、CMYKフルカラーミックスは黒を意味します)、この場合の実際のパーセントは、100%と値の差です私たちが得たもの:

100-63,5 = 36,5%

ですから、不透明度の36%を適用すると、この色になります。テストしたところです。

もちろん、より複雑な色の場合、この方法は機能せず、パーセントを取得する方法がわからないので、古典的な試行錯誤を行います。


4

問題が正しく理解できれば、「これをプログラムでどのように計算しますか?」ターゲットの「色」をアルファ値に変換するのは簡単な数学です。

白== [1,1,1]または#ffffffまたは255,255,255。アプリケーションによって異なります。黒== [0,0,0]など

したがって、ターゲット値(この場合は.6314)を正規化し、1から減算して、アルファ値として黒いレイヤーに適用します。これは一度に1つのチャネルで実行して結果を平均化できますが、色がニュートラルグレーの#a1a1a1と(目で見て)区別できないため、なぜ煩わしいのでしょう。(色相が見える場合、チャネルは異なる値を持つため、物事はより複雑になりますが、同じ原理が適用されます。)


それは、真剣にセクシーなオタクです。8)
ローレンクリアモニカイプサム

3
それはどうもありがとう!<ポケットプロテクターを調整し、ペンが等間隔に配置されるようにします>
アランギルバートソン2011

0

試行錯誤の少し速いバリアント:

PhotoshopでCMYKドキュメントの16進数カラーを作成し、CMYK値を確認します。39/32/31/1になります。

上部の黒と下部の白の2つのレイヤーを作成します。

情報ウィンドウを引き上げます。別途、レイヤーウィンドウを引き上げます。

黒いレイヤーの不透明度を調整します。色の上にスポイトを使用し、情報ウィンドウでチェックして、どれだけ近づいているかを確認します。これにより、不透明度を変更する時間を節約できます—フラット化—色をチェック—フラット化を元に戻します。


あなたは正しいですが、それを行うにはかなりマニアックな方法があります。8-D
アランギルバートソン

0

前景色と背景色(R、G、およびBチャネル全体で均一な値)が与えられた場合#a1a2a4、不透明度はすべてのチャネルに一度に影響するため、不透明度を変更しての不均一な色を実現することはできません。ただし、#a1a1a1黒の不透明度をに設定することで、「十分に近い」色を実現できます0.37。これが私が使ったツールです:

http://colorizer.org/

  1. 「背景」をクリックし、16進数値を #fff
  2. 「ボタン」をクリックし、16進数値を #000
  3. スポイトユーティリティを使用して「アルファ/不透明度」スペクトル上のターゲットカラーを見つけ、スペクトルをクリックして不透明度の値を取得します。

0

この式を見つけることは、線形代数のすばらしい練習です。RGBと線形代数を使用して、この行列Mを思い付きました。RGBred=(237,32,36)とRGBblue =(60,84,165)を組み合わせる場合は、下のレイヤーが100%の不透明度で、上のレイヤーが50%です。次に、不透明度はMvを乗算します。ここで、Mは下の行列であり、v =(237,32,36,60,84,165)です。Mv =(157.777,71.444,107.444)が得られます。

実際の値は(159,71,103)なので、かなり近いですが、エラーが発生します。おそらく、丸めた値を使用してMを計算していたか、RGBを使用せずに透明度を計算するために他のスケールを使用しているためです。平坦化。おそらく最小二乗型のアプローチを使用してより正確な行列を取得できたでしょうが、私は怠惰でした。

取得した行列MIは

M=[-0.316438695251802233798084520470 -0.0205011495462359668020633451463 -0.627769626184202308338411657855 
    4.83088877248122926488562947487 -0.673109830626855247075257552051 0.137681159420289855072463768116]
[2.67597831835520455938498494132 0.215715090307662822540065922133 1.69848459052630338054958974280 -13.9750196437925615505500261925 
    3.20021608171817705605028810915 -0.370471014492753623188405797101]
[-6.62632375526968419148486246260 0.509833585674322977062528534400 -3.14436345482363613544439381045 35.0629474419416797625283743688
    -6.69242186135847738781211803779 1.41304347826086956521739130435]
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.