SkiaSharp blend modları
Bu makaleler özelliğine BlendMode
SKPaint
odaklanır. BlendMode
özelliği türündedir SKBlendMode
ve 29 üyeli bir numaralandırmadır.
özelliği, BlendMode
mevcut grafik nesnelerin (hedef olarak adlandırılır) üzerinde bir grafik nesnesi (genellikle kaynak olarak adlandırılır) işlendiğinde ne olacağını belirler. Normalde, yeni grafik nesnesinin altındaki nesneleri gizlemesini bekleriz. Ancak bunun nedeni varsayılan karıştırma modunun olmasıdırSKBlendMode.SrcOver
. Bu, kaynağın hedef üzerinde çizildiği anlamına gelir. Diğer 28 üye SKBlendMode
başka etkilere neden olur. Grafik programlamada, grafik nesneleri çeşitli şekillerde birleştirme tekniği, birleştirme olarak bilinir.
SKBlendModes sabit listesi
SkiaSharp harmanlama modları, W3C Birleştirme ve Harmanlama Düzeyi 1 belirtiminde açıklananlara yakın bir şekilde karşılık gelir. Skia SkBlendMode'a Genel Bakış da yararlı arka plan bilgileri sağlar. Blend modlarına genel bir giriş için Wikipedia'daki Blend modları makalesi iyi bir başlangıçtır. Blend modları Adobe Photoshop'ta desteklenir, bu nedenle bu bağlamda blend modları hakkında çok fazla çevrimiçi bilgi vardır.
Numaralandırmanın SKBlendMode
29 üyesi üç kategoriye ayrılabilir:
Porter-Duff | Ayrıştırılabilir | Ayrıştırılamaz |
---|---|---|
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 |
Bu üç kategorinin adları, izleyen tartışmalarda daha anlamlı olacaktır. Üyelerin burada listelendiği sıra, numaralandırmanın tanımındakiyle SKBlendMode
aynıdır. İlk sütundaki 13 numaralandırma üyesinin 0 ile 12 tamsayı değerleri vardır. İkinci sütun, 13 ile 24 arasında tamsayılara karşılık gelen numaralandırma üyeleridir ve üçüncü sütundaki üyelerin değerleri 25 ile 28 arasındadır.
Bu karışım modları, W3C Birleştirme ve Karıştırma Düzeyi 1 belgesinde yaklaşık olarak aynı sırada ele alınmaktadır, ancak birkaç fark vardır: Src
Mod W3C belgesinde Kopyala olarak adlandırılır ve Plus
Daha Açık olarak adlandırılır. W3C belgesi, ile aynı SrcOver
olacağından içinde SKBlendModes
yer alınmamış bir Normal karıştırma modunu tanımlar. Karıştırma Modulate
modu (ikinci sütunun en üstünde) W3C belgesine dahil değildir ve modun Multiply
tartışması öncesinde olur Screen
.
Modulate
Karıştırma modu Skia'ya özgü olduğundan ek bir Porter-Duff modu ve ayrıştırılabilir mod olarak ele alınacaktır.
Saydamlığın önemi
Geçmişte, birleştirme alfa kanalı kavramıyla birlikte geliştirilmiştir. Nesne ve tam renkli bit eşlem gibi SKCanvas
bir görüntü yüzeyinde her piksel 4 bayttan oluşur: kırmızı, yeşil ve mavi bileşenler için her biri 1 bayt ve saydamlık için ek bir bayt. Bu alfa bileşeni tam saydamlık için 0, tam opaklık için 0xFF ve bu değerler arasında farklı saydamlık düzeyleri vardır.
Harmanlama modlarının çoğu saydamlığa dayanır. Genellikle, bir SKCanvas
PaintSurface
işleyicide ilk kez bir elde edildiğinde veya bit eşlem üzerinde çizmek için bir SKCanvas
oluşturulduğunda, ilk adım şu çağrıdır:
canvas.Clear();
Bu yöntem, tuvalin tüm piksellerini veya tamsayı 0x00000000 eşdeğer new SKColor(0, 0, 0, 0)
saydam siyah piksellerle değiştirir. Tüm piksellerin tüm baytları sıfır olarak başlatılır.
İşleyicide PaintSurface
elde edilen bir SKCanvas
çizim yüzeyinin beyaz arka planı olabilir, ancak bunun nedeniSKCanvasView
, kendisinin saydam bir arka plana sahip olması ve sayfanın beyaz bir arka plana sahip olmasıdır. özelliğini SKCanvasView
bir Xamarin.Forms renge ayarlayarak Xamarin.FormsBackgroundColor
bu gerçeği kendinize gösterebilirsiniz:
canvasView.BackgroundColor = Color.Red;
Veya öğesinden ContentPage
türetilen bir sınıfta sayfa arka plan rengini ayarlayabilirsiniz:
BackgroundColor = Color.Red;
SkiaSharp tuvalinin kendisi saydam olduğundan SkiaSharp grafiklerinizin arkasında bu kırmızı arka planı görürsünüz.
SkiaSharp Saydamlığı makalesi, bileşik görüntüde birden çok grafiği düzenlemek için saydamlığı kullanmayla ilgili bazı temel teknikleri gösterdi. Karışım modları bunun ötesine geçer, ancak saydamlık karışım modları için önemli olmaya devam eder.
SkiaSharp Porter-Duff karışım modları
Kaynak ve hedef görüntüleri temel alan sahneler oluşturmak için Porter-Duff harmanlama modlarını kullanın.
SkiaSharp ayrıştırılabilir karışım modları
Kırmızı, yeşil ve mavi renkleri değiştirmek için ayrıştırılabilir karışım modlarını kullanın.
SkiaSharp ayrıştırılamayan karışım modları
Tonu, doygunluğu veya parlaklığı değiştirmek için ayrıştırılamayan karışım modlarını kullanın.