質問

Surface.blit には1.8の新しいパラメーターがあります。ブレンド。次の値が定義されています。

  • BLEND_ADD
  • BLEND_SUB
  • BLEND_MULT
  • BLEND_MIN
  • BLEND_MAX
  • BLEND_RGBA_ADD
  • BLEND_RGBA_SUB
  • BLEND_RGBA_MULT
  • BLEND_RGBA_MIN
  • BLEND_RGBA_MAX
  • BLEND_RGB_ADD
  • BLEND_RGB_SUB
  • BLEND_RGB_MULT
  • BLEND_RGB_MIN
  • BLEND_RGB_MAX

これらのモードの意味を誰かが説明できますか?

役に立ちましたか?

解決

ここでブレンド操作のソースを見つけることができます: surface.h

基本的に、ADDは2つのソースピクセルを追加し、結果を255でクリップします。SUBは2つのピクセルと0でクリップを減算します。

MULT result =(p1 * p2)/ 256

MIN :各チャネルの低い値(ピクセル全体ではない)を選択します。したがって、pixel1が(100,10,0)で、pixel2がの場合(0,10,100)(0,10,0)

を取得します

MAX :MINの反対(つまり(100,10,100)

そして、ドキュメントからは明らかではない追加のブレンドモードがあります: 0 (または単にパラメーターを省略します)。このモードは「スタンプ」します。宛先へのソースサーフェス。ソースサーフェスにアルファチャネルがある場合、これにより、「強い」強度が決まります。各ピクセルは( 0 =効果なし、 255 =ピクセルのコピー、 128 result = .5 * source + .5 *宛先)。

有用な効果:特定の領域を暗くするには、ブレンドモード0を使用し、ソース/スタンプサーフェスを黒で塗りつぶし、アルファを 10 に設定します:(0,0,0,10)

明るくするには、白い(255,255,255,10)を使用します。

他のヒント

これらは、画像を重ね合わせる合成モードです。ブレンドモードの名前は、基になる操作を既に示しています。

BLEND _ * 定数は、単に BLEND_RGB _ * 定数のエイリアスであり、 BLEND_RGBA _ * バリアントは4つのチャネルすべてで動作します(アルファを含む) RGB)のみとは対照的に。

さまざまなブレンドモードとそれぞれの効果に関する一般情報については、こちら

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