SKShader Klasse

Definition

Shader geben die Quellfarbe(n) für das, was in der SKPaintGezeichneten gezeichnet wird.

public class SKShader : SkiaSharp.SKObject
Vererbung

Beispiele

Beispiel für linearen Farbverlaufs-Shader

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

    canvas.Clear(SKColors.White);

    // create the shader
    var colors = new SKColor[] {
        new SKColor(0, 0, 255),
        new SKColor(0, 255, 0)
    };
    var shader = SKShader.CreateLinearGradient(
        new SKPoint(0, 0),
        new SKPoint(255, 255),
        colors,
        null,
        SKShaderTileMode.Clamp);

    // use the shader
    var paint = new SKPaint {
        Shader = shader
    };
    canvas.DrawPaint(paint);
}

Im obigen Beispiel wird Folgendes erzeugt:

Linearer Farbverlauf

Radialer Farbverlaufs-Shader (Beispiel)

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

    canvas.Clear(SKColors.White);

    // create the shader
    var colors = new SKColor[] {
        new SKColor(0, 0, 255),
        new SKColor(0, 255, 0)
    };
    var shader = SKShader.CreateRadialGradient(
        new SKPoint(128, 128),
        180,
        colors,
        null,
        SKShaderTileMode.Clamp);

    // use the shader
    var paint = new SKPaint {
        Shader = shader
    };
    canvas.DrawPaint(paint);
}

Im obigen Beispiel wird Folgendes erzeugt:

Radialer Farbverlauf radialer Farbverlauf

Beispiel für einen konischen Farbverlaufs-Shader mit zwei Punkten

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

    canvas.Clear(SKColors.White);

    // create the shader
    var colors = new SKColor[] {
        new SKColor(0, 0, 255),
        new SKColor(0, 255, 0)
    };
    var shader = SKShader.CreateTwoPointConicalGradient(
        new SKPoint(128, 128),
        128,
        new SKPoint(128, 16),
        16,
        colors,
        null,
        SKShaderTileMode.Clamp);

    // use the shader
    var paint = new SKPaint {
        Shader = shader
    };
    canvas.DrawPaint(paint);
}

Im obigen Beispiel wird Folgendes erzeugt:

Konischer Farbverlauf mit zwei Punkt(

Beispiel für einen Aufräumen des Farbverlaufsshaders

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

    canvas.Clear(SKColors.White);

    // create the shader
    var colors = new SKColor[] {
        new SKColor(0, 255, 255),
        new SKColor(255, 0, 255),
        new SKColor(255, 255, 0),
        new SKColor(0, 255, 255)
    };
    var shader = SKShader.CreateSweepGradient(
        new SKPoint(128, 128),
        colors,
        null);

    // use the shader
    var paint = new SKPaint {
        Shader = shader
    };
    canvas.DrawPaint(paint);
}

Im obigen Beispiel wird Folgendes erzeugt:

Farbverlauf aufräumen

Fractal Perlin Noise Shader (Beispiel)

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

    canvas.Clear(SKColors.White);

    // create the shader
    var shader = SKShader.CreatePerlinNoiseFractalNoise(0.5f, 0.5f, 4, 0);

    // use the shader
    var paint = new SKPaint {
        Shader = shader
    };
    canvas.DrawPaint(paint);
}

Im obigen Beispiel wird Folgendes erzeugt:

Fraktal-Perlin-Rausch-Fraktal-Perlin-Rauschen

Perlin Noise Turbulence Shader (Beispiel)

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

    canvas.Clear(SKColors.White);

    // create the shader
    var shader = SKShader.CreatePerlinNoiseTurbulence(0.05f, 0.05f, 4, 0);

    // use the shader
    var paint = new SKPaint {
        Shader = shader
    };
    canvas.DrawPaint(paint);
}

Im obigen Beispiel wird Folgendes erzeugt:

Fraktal-Perlin-Rausch-Fraktal-Perlin-Rauschen

Beispiel für den Verfassen-Shader

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

    canvas.Clear(SKColors.White);

    // create the first shader
    var colors = new SKColor[] {
        new SKColor(0, 255, 255),
        new SKColor(255, 0, 255),
        new SKColor(255, 255, 0),
        new SKColor(0, 255, 255)
    };
    var sweep = SKShader.CreateSweepGradient(new SKPoint(128, 128), colors, null);

    // create the second shader
    var turbulence = SKShader.CreatePerlinNoiseTurbulence(0.05f, 0.05f, 4, 0);

    // create the compose shader
    var shader = SKShader.CreateCompose(sweep, turbulence, SKBlendMode.SrcOver);

    // use the compose shader
    var paint = new SKPaint {
        Shader = shader
    };
    canvas.DrawPaint(paint);
}

Im obigen Beispiel wird Folgendes erzeugt:

Shader zum Verfassen

Hinweise

Shader geben die Quellfarben für das Gezeichnete an. Wenn eine Farbe keinen Shader aufweist, wird die Farbe der Farbe verwendet. Wenn die Farbe über einen Shader verfügt, werden stattdessen die Farben des Shaders verwendet, aber sie werden durch das Alpha der Farbe moduliert.

Dies erleichtert das Einmalige Erstellen eines Shaders (z. B. Bitmap-Kacheln oder Farbverlauf) und ändert dann seine Transparenz, ohne den ursprünglichen Shader ändern zu müssen, nur das Alpha der Farbe muss geändert werden.

Shader werden durch Aufrufen einer der statischen "Create"-Methoden erstellt.

Eigenschaften

Name Beschreibung
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)
IsDisposed

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

(Geerbt von SKNativeObject)
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)

Methoden

Name Beschreibung
CreateBitmap(SKBitmap, SKShaderTileMode, SKShaderTileMode, SKMatrix)

Erstellt einen neuen Shader, der mit der angegebenen Bitmap gezeichnet wird.

CreateBitmap(SKBitmap, SKShaderTileMode, SKShaderTileMode)

Erstellt einen neuen Shader, der mit der angegebenen Bitmap gezeichnet wird.

CreateBitmap(SKBitmap)

Erstellt einen neuen Shader, der mit der angegebenen Bitmap gezeichnet wird.

CreateBlend(SKBlender, SKShader, SKShader)

Erstellt einen neuen Shader, der zwei Shader mithilfe eines benutzerdefinierten Blenders kombiniert.

CreateBlend(SKBlendMode, SKShader, SKShader)

Erstellt einen neuen Shader, der zwei Shader mithilfe eines Blendmodus kombiniert.

CreateColor(SKColor)

Erstellt einen neuen Shader, der nur die angegebene Farbe zeichnet.

CreateColor(SKColorF, SKColorSpace)

Erstellt einen neuen Shader, der nur die angegebene Farbe zeichnet.

CreateColorFilter(SKShader, SKColorFilter)

Erstellt einen neuen Shader, der die gleichen Farben erzeugt wie das Aufrufen dieses Shaders und anschließendes Anwenden des Farbfilters.

CreateCompose(SKShader, SKShader, SKBlendMode)

Erstellen Sie einen neuen Erstell-Shader, der zwei Shader mit einem Blendmodus kombiniert.

CreateCompose(SKShader, SKShader)

Erstellen Sie einen neuen Erstell-Shader, der zwei Shader über den SrcOver Blend-Modus kombiniert.

CreateEmpty()

Erstellt einen neuen "leeren" Shader, der nichts zeichnet.

CreateImage(SKImage, SKShaderTileMode, SKShaderTileMode, SKMatrix)

Erstellt einen neuen Shader, der ein Bild mit angegebenen Kachelmodi und Transformationsmatrix zeichnet.

CreateImage(SKImage, SKShaderTileMode, SKShaderTileMode, SKSamplingOptions, SKMatrix)

Erstellt einen neuen Shader, der ein Bild mit angegebenen Kachelmodi, Samplingoptionen und Transformationsmatrix zeichnet.

CreateImage(SKImage, SKShaderTileMode, SKShaderTileMode, SKSamplingOptions)

Erstellt einen neuen Shader, der ein Bild mit angegebenen Kachelmodi und Samplingoptionen zeichnet.

CreateImage(SKImage, SKShaderTileMode, SKShaderTileMode)

Erstellt einen neuen Shader, der ein Bild mit angegebenen Kachelmodi zeichnet.

CreateImage(SKImage)

Erstellt einen neuen Shader, der ein Bild zeichnet.

CreateLinearGradient(SKPoint, SKPoint, SKColor[], Single[], SKShaderTileMode, SKMatrix)

Erstellt einen Shader, der einen linearen Farbverlauf zwischen den beiden angegebenen Punkten generiert.

CreateLinearGradient(SKPoint, SKPoint, SKColor[], Single[], SKShaderTileMode)

Erstellt einen Shader, der einen linearen Farbverlauf zwischen den beiden angegebenen Punkten generiert.

CreateLinearGradient(SKPoint, SKPoint, SKColor[], SKShaderTileMode)

Erstellt einen Shader, der einen linearen Farbverlauf zwischen den beiden angegebenen Punkten generiert.

CreateLinearGradient(SKPoint, SKPoint, SKColorF[], SKColorSpace, Single[], SKShaderTileMode, SKMatrix)

Erstellt einen Shader, der einen linearen Farbverlauf zwischen den beiden angegebenen Punkten in einem angegebenen Farbraum generiert.

CreateLinearGradient(SKPoint, SKPoint, SKColorF[], SKColorSpace, Single[], SKShaderTileMode)

Erstellt einen Shader, der einen linearen Farbverlauf zwischen den beiden angegebenen Punkten in einem angegebenen Farbraum generiert.

CreateLinearGradient(SKPoint, SKPoint, SKColorF[], SKColorSpace, SKShaderTileMode)

Erstellt einen Shader, der einen linearen Farbverlauf zwischen den beiden angegebenen Punkten in einem angegebenen Farbraum generiert.

CreateLocalMatrix(SKShader, SKMatrix)

Erstellt einen Shader, der zuerst die angegebene Matrix anwendet und dann den Shader anwendet.

CreatePerlinNoiseFractalNoise(Single, Single, Int32, Single, SKPointI)

Erstellt einen neuen Shader, der perlin fraktales Rauschen zeichnet.

CreatePerlinNoiseFractalNoise(Single, Single, Int32, Single, SKSizeI)

Erstellt einen neuen Shader, der fraktales Perlin-Rauschen mit einer angegebenen Kachelgröße erzeugt.

CreatePerlinNoiseFractalNoise(Single, Single, Int32, Single)

Erstellt einen neuen Shader, der perlin fraktales Rauschen zeichnet.

CreatePerlinNoiseTurbulence(Single, Single, Int32, Single, SKPointI)

Erstellt einen neuen Shader, der Perlin-Turbulenzengeräusche zeichnet.

CreatePerlinNoiseTurbulence(Single, Single, Int32, Single, SKSizeI)

Erstellt einen neuen Shader, der Perlin-Rauschturbulenzen mit einer angegebenen Kachelgröße erzeugt.

CreatePerlinNoiseTurbulence(Single, Single, Int32, Single)

Erstellt einen neuen Shader, der Perlin-Turbulenzengeräusche zeichnet.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode, SKFilterMode, SKMatrix, SKRect)

Erstellt einen neuen Shader, der mit der angegebenen Grafik, dem Filtermodus, der Transformationsmatrix und dem Kachelrechteck gezeichnet wird.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode, SKFilterMode, SKRect)

Erstellt einen neuen Shader, der mit dem angegebenen Bild, dem Filtermodus und dem Kachelrechteck gezeichnet wird.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode, SKFilterMode)

Erstellt einen neuen Shader, der mit dem angegebenen Bild- und Filtermodus gezeichnet wird.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode, SKMatrix, SKRect)

Erstellt einen neuen Shader, der mit dem angegebenen Bild gezeichnet wird.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode, SKRect)

Erstellt einen neuen Shader, der mit dem angegebenen Bild gezeichnet wird.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode)

Erstellt einen neuen Shader, der mit dem angegebenen Bild gezeichnet wird.

CreatePicture(SKPicture)

Erstellt einen neuen Shader, der mit dem angegebenen Bild gezeichnet wird.

CreateRadialGradient(SKPoint, Single, SKColor[], Single[], SKShaderTileMode, SKMatrix)

Erstellt einen Shader, der einen radialen Farbverlauf aufgrund der Mitte und des Radius generiert.

CreateRadialGradient(SKPoint, Single, SKColor[], Single[], SKShaderTileMode)

Erstellt einen Shader, der einen radialen Farbverlauf aufgrund der Mitte und des Radius generiert.

CreateRadialGradient(SKPoint, Single, SKColor[], SKShaderTileMode)

Erstellt einen Shader, der einen radialen Farbverlauf aufgrund der Mitte und des Radius generiert.

CreateRadialGradient(SKPoint, Single, SKColorF[], SKColorSpace, Single[], SKShaderTileMode, SKMatrix)

Erstellt einen Shader, der einen Radialfarbverlauf in einem angegebenen Farbraum generiert.

CreateRadialGradient(SKPoint, Single, SKColorF[], SKColorSpace, Single[], SKShaderTileMode)

Erstellt einen Shader, der einen Radialfarbverlauf in einem angegebenen Farbraum generiert.

CreateRadialGradient(SKPoint, Single, SKColorF[], SKColorSpace, SKShaderTileMode)

Erstellt einen Shader, der einen Radialfarbverlauf in einem angegebenen Farbraum generiert.

CreateSweepGradient(SKPoint, SKColor[], Single[], SKMatrix)

Erstellt einen Shader, der einen Aufräumverlauf über eine Mitte generiert.

CreateSweepGradient(SKPoint, SKColor[], Single[], SKShaderTileMode, Single, Single, SKMatrix)

Erstellt einen Shader, der einen Aufräumverlauf über eine Mitte generiert.

CreateSweepGradient(SKPoint, SKColor[], Single[], SKShaderTileMode, Single, Single)

Erstellt einen Shader, der einen Aufräumverlauf über eine Mitte generiert.

CreateSweepGradient(SKPoint, SKColor[], Single[])

Erstellt einen Shader, der einen Aufräumverlauf über eine Mitte generiert.

CreateSweepGradient(SKPoint, SKColor[], SKShaderTileMode, Single, Single)

Erstellt einen Shader, der einen Aufräumverlauf über eine Mitte generiert.

CreateSweepGradient(SKPoint, SKColor[])

Erstellt einen Shader, der einen Aufräumverlauf über eine Mitte generiert.

CreateSweepGradient(SKPoint, SKColorF[], SKColorSpace, Single[], SKMatrix)

Erstellt einen Shader, der einen Aufräumverlauf in einem angegebenen Farbraum generiert.

CreateSweepGradient(SKPoint, SKColorF[], SKColorSpace, Single[], SKShaderTileMode, Single, Single, SKMatrix)

Erstellt einen Shader, der einen Aufräumverlauf mit Winkelbereich in einem angegebenen Farbbereich generiert.

CreateSweepGradient(SKPoint, SKColorF[], SKColorSpace, Single[], SKShaderTileMode, Single, Single)

Erstellt einen Shader, der einen Aufräumverlauf mit Winkelbereich in einem angegebenen Farbbereich generiert.

CreateSweepGradient(SKPoint, SKColorF[], SKColorSpace, Single[])

Erstellt einen Shader, der einen Aufräumverlauf in einem angegebenen Farbraum generiert.

CreateSweepGradient(SKPoint, SKColorF[], SKColorSpace, SKShaderTileMode, Single, Single)

Erstellt einen Shader, der einen Aufräumverlauf mit Winkelbereich in einem angegebenen Farbbereich generiert.

CreateSweepGradient(SKPoint, SKColorF[], SKColorSpace)

Erstellt einen Shader, der einen Aufräumverlauf in einem angegebenen Farbraum generiert.

CreateTwoPointConicalGradient(SKPoint, Single, SKPoint, Single, SKColor[], Single[], SKShaderTileMode, SKMatrix)

Erstellt einen Shader, der einen konischen Farbverlauf mit zwei Kreisen generiert.

CreateTwoPointConicalGradient(SKPoint, Single, SKPoint, Single, SKColor[], Single[], SKShaderTileMode)

Erstellt einen Shader, der einen konischen Farbverlauf mit zwei Kreisen generiert.

CreateTwoPointConicalGradient(SKPoint, Single, SKPoint, Single, SKColor[], SKShaderTileMode)

Erstellt einen Shader, der einen konischen Farbverlauf mit zwei Kreisen generiert.

CreateTwoPointConicalGradient(SKPoint, Single, SKPoint, Single, SKColorF[], SKColorSpace, Single[], SKShaderTileMode, SKMatrix)

Erstellt einen Shader, der einen konischen Farbverlauf in einem angegebenen Farbraum generiert.

CreateTwoPointConicalGradient(SKPoint, Single, SKPoint, Single, SKColorF[], SKColorSpace, Single[], SKShaderTileMode)

Erstellt einen Shader, der einen konischen Farbverlauf in einem angegebenen Farbraum generiert.

CreateTwoPointConicalGradient(SKPoint, Single, SKPoint, Single, SKColorF[], SKColorSpace, SKShaderTileMode)

Erstellt einen Shader, der einen konischen Farbverlauf in einem angegebenen Farbraum generiert.

Dispose()

Gibt alle von diesem SKNativeObjectRessourcen verwendeten Ressourcen frei.

(Geerbt von SKNativeObject)
Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den SKShader 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.

(Geerbt von SKObject)
DisposeUnownedManaged()

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

(Geerbt von SKObject)
WithColorFilter(SKColorFilter)

Gibt einen neuen Shader zurück, der dieselben Farben wie dieser Shader erzeugt, aber mit dem angegebenen Farbfilter angewendet wird.

WithLocalMatrix(SKMatrix)

Gibt einen neuen Shader zurück, der dieselben Farben wie dieser Shader erzeugt, aber mit der angegebenen Transformationsmatrix angewendet wird.

Gilt für: