SKPaint Klasse

Definition

Enthält die Format- und Farbinformationen zum Zeichnen von Geometrien, Text und Bitmaps.

public class SKPaint : SkiaSharp.SKObject
Vererbung

Beispiele

Einfaches Beispiel

Das folgende Beispiel zeigt drei verschiedene Farben, die jeweils für das Zeichnen in einer anderen Formatvorlage eingerichtet sind. Der Aufrufer kann diese Farben frei mischen, entweder wie sie verwenden, oder sie ändern, während die Zeichnung fortgesetzt wird.

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);
}

Im obigen Beispiel wird Folgendes erzeugt:

SKPaint und Text SKPaint und

Beispiel für Effekte

Im folgenden Beispiel wird anstelle einer einzelnen Farbe ein Farbverlauf verwendet. Zu diesem Zweck wird der Farbe eine SKShader zugewiesen. Alles, was mit dieser Farbe gezeichnet wird, wird mit dem im Aufruf SKShader.CreateLinearGradientangegebenen Farbverlauf gezeichnet.

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);
}

Im obigen Beispiel wird Folgendes erzeugt:

SKPaint und SKShader SKPaint und

Hinweise

Wenn Sie etwas in SkiaSharp zeichnen und angeben möchten, welche Farbe sie ist, oder wie sie mit dem Hintergrund kombiniert wird, oder welche Formatvorlage oder Schriftart sie zeichnen soll, geben Sie diese Attribute in einer Farbe an.

Im Gegensatz dazu SKCanvasbehält ein Paint-Objekt keinen internen Zustandsstapel bei. Das heißt, es gibt keine Speicherung/Wiederherstellung auf einer Farbe. Paint-Objekte sind jedoch relativ leicht, sodass der Client eine beliebige Anzahl von Lackobjekten erstellen und verwalten kann, die jeweils für eine bestimmte Verwendung eingerichtet sind.

Durch die Berücksichtigung all dieser Farb- und Stilattribute aus dem Canvaszustand und in (mehrere) Paint-Objekte können die Speicher- und Wiederherstellungsvorgänge SKCanvas so viel effizienter sein, da alles, was sie tun müssen, den Stapel der Matrix- und Clipeinstellungen beibehalten.

Effekte

Über einfache Attribute wie Farbe, Striche und Textwerte hinaus unterstützen Farben Effekte. Hierbei handelt es sich um Unterklassen verschiedener Aspekte der Zeichnungspipeline, die beim Verweisen durch eine Farbe aufgerufen werden, um einen Teil der Zeichnungspipeline außer Kraft zu setzen.

Es gibt fünf Arten von Effekten, die einem Paint-Objekt zugewiesen werden können:

Effect Details
Blend-Modus Blend-Modi und Duff-Porter Übertragungsmodi.
Farbfilter Ändern der Quellfarben vor dem Anwenden des Mischmodus.
Maskenfilter Änderung der Alphamaske, bevor sie farbig und gezeichnet wird (z. B. Weichzeichnen).
Pfadeffekt Änderung der Geometrie (Pfad) vor dem Generieren der Alphamaske (z. B. Strich).
Shader Farbverläufe und Bitmapmuster.

Konstruktoren

Name Beschreibung
SKPaint()

Initialisiert eine neue Instanz der SKPaint Klasse mit den Standardeinstellungen.

Eigenschaften

Name Beschreibung
Blender

Ruft ab oder legt den benutzerdefinierten SKBlender für die Compositing.

BlendMode

Ruft den Blend-Modus ab oder legt den Blend-Modus fest.

Color

Ruft die Vordergrundfarbe der Farbe der Farbe ab oder legt sie fest.

ColorF

Ruft die Farbe der Farbe als SKColorF (Gleitkomma-RGBA) ab oder legt sie fest.

ColorFilter

Ruft den Farbfilter des Lacks ab oder legt den Farbfilter fest.

Handle

Dient zum Abrufen oder Festlegen des Handles auf das zugrunde liegende systemeigene Objekt.

(Geerbt von SKObject)
IgnorePublicDispose

Ruft einen Wert ab, der angibt, ob der Aufruf der Öffentlichen Dispose() no-opwerden soll.

(Geerbt von SKNativeObject)
ImageFilter

Dient zum Abrufen oder Festlegen des Bildfilters.

IsAntialias

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob antialiasing aktiviert ist.

IsDisposed

Ruft einen Wert ab, der angibt, ob das Objekt bereits verworfen wurde.

(Geerbt von SKNativeObject)
IsDither

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob dithering aktiviert ist.

IsStroke

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob ein Strich oder eine Füllung strich färben soll.

MaskFilter

Ruft den Maskenfilter ab, der beim Zeichnen verwendet werden soll, oder legt diesen fest.

OwnsHandle

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob dieses Objekt sein Handle besitzt und das systemeigene Objekt zerstören soll, wenn es verworfen wird.

(Geerbt von SKNativeObject)
PathEffect

Ruft den Pfadeffekt ab, der beim Zeichnen verwendet werden soll, oder legt diesen fest.

Shader

Ruft den Shader ab, der beim Zeichnen verwendet werden soll, oder legt diesen fest.

StrokeCap

Dient zum Abrufen oder Festlegen eines Werts, der angibt, wie der Anfang und das Ende von Strichlinien und Pfaden behandelt werden.

StrokeJoin

Dient zum Abrufen oder Festlegen des Verknüpfungstyps des Pfads.

StrokeMiter

Dient zum Abrufen oder Festlegen des Miterlimits der Farbe.

StrokeWidth

Ruft die Strichbreite des Zeichens ab oder legt sie fest.

Style

Ruft die Malformatvorlage ab oder legt sie fest.

Methoden

Name Beschreibung
Clone()

Erstellt eine Kopie der aktuellen Farbe.

Dispose()

Gibt alle von diesem SKNativeObjectRessourcen verwendeten Ressourcen frei.

(Geerbt von SKNativeObject)
Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den SKPaint verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

DisposeInternal()

Löst einen Dispose-Wert aus, der den Wert von IgnorePublicDispose.

(Geerbt von SKNativeObject)
DisposeManaged()

Implementiert durch abgeleitete SKObject Typen, um verwaltete Objekte zu zerstören.

(Geerbt von SKObject)
DisposeNative()

Implementiert durch abgeleitete SKObject Typen, um systemeigene Objekte zu zerstören.

DisposeUnownedManaged()

Implementiert durch abgeleitete SKObject Typen zum Verwerfen von verwalteten Objekten, die nicht im Besitz dieser Instanz sind.

(Geerbt von SKObject)
GetFillPath(SKPath, Single)

Erstellt einen neuen Pfad aus dem Ergebnis, dass alle Effekte auf einen Quellpfad angewendet werden.

GetFillPath(SKPath, SKMatrix)

Erstellt einen neuen Pfad aus dem Ergebnis, dass alle Effekte auf einen Quellpfad mit einer Transformationsmatrix angewendet werden.

GetFillPath(SKPath, SKPath, Single)
Veraltet.

Wendet alle Effekte auf einen Quellpfad an, wobei das Ergebnis im Ziel zurückgegeben wird.

GetFillPath(SKPath, SKPath, SKMatrix)
Veraltet.

Wendet alle Effekte auf einen Quellpfad mit einer Transformationsmatrix an und schreibt das Ergebnis auf das Ziel.

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

Wendet alle Effekte auf einen Quellpfad an, wobei das Ergebnis im Ziel zurückgegeben wird.

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

Wendet alle Effekte auf einen Quellpfad mit Culling und Transformation an, und schreibt das Ergebnis an das Ziel.

GetFillPath(SKPath, SKPath, SKRect)
Veraltet.

Wendet alle Effekte auf einen Quellpfad an, wobei das Ergebnis im Ziel zurückgegeben wird.

GetFillPath(SKPath, SKPath)
Veraltet.

Wendet alle Effekte auf einen Quellpfad an, wobei das Ergebnis im Ziel zurückgegeben wird.

GetFillPath(SKPath, SKPathBuilder, Single)

Berechnet die gefüllte Geometrie des Quellpfads im angegebenen Auflösungsmaßstab und schreibt das Ergebnis in den Zielpfad-Generator.

GetFillPath(SKPath, SKPathBuilder, SKMatrix)

Berechnet die gefüllte Geometrie des Quellpfads nach dem Anwenden einer Transformationsmatrix und schreibt das Ergebnis in den Zielpfad-Generator.

GetFillPath(SKPath, SKPathBuilder, SKRect, Single)

Berechnet die gefüllte Geometrie des Quellpfads innerhalb des Ullrechtecks im angegebenen Auflösungsmaßstab und schreibt das Ergebnis in den Zielpfad-Generator.

GetFillPath(SKPath, SKPathBuilder, SKRect, SKMatrix)

Berechnet die gefüllte Geometrie des Quellpfads innerhalb des Ullrechtecks nach dem Anwenden einer Transformationsmatrix und schreibt das Ergebnis in den Zielpfad-Generator.

GetFillPath(SKPath, SKPathBuilder, SKRect)

Berechnet die gefüllte Geometrie des Quellpfads innerhalb des Ullrechtecks und schreibt das Ergebnis in den Zielpfad-Generator.

GetFillPath(SKPath, SKPathBuilder)

Berechnet die gefüllte Geometrie des Quellpfads mithilfe dieses Paint-Stils und schreibt das Ergebnis in den Zielpfad-Generator.

GetFillPath(SKPath, SKRect, Single)

Erstellt einen neuen Pfad aus dem Ergebnis, dass alle Effekte auf einen Quellpfad angewendet werden.

GetFillPath(SKPath, SKRect, SKMatrix)

Erstellt einen neuen Pfad aus dem Ergebnis der Anwendung von Effekten auf einen Quellpfad mit Culling und Transformation.

GetFillPath(SKPath, SKRect)

Erstellt einen neuen Pfad aus dem Ergebnis, dass alle Effekte auf einen Quellpfad angewendet werden.

GetFillPath(SKPath)

Erstellt einen neuen Pfad aus dem Ergebnis, dass alle Effekte auf einen Quellpfad angewendet werden.

Reset()

Setzt alle Farbeigenschaften auf ihre Standardwerte zurück.

SetColor(SKColorF, SKColorSpace)

Legt die Farbe des Paint mithilfe eines Gleitkommafarbwerts im angegebenen Farbraum fest.

Gilt für: