Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Te artykuły koncentrują się na BlendMode
właściwości .SKPaint
Właściwość BlendMode
jest typu SKBlendMode
, wyliczenie z 29 elementami członkowskimi.
Właściwość BlendMode
określa, co się stanie, gdy obiekt graficzny (często nazywany źródłem) jest renderowany na podstawie istniejących obiektów graficznych (nazywanych miejscem docelowym). Zwykle oczekujemy, że nowy obiekt graficzny będzie zaciemniać pod nim obiekty. Dzieje się tak tylko dlatego, że domyślny tryb mieszania to SKBlendMode.SrcOver
, co oznacza, że źródło jest rysowane na miejscu docelowym. Pozostałe 28 członków SKBlendMode
powoduje inne skutki. W programowaniu graficznym technika łączenia obiektów graficznych na różne sposoby jest nazywana komponowaniem.
Wyliczenie SKBlendModes
Tryby mieszania SkiaSharp są ściśle zgodne z trybami opisanymi w specyfikacji W3C Compositing i Blending Level 1 . Przegląd Skia SkBlendMode zawiera również przydatne informacje podstawowe. Aby zapoznać się z ogólnym wprowadzeniem do trybów mieszania, artykuł Tryby mieszania w Wikipedii jest dobrym początkiem. Tryby mieszania są obsługiwane w programie Adobe Photoshop, dlatego w tym kontekście istnieje wiele dodatkowych informacji online na temat trybów mieszania.
29 członków SKBlendMode
wyliczenia można podzielić na trzy kategorie:
Porter-Duff | Rozdzielne | Nieudzielalne |
---|---|---|
Clear |
Modulate |
Hue |
Src |
Screen |
Saturation |
Dst |
Overlay |
Color |
SrcOver |
Darken |
Luminosity |
DstOver |
Lighten |
|
SrcIn |
ColorDodge |
|
DstIn |
ColorBurn |
|
SrcOut |
HardLight |
|
DstOut |
SoftLight |
|
SrcATop |
Difference |
|
DstATop |
Exclusion |
|
Xor |
Multiply |
|
Plus |
Nazwy tych trzech kategorii będą mieć większe znaczenie w kolejnych dyskusjach. Kolejność wymieniona w tym miejscu elementów członkowskich jest taka sama jak w definicji SKBlendMode
wyliczenia. 13 elementów członkowskich wyliczenia w pierwszej kolumnie ma wartości całkowite od 0 do 12. Druga kolumna to elementy członkowskie wyliczenia, które odpowiadają liczbą całkowitą od 13 do 24, a elementy członkowskie w trzeciej kolumnie mają wartości od 25 do 28.
Te tryby mieszania są omawiane w mniej więcej takiej samej kolejności w dokumencie Kompositing I Blending Level 1, ale istnieje kilka różnic: Src
tryb jest nazywany kopiowaniem w dokumencie W3C i Plus
jest nazywany jaśniejszym. Dokument W3C definiuje normalny tryb mieszania, który nie jest uwzględniony, SKBlendModes
ponieważ byłby taki sam jak SrcOver
. Tryb Modulate
mieszania (w górnej części drugiej kolumny) nie jest uwzględniony w dokumencie W3C, a omówienie Multiply
trybu poprzedza Screen
.
Modulate
Ponieważ tryb mieszany jest unikatowy dla Skia, zostanie omówiony jako dodatkowy tryb Porter-Duff i jako tryb separowalny.
Znaczenie przejrzystości
W przeszłości komponowanie zostało opracowane w połączeniu z koncepcją kanału alfa. Na powierzchni wyświetlanej, takiej jak SKCanvas
obiekt i mapa bitowa w pełnym kolorze, każdy piksel składa się z 4 bajtów: 1 bajt dla czerwonych, zielonych i niebieskich składników oraz dodatkowy bajt przezroczystości. Ten składnik alfa jest 0 dla pełnej przezroczystości i 0xFF dla pełnej nieprzezroczystości, z różnymi poziomami przezroczystości między tymi wartościami.
Wiele trybów mieszania opiera się na przezroczystości. Zazwyczaj, gdy element SKCanvas
jest po raz pierwszy uzyskiwany w PaintSurface
programie obsługi lub gdy SKCanvas
jest tworzony do rysowania na mapie bitowej, pierwszym krokiem jest to wywołanie:
canvas.Clear();
Ta metoda zastępuje wszystkie piksele kanwy przezroczystymi czarnymi pikselami, równoważnymi new SKColor(0, 0, 0, 0)
lub liczbą całkowitą 0x00000000. Wszystkie bajty wszystkich pikseli są inicjowane do zera.
Powierzchnia rysunku elementu uzyskanego SKCanvas
w procedurze PaintSurface
obsługi może wydawać się mieć białe tło, ale to tylko dlatego, że SKCanvasView
sam obiekt ma przezroczyste tło, a strona ma białe tło. Możesz zademonstrować ten fakt samodzielnie, ustawiając Xamarin.FormsBackgroundColor
właściwość SKCanvasView
na Xamarin.Forms kolor:
canvasView.BackgroundColor = Color.Red;
Lub w klasie pochodzącej z ContentPage
klasy można ustawić kolor tła strony:
BackgroundColor = Color.Red;
Zobaczysz to czerwone tło za grafiką SkiaSharp, ponieważ sama kanwa SkiaSharp jest przezroczysta.
Artykuł SkiaSharp Transparency pokazał kilka podstawowych technik używania przezroczystości do rozmieszczania wielu grafiki na obrazie złożonym. Tryby mieszania wykraczają poza to, ale przejrzystość pozostaje kluczowa dla trybów mieszania.
Tryby mieszania SkiaSharp Porter-Duff
Użyj trybów mieszania Porter-Duff, aby tworzyć sceny na podstawie obrazów źródłowych i docelowych.
Tryby mieszania separable SkiaSharp
Użyj trybów mieszania do separowania, aby zmienić czerwone, zielone i niebieskie kolory.
Tryby mieszania bez separowalnej biblioteki SkiaSharp
Użyj trybów mieszania nieoddzielnych, aby zmienić odcienie, nasycenie lub jasność.