SKShader Classe

Definizione

Gli shader specificano i colori di origine per ciò che viene disegnato nell'oggetto SKPaint.

public class SKShader : SkiaSharp.SKObject
Ereditarietà

Esempio

Esempio di shader sfumatura lineare

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

L'esempio precedente produce quanto segue:

Sfumatura lineare sfumatura lineare sfumatura lineare

Esempio di shader sfumatura radiale

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

L'esempio precedente produce quanto segue:

Sfumatura radiale sfumatura radiale

Esempio di shader conico conico a due punti

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

L'esempio precedente produce quanto segue:

Sfumatura conica a

Esempio di shader sfumatura sweep

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

L'esempio precedente produce quanto segue:

Sfumatura spazza sfumatura spazza sfumatura

Esempio di disturbo frattale perlin

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

L'esempio precedente produce quanto segue:

Rumore frattale perlin

Esempio di perlin Noise Turbulence 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 shader = SKShader.CreatePerlinNoiseTurbulence(0.05f, 0.05f, 4, 0);

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

L'esempio precedente produce quanto segue:

Rumore frattale perlin

Esempio di compose 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);
}

L'esempio precedente produce quanto segue:

Compose Shader Compose

Commenti

Gli shader specificano i colori di origine per ciò che viene disegnato. Se una vernice non ha shader, viene utilizzato il colore della vernice. Se la vernice ha uno shader, i colori dello shader vengono invece utilizzati, ma sono modulati dall'alfa della vernice.

In questo modo è facile creare uno shader una sola volta (ad esempio, l'associazione bitmap o la sfumatura) e quindi modificarne la trasparenza senza dover modificare lo shader originale, è necessario modificare solo l'alfa della vernice.

Gli shader vengono creati chiamando uno dei metodi statici "Create".

Proprietà

Nome Descrizione
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)
IsDisposed

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

(Ereditato da SKNativeObject)
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)

Metodi

Nome Descrizione
CreateBitmap(SKBitmap, SKShaderTileMode, SKShaderTileMode, SKMatrix)

Crea un nuovo shader che disegnare con la bitmap specificata.

CreateBitmap(SKBitmap, SKShaderTileMode, SKShaderTileMode)

Crea un nuovo shader che disegnare con la bitmap specificata.

CreateBitmap(SKBitmap)

Crea un nuovo shader che disegnare con la bitmap specificata.

CreateBlend(SKBlender, SKShader, SKShader)

Crea un nuovo shader che combina due shader usando un frullatore personalizzato.

CreateBlend(SKBlendMode, SKShader, SKShader)

Crea un nuovo shader che combina due shader usando una modalità blend.

CreateColor(SKColor)

Crea un nuovo shader che disegna solo il colore specificato.

CreateColor(SKColorF, SKColorSpace)

Crea un nuovo shader che disegna solo il colore specificato.

CreateColorFilter(SKShader, SKColorFilter)

Crea un nuovo shader che produce gli stessi colori della chiamata di questo shader e quindi l'applicazione del filtro colori.

CreateCompose(SKShader, SKShader, SKBlendMode)

Creare un nuovo shader di composizione, che combina due shader in base a una modalità blend.

CreateCompose(SKShader, SKShader)

Creare un nuovo shader di composizione, che combina due shader in base alla SrcOver modalità blend.

CreateEmpty()

Crea un nuovo shader "vuoto" che non disegnare nulla.

CreateImage(SKImage, SKShaderTileMode, SKShaderTileMode, SKMatrix)

Crea un nuovo shader che disegna un'immagine con le modalità di riquadro e la matrice di trasformazione specificate.

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

Crea un nuovo shader che disegna un'immagine con modalità di riquadro, opzioni di campionamento e matrice di trasformazione specificate.

CreateImage(SKImage, SKShaderTileMode, SKShaderTileMode, SKSamplingOptions)

Crea un nuovo shader che disegna un'immagine con le modalità di riquadro e le opzioni di campionamento specificate.

CreateImage(SKImage, SKShaderTileMode, SKShaderTileMode)

Crea un nuovo shader che disegna un'immagine con le modalità di riquadro specificate.

CreateImage(SKImage)

Crea un nuovo shader che disegna un'immagine.

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

Crea uno shader che genera una sfumatura lineare tra i due punti specificati.

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

Crea uno shader che genera una sfumatura lineare tra i due punti specificati.

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

Crea uno shader che genera una sfumatura lineare tra i due punti specificati.

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

Crea uno shader che genera una sfumatura lineare tra i due punti specificati in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura lineare tra i due punti specificati in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura lineare tra i due punti specificati in uno spazio colore specificato.

CreateLocalMatrix(SKShader, SKMatrix)

Crea uno shader che applica prima la matrice specificata e quindi applica lo shader.

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

Crea un nuovo shader che disegna il rumore frattale perlin.

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

Crea un nuovo shader che produce rumore frattale Perlin con una dimensione di riquadro specificata.

CreatePerlinNoiseFractalNoise(Single, Single, Int32, Single)

Crea un nuovo shader che disegna il rumore frattale perlin.

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

Crea un nuovo shader che disegna il rumore della turbolenza perlin.

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

Crea un nuovo shader che produce turbolenza del rumore Perlin con una dimensione del riquadro specificata.

CreatePerlinNoiseTurbulence(Single, Single, Int32, Single)

Crea un nuovo shader che disegna il rumore della turbolenza perlin.

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

Crea un nuovo shader che disegnare con l'immagine, la modalità filtro, la matrice di trasformazione e il rettangolo riquadro specificati.

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

Crea un nuovo shader che disegnare con l'immagine, la modalità filtro e il rettangolo riquadro specificati.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode, SKFilterMode)

Crea un nuovo shader che disegnare con l'immagine e la modalità filtro specificati.

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

Crea un nuovo shader che disegnare con l'immagine specificata.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode, SKRect)

Crea un nuovo shader che disegnare con l'immagine specificata.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode)

Crea un nuovo shader che disegnare con l'immagine specificata.

CreatePicture(SKPicture)

Crea un nuovo shader che disegnare con l'immagine specificata.

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

Crea uno shader che genera una sfumatura radiale in base al centro e al raggio.

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

Crea uno shader che genera una sfumatura radiale in base al centro e al raggio.

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

Crea uno shader che genera una sfumatura radiale in base al centro e al raggio.

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

Crea uno shader che genera una sfumatura radiale in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura radiale in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura radiale in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura di sweep in base a un centro.

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

Crea uno shader che genera una sfumatura di sweep in base a un centro.

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

Crea uno shader che genera una sfumatura di sweep in base a un centro.

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

Crea uno shader che genera una sfumatura di sweep in base a un centro.

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

Crea uno shader che genera una sfumatura di sweep in base a un centro.

CreateSweepGradient(SKPoint, SKColor[])

Crea uno shader che genera una sfumatura di sweep in base a un centro.

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

Crea uno shader che genera una sfumatura di sweep in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura sweep con intervallo angolare in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura sweep con intervallo angolare in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura di sweep in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura sweep con intervallo angolare in uno spazio colore specificato.

CreateSweepGradient(SKPoint, SKColorF[], SKColorSpace)

Crea uno shader che genera una sfumatura di sweep in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura conica in due cerchi.

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

Crea uno shader che genera una sfumatura conica in due cerchi.

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

Crea uno shader che genera una sfumatura conica in base a due cerchi.

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

Crea uno shader che genera una sfumatura conica in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura conica in uno spazio colore specificato.

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

Crea uno shader che genera una sfumatura conica in uno spazio colore specificato.

Dispose()

Rilascia tutte le risorse usate da questo SKNativeObjectoggetto .

(Ereditato da SKNativeObject)
Dispose(Boolean)

Rilascia le risorse non gestite usate da SKShader 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.

(Ereditato da SKObject)
DisposeUnownedManaged()

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

(Ereditato da SKObject)
WithColorFilter(SKColorFilter)

Restituisce un nuovo shader che produce gli stessi colori di questo shader, ma con il filtro colori specificato applicato.

WithLocalMatrix(SKMatrix)

Restituisce un nuovo shader che produce gli stessi colori di questo shader, ma con la matrice di trasformazione specificata applicata.

Si applica a