SKPaint Classe

Definizione

Contiene le informazioni sullo stile e sul colore su come disegnare geometrie, testo e bitmap.

public class SKPaint : SkiaSharp.SKObject
Ereditarietà

Esempio

Esempio semplice

Nell'esempio seguente vengono illustrate tre diverse vernici, ognuna impostata per disegnare in uno stile diverso. Il chiamante può combinare liberamente queste vernici, utilizzandole così come è, o modificandole man mano che il disegno procede.

var info = new SKImageInfo(256, 256);
using (var surface = SKSurface.Create(info)) {
    SKCanvas canvas = surface.Canvas;

    canvas.Clear(SKColors.White);

    using var font = new SKFont { Size = 64.0f };
    using var scaledFont = new SKFont { Size = 64.0f, ScaleX = 1.5f };

    using var paint1 = new SKPaint {
        IsAntialias = true,
        Color = new SKColor(255, 0, 0),
        Style = SKPaintStyle.Fill
    };

    using var paint2 = new SKPaint {
        IsAntialias = true,
        Color = new SKColor(0, 136, 0),
        Style = SKPaintStyle.Stroke,
        StrokeWidth = 3
    };

    using var paint3 = new SKPaint {
        IsAntialias = true,
        Color = new SKColor(136, 136, 136)
    };

    var text = "Skia!";
    canvas.DrawText(text, 20.0f, 64.0f, SKTextAlign.Left, font, paint1);
    canvas.DrawText(text, 20.0f, 144.0f, SKTextAlign.Left, font, paint2);
    canvas.DrawText(text, 20.0f, 224.0f, SKTextAlign.Left, scaledFont, paint3);
}

L'esempio precedente produce quanto segue:

SKPaint e Text SKPaint e Text

Esempio di effetti

Nell'esempio seguente viene disegnato utilizzando una sfumatura anziché un singolo colore. A tale scopo, questo oggetto SKShader viene assegnato alla vernice. Qualsiasi elemento disegnato con tale disegno verrà disegnato con la sfumatura specificata nella chiamata a SKShader.CreateLinearGradient.

var info = new SKImageInfo(256, 256);
using (var surface = SKSurface.Create(info)) {
    SKCanvas canvas = surface.Canvas;

    canvas.Clear(SKColors.White);

    // create a gradient
    var colors = new[] {
        SKColors.Blue,
        SKColors.Yellow
    };
    var shader = SKShader.CreateLinearGradient(
        new SKPoint(0.0f, 0.0f),
        new SKPoint(256.0f, 256.0f),
        colors,
        null,
        SKShaderTileMode.Clamp);

    // assign the gradient to the paint
    var paint = new SKPaint {
        Shader = shader
    };

    canvas.DrawPaint(paint);
}

L'esempio precedente produce quanto segue:

SKPaint e SKShader

Commenti

Ogni volta che si disegna qualcosa in SkiaSharp e si desidera specificare il colore, o il modo in cui si fonde con lo sfondo, o quale stile o tipo di carattere disegnare, si specificano gli attributi in una vernice.

A differenza di SKCanvas, un oggetto paint non mantiene uno stack interno di stato. Ovvero, non c'è alcun salvataggio/ripristino su una vernice. Tuttavia, gli oggetti paint sono relativamente leggeri, quindi il client può creare e mantenere un numero qualsiasi di oggetti di vernice, ognuno dei quali è configurato per un particolare utilizzo.

Il factoring di tutti questi attributi di colore e stilistici fuori dallo stato dell'area di disegno e in (più) oggetti di vernice consente alle operazioni di salvataggio e ripristino su SKCanvas di essere molto più efficienti, poiché tutto ciò che devono fare è mantenere lo stack di impostazioni di matrice e clip.

Effetti

Oltre agli attributi semplici, ad esempio colori, tratti e valori di testo, i colori supportano gli effetti. Si tratta di sottoclassi di diversi aspetti della pipeline di disegno, che quando viene fatto riferimento da una vernice, vengono chiamate per eseguire l'override di parte della pipeline di disegno.

Esistono cinque tipi di effetti che possono essere assegnati a un oggetto paint:

Effetto dettagli
Modalità blend Modalità blend e modalità di trasferimento Duff-Porter.
Filtro colori Modifica dei colori di origine prima di applicare la modalità di fusione.
Filtro maschera Modifica della maschera alfa prima che venga colorata e disegnata (ad esempio, sfocatura).
Effetto percorso Modifica della geometria (percorso) prima che venga generata la maschera alfa (ad esempio, dashing).
Shader Sfumature e modelli bitmap.

Costruttori

Nome Descrizione
SKPaint()

Inizializza una nuova istanza della SKPaint classe con le impostazioni predefinite.

Proprietà

Nome Descrizione
Blender

Ottiene o imposta l'oggetto personalizzato SKBlender per la composizione.

BlendMode

Ottiene o imposta la modalità di fusione.

Color

Ottiene o imposta il colore di primo piano della vernice.

ColorF

Ottiene o imposta il colore della vernice come oggetto SKColorF (RGBA a virgola mobile).

ColorFilter

Ottiene o imposta il filtro colore della vernice.

Handle

Ottiene o imposta l'handle sull'oggetto nativo sottostante.

(Ereditato da SKObject)
IgnorePublicDispose

Ottiene un valore che indica se la chiamata al pubblico Dispose() deve essere no-op.

(Ereditato da SKNativeObject)
ImageFilter

Ottiene o imposta il filtro dell'immagine.

IsAntialias

Ottiene o imposta un valore che indica se l'anti-aliasing è abilitato.

IsDisposed

Ottiene un valore che indica se l'oggetto è già stato eliminato.

(Ereditato da SKNativeObject)
IsDither

Ottiene o imposta un valore che indica se il dithering è abilitato.

IsStroke

Ottiene o imposta un valore che indica se disegnare un tratto o il riempimento.

MaskFilter

Ottiene o imposta il filtro della maschera da utilizzare durante il disegno.

OwnsHandle

Ottiene o imposta un valore che indica se l'oggetto è proprietario del relativo handle e deve eliminare definitivamente l'oggetto nativo quando viene eliminato.

(Ereditato da SKNativeObject)
PathEffect

Ottiene o imposta l'effetto del percorso da utilizzare durante il disegno.

Shader

Ottiene o imposta lo shader da utilizzare durante il disegno.

StrokeCap

Ottiene o imposta un valore che indica come vengono trattati l'inizio e la fine delle linee e dei percorsi tracciati.

StrokeJoin

Ottiene o imposta il tipo di join del percorso.

StrokeMiter

Ottiene o imposta il limite di miter della vernice.

StrokeWidth

Ottiene o imposta la larghezza del tratto della vernice.

Style

Ottiene o imposta lo stile di disegno.

Metodi

Nome Descrizione
Clone()

Crea una copia della vernice corrente.

Dispose()

Rilascia tutte le risorse usate da questo SKNativeObjectoggetto .

(Ereditato da SKNativeObject)
Dispose(Boolean)

Rilascia le risorse non gestite usate da SKPaint e, facoltativamente, rilascia le risorse gestite.

DisposeInternal()

Attiva un oggetto dispose, ignorando il valore di IgnorePublicDispose.

(Ereditato da SKNativeObject)
DisposeManaged()

Implementato dai tipi derivati SKObject per eliminare tutti gli oggetti gestiti.

(Ereditato da SKObject)
DisposeNative()

Implementato dai tipi derivati SKObject per eliminare tutti gli oggetti nativi.

DisposeUnownedManaged()

Implementato dai tipi derivati SKObject per eliminare gli oggetti gestiti che non sono di proprietà di questa istanza.

(Ereditato da SKObject)
GetFillPath(SKPath, Single)

Crea un nuovo percorso dal risultato dell'applicazione di tutti gli effetti a un percorso di origine.

GetFillPath(SKPath, SKMatrix)

Crea un nuovo percorso dal risultato dell'applicazione di tutti gli effetti a un percorso di origine con una matrice di trasformazione.

GetFillPath(SKPath, SKPath, Single)
Obsoleti.

Applica tutti gli effetti a un percorso di origine, restituendo il risultato nella destinazione.

GetFillPath(SKPath, SKPath, SKMatrix)
Obsoleti.

Applica tutti gli effetti a un percorso di origine con una matrice di trasformazione, scrivendo il risultato nella destinazione.

GetFillPath(SKPath, SKPath, SKRect, Single)
Obsoleti.

Applica tutti gli effetti a un percorso di origine, restituendo il risultato nella destinazione.

GetFillPath(SKPath, SKPath, SKRect, SKMatrix)
Obsoleti.

Applica qualsiasi e tutti gli effetti a un percorso di origine con suggerimenti e trasformazione, scrivendo il risultato nella destinazione.

GetFillPath(SKPath, SKPath, SKRect)
Obsoleti.

Applica tutti gli effetti a un percorso di origine, restituendo il risultato nella destinazione.

GetFillPath(SKPath, SKPath)
Obsoleti.

Applica tutti gli effetti a un percorso di origine, restituendo il risultato nella destinazione.

GetFillPath(SKPath, SKPathBuilder, Single)

Calcola la geometria riempita del percorso di origine nella scala di risoluzione specificata e scrive il risultato nel generatore di percorsi di destinazione.

GetFillPath(SKPath, SKPathBuilder, SKMatrix)

Calcola la geometria riempita del percorso di origine dopo aver applicato una matrice di trasformazione e scrive il risultato nel generatore di percorsi di destinazione.

GetFillPath(SKPath, SKPathBuilder, SKRect, Single)

Calcola la geometria riempita del percorso di origine all'interno del rettangolo cull in corrispondenza della scala di risoluzione specificata e scrive il risultato nel generatore di percorsi di destinazione.

GetFillPath(SKPath, SKPathBuilder, SKRect, SKMatrix)

Calcola la geometria riempita del percorso di origine all'interno del rettangolo cull dopo l'applicazione di una matrice di trasformazione e scrive il risultato nel generatore di percorsi di destinazione.

GetFillPath(SKPath, SKPathBuilder, SKRect)

Calcola la geometria riempita del percorso di origine all'interno del rettangolo cull e scrive il risultato nel generatore di percorsi di destinazione.

GetFillPath(SKPath, SKPathBuilder)

Calcola la geometria riempita del percorso di origine usando lo stile di questa vernice e scrive il risultato nel generatore di percorsi di destinazione.

GetFillPath(SKPath, SKRect, Single)

Crea un nuovo percorso dal risultato dell'applicazione di tutti gli effetti a un percorso di origine.

GetFillPath(SKPath, SKRect, SKMatrix)

Crea un nuovo percorso dal risultato dell'applicazione di effetti a un percorso di origine con scellino e trasformazione.

GetFillPath(SKPath, SKRect)

Crea un nuovo percorso dal risultato dell'applicazione di tutti gli effetti a un percorso di origine.

GetFillPath(SKPath)

Crea un nuovo percorso dal risultato dell'applicazione di tutti gli effetti a un percorso di origine.

Reset()

Reimposta tutte le proprietà di disegno sui valori predefiniti.

SetColor(SKColorF, SKColorSpace)

Imposta il colore della vernice utilizzando un valore di colore a virgola mobile nello spazio colore specificato.

Si applica a