2011-09-10 6 views
0

2種類の色を組み合わせてPyQtに新しいQColorを作成する方法はありますか?ような何か:PyQtで色を混ぜる?

QColor([30, QColor(123,0,45, 100)], [70, QColor(12, 34, 56, 100)]) 

30と70は取るために新色の割合を表します。

私が必要とするのは、不透明な色の上に半透明の色を重ねるのに相当する色です。

答えて

2

あなたが尋ねて以来、しばらくしていますが、もちろん、これらの色を一緒にブレンドする方法があります。それは自明ではないかもしれないが、確かに可能である。 2つの色を組み合わせる

は非常に簡単(カラー1およびカラー2の両方QColorsであると仮定して)ことによって行うことができる。

QColor(.3* color1.red() + .7 * color2.red(), 
     .3* color1.green() + .7 * color2.green(), 
     .3* color1.blue() + .7 * color2.blue(), 
     .3* color1.alpha() + .7 * color2.alpha() 
    ) 

2色間補間れます。

ただし、これは一方の色が他方の色の上にあることを考慮していません。最初の色は不透明なので、結果として生じる色も不透明です。ただし、結果の色を計算するには、アルファ値の一部を考慮する必要があります(質問の解釈によって異なります)。

QColor(color1.red() + .color2.alpha() * color2.red(), 
     color1.green() + .color2.alpha() * color2.green(), 
     color1.blue() + .color2.alpha() * color2.blue(), 
     1 
    ) 
関連する問題