Alphaは赤、青、緑の画像をブレンドして、RGB値に覆われた画像を作成しますか?

StackOverflow https://stackoverflow.com/questions/2030471

質問

基本的に、私は画像をプログラム的に色付けすることができないコンテキストを持っていますが、アルファ値を変更できます。いくつかの実験で、特定のアルファ値を持つ画像の赤、青、緑のバージョンを幅広い色を生成することができることがわかりました。しかし、私はこの方法を通して真のRGB表現を達成することが可能かどうか疑問に思っていますか?もしそうなら、RGB値を赤、青、緑の層の異なるアルファ値に変換するための式は何ですか。

役に立ちましたか?

解決

アルファの組み合わせの基本的な「方程式」は次のとおりです。

alpha * (R1,G1,B1) + (1-alpha) * (R2,G2,B2)

アルファに3つのレイヤーがある場合、実際に4つのレイヤーを組み合わせています(4番目のレイヤーは黒です)ので、最終色は次のとおりです。

alpha1 * (R1,G1,B1) + (1-alpha1) * ( 
   alpha2 * (R2,G2,B2) + (1-alpha2) * (
      alpha3 * (R3,G3,B3) + (1-alpha2) * (0,0,0) ) )

各レイヤーに同じ画像があり、layer1が赤いチャネル(g1 = b1 = 0)で、layer2は緑で、layer3は青色です。

(alpha1 * R, (1-alpha1)*alpha2 * G, (1-alpha1)*(1-alpha2)*alpha3 * B)

白いピクセルの場合、可能な色を実行できます。黒いピクセルの場合、黒以外は何もできません。他のピクセルについては、R、G、Bの値によって制限されています。

現在の色が(r、g、b)であるピクセルで(rd、gd、bd)を達成したかったとします。

alpha1 = Rd/R
alpha2 = Gd/(G*(1-alpha1))
alpha3 = Bd/(B*(1-alpha1)*(1-alpha2))

問題は、アルファが通常0から1のみである可能性があることです。したがって、たとえば、rd> rの場合、できることは何もありません。

ブレンド関数を制御できれば(たとえば、Photoshopで)、より良いことができます。

他のヒント

私があなたを正しく理解していれば、私はそれが可能であるとは思わない。

特定のピクセルの場合、画像の赤い値が0.5である場合、それを(典型的な)範囲[0,1]のアルファと組み合わせて0.5までの任意の値を形成できますが、できませんが、できません。上記で、出力値としてEG 0.6程度を取得します。

ブレンドされた3つのレイヤーを作成しようとしている場合は、元の画像に合わせて、それは非常に可能です。これは、ペイントショッププロで機能を呼び出すPythonスクリプトへのリンクを示し、ハードパーツを行います。

http://pixelnook.home.comcast.net/~pixelnook/splittorgb.htm

それ以上の詳細が必要な場合は、コメントを残してください。後で記入してみます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top