Android grafikte PorterDuff.Mode ne anlama geliyor?


142

Android grafiklerde PorterDuff.Mode'un ne anlama geldiğini bilmek istiyorum .

Bunun bir aktarım modu olduğunu biliyorum .

Ayrıca biliyorum ki, DST_IN, Multiply vb.


Son keşfimden. üst üste binen resimleriniz varsa ve bunlardan birinin renk filtresini değiştirmeye çalışırsanız, üst üste binen diğer resmi etkiler!
Jonathan

Yanıtlar:


321

İşte bir Google mühendisinin resimlerini içeren mükemmel bir makale:

http://ssp.impulsetrain.com/porterduff.html

PorterDuff, görüntüleri üst üste bindirilmiş "düzensiz şekilli karton parçaları" gibi ve üst üste binen parçaları karıştırmak için bir şema gibi birleştirmenin bir yolu olarak tanımlanır.

Görüntüleri oluşturmanın varsayılan Android yolu , kaynak görüntüyü / rengi hedef görüntünün üzerine çizmeye denk gelen PorterDuff.Mode.SRC_OVER şeklindedir . Başka bir deyişle, beklediğiniz şeyi yapar ve hedef görüntüyü kaynak görüntünün alfa tarafından tanımlanan dereceye kadar göstereceği şekilde hedef görüntünün (tuval) üzerine hedef görüntüyü (tuval) çizer.

PorterDuff Infographic makaleden

Android belgelerinin diğer modları tanımlamak için kullandığı cebiri anlamak için aşağıdaki anahtarı kullanabilirsiniz ( benzer terimlerle daha dolgun bir açıklama için makaleye bakın ).

  • Sa Kaynak alfa
  • Sc Kaynak rengi
  • Da Hedef alfa
  • DC Hedef rengi

Alfa bir değer [0..1]olduğunda ve renk kanal başına bir kez ikame edilir (bu nedenle, kırmızı, yeşil ve mavinin her biri için formülü bir kez kullanın)

Elde edilen değerler aşağıdaki gibi kare parantez içinde bir çift olarak belirtilir.

[<alpha-value>,<color-value>]

Nerede alpha-valueve color-valuesonuçta ortaya çıkan alfa kanalını ve her bir renk kanalını oluşturmak için formüllerdir.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.