SKPaint Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
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:
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. |