SKPaint Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
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:
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. |