2009-03-02 56 views
7

Surface.blit在1.8中有一個新參數:混合。下面的值被定義:pygame中的混合模式是什麼意思?

  • 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

能someon Ë解釋這些模式是什麼意思?

回答

9

你可以找到的混合操作這裏的源:surface.h

基本上,添加將兩個源像素和剪輯的結果,在255 SUB減去兩個像素和剪輯爲0

MULTresult = (p1 * p2)/256

MIN:選擇各通道(而不是整個像素)的較低值,所以如果PIXEL1是(100,10,0)和PIXEL2是(0,10,100),你(0,10,0)

MAX:與MIN相反(即, (100,10,100)

還有一個額外的混合模式,從文檔中不明顯:0(或者只是將參數保留)。這種模式將「源」表面「加蓋」到目的地。如果源表面具有Alpha通道,則將確定每個像素的「強」程度(0 =無效,255 =複製像素,128result = .5*source + .5*destination)。

有用的效果:若要使某個區域變暗,請使用混合模式0,填充源/印記表面黑色並將alpha設置爲10(0,0,0,10)

要照亮它,請使用白色(255,255,255,10)

2

這些是混合模式合成圖像在彼此之上。混合模式的名稱已經告訴您底層操作。

BLEND_*常數僅僅是BLEND_RGB_*常數的別名,而BLEND_RGBA_*變體在所有四個通道(包括alpha通道)上操作,而不是僅對RGB操作。

有關不同混合模式及其各自效果的一般信息,請參閱here

+0

感謝您的回答。你可以在什麼時候使用哪種混合類型? – 2009-03-09 08:44:10

+0

Thad都取決於你想達到什麼。這可能有點違反直覺,但要記住每種模式的作用是告訴你什麼顏色會產生什麼效果。您可以使用GIMP或Paint.NET等圖形軟件來播放混合模式,因爲它們在層次上基本相同。 – Joey 2009-03-09 10:15:58