Frage

Surface.blit hat einen neuen Parameter in 1.8: Mischung. Die folgenden Werte sind definiert:

  • 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

Kann mir jemand erklären, was diese Modi bedeuten?

War es hilfreich?

Lösung

Sie können die Quelle für die Mischoperationen finden Sie hier: surface.h

Grundsätzlich ADD addiert die beiden Quellpixel und Clips das Ergebnis bei 255 SUB die beiden Pixel und Clips bei 0 subtrahiert.

MULT: result = (p1 * p2) / 256

MIN: Wählen Sie den unteren Wert jedes Kanals (nicht das ganze Pixel), so dass, wenn pixel1 (100,10,0) und pixel2 ist (0,10,100), Sie (0,10,0) bekommen

MAX: Gegenüber von MIN (d (100,10,100))

Und es gibt einen zusätzlichen Mischmodus, die aus der Dokumentation nicht offensichtlich ist: 0 (oder nur den Parameter auslassen). Dieser Modus wird „Stempel“ Quelloberfläche in das Ziel. Wenn die Quelloberfläche einen Alphakanal aufweist, wird diese festzustellen, wie „stark“ jedes Pixel (0 = keine Wirkung, 255 = kopieren pixel, 128: result = .5*source + .5*destination)

.

Nützliche Wirkungen: einen bestimmten Bereich verdunkeln, verwendet Mischmodus 0, füllen Sie die Source / Stempeloberfläche schwarz und alpha gesetzt 10. (0,0,0,10)

Um es leichter zu machen, verwenden Sie weiß (255,255,255,10).

Andere Tipps

Das sind Füllmethoden für Compositing Bilder auf der jeweils anderen. Der Name des Mischmodus zeigt Ihnen bereits die zugrundeliegende Operation.

Die BLEND_* Konstanten sind einfach Aliasnamen für die BLEND_RGB_* Konstanten und die BLEND_RGBA_* Varianten arbeiten auf allen vier Kanälen (einschließlich des Alphakanal), um nur RGB entgegengesetzt.

Für allgemeine Informationen über die verschiedenen Füllmethoden und ihre jeweiligen Auswirkungen finden Sie unter hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top