SKShader Classe

Definição

Sombreadores especificam as cores de origem para o que está sendo desenhado no SKPaint.

public class SKShader : SkiaSharp.SKObject
Herança

Exemplos

Exemplo de sombreador de gradiente linear

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

O exemplo acima produz o seguinte:

Gradiente

Exemplo de sombreador de gradiente radial

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

O exemplo acima produz o seguinte:

Gradiente

Exemplo de sombreador de gradiente conical de dois pontos

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

O exemplo acima produz o seguinte:

Gradiente conical

Exemplo de sombreador de gradiente de varredura

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

O exemplo acima produz o seguinte:

Gradiente de varredura de varredura de varredura

Exemplo de sombreador de ruído perlin fractal

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

O exemplo acima produz o seguinte:

Fractal Perlin NoiseRuído

Exemplo de sombreador de turbulência de ruído 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.CreatePerlinNoiseTurbulence(0.05f, 0.05f, 4, 0);

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

O exemplo acima produz o seguinte:

Fractal Perlin NoiseRuído

Exemplo de sombreador de composição

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

O exemplo acima produz o seguinte:

Sombreador de composição de sombreador de

Comentários

Sombreadores especificam as cores de origem para o que está sendo desenhado. Se uma tinta não tiver sombreador, a cor da tinta será usada. Se a tinta tiver um sombreador, as cores do sombreador serão usadas, mas serão moduladas pelo alfa da tinta.

Isso facilita a criação de um sombreador uma vez (por exemplo, bloco de bitmap ou gradiente) e, em seguida, alterar sua transparência sem precisar modificar o sombreador original, apenas o alfa da tinta precisa ser modificado.

Sombreadores são criados chamando um dos métodos estáticos "Criar".

Propriedades

Nome Description
Handle

Obtém ou define o identificador para o objeto nativo subjacente.

(Herdado de SKObject)
IgnorePublicDispose

Obtém um valor que indica se a chamada ao público Dispose() deve ser no-op.

(Herdado de SKNativeObject)
IsDisposed

Obtém um valor que indica se o objeto já foi descartado.

(Herdado de SKNativeObject)
OwnsHandle

Obtém ou define um valor que indica se esse objeto possui seu identificador e deve destruir o objeto nativo quando ele é descartado.

(Herdado de SKNativeObject)

Métodos

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

Cria um novo sombreador que será desenhado com o bitmap especificado.

CreateBitmap(SKBitmap, SKShaderTileMode, SKShaderTileMode)

Cria um novo sombreador que será desenhado com o bitmap especificado.

CreateBitmap(SKBitmap)

Cria um novo sombreador que será desenhado com o bitmap especificado.

CreateBlend(SKBlender, SKShader, SKShader)

Cria um novo sombreador que combina dois sombreadores usando um liquidificador personalizado.

CreateBlend(SKBlendMode, SKShader, SKShader)

Cria um novo sombreador que combina dois sombreadores usando um modo de mistura.

CreateColor(SKColor)

Cria um novo sombreador que apenas desenha a cor especificada.

CreateColor(SKColorF, SKColorSpace)

Cria um novo sombreador que apenas desenha a cor especificada.

CreateColorFilter(SKShader, SKColorFilter)

Cria um novo sombreador que produz as mesmas cores que invocar esse sombreador e, em seguida, aplicar o filtro de cor.

CreateCompose(SKShader, SKShader, SKBlendMode)

Crie um novo sombreador de composição, que combina dois sombreadores por um modo de mistura.

CreateCompose(SKShader, SKShader)

Crie um novo sombreador de composição, que combina dois sombreadores pelo SrcOver modo de mistura.

CreateEmpty()

Cria um novo sombreador "vazio" que não desenhará nada.

CreateImage(SKImage, SKShaderTileMode, SKShaderTileMode, SKMatrix)

Cria um novo sombreador que desenha uma imagem com modos de bloco e matriz de transformação especificados.

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

Cria um novo sombreador que desenha uma imagem com modos de bloco, opções de amostragem e matriz de transformação especificados.

CreateImage(SKImage, SKShaderTileMode, SKShaderTileMode, SKSamplingOptions)

Cria um novo sombreador que desenha uma imagem com modos de bloco e opções de amostragem especificados.

CreateImage(SKImage, SKShaderTileMode, SKShaderTileMode)

Cria um novo sombreador que desenha uma imagem com modos de bloco especificados.

CreateImage(SKImage)

Cria um novo sombreador que desenha uma imagem.

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

Cria um sombreador que gera um gradiente linear entre os dois pontos especificados.

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

Cria um sombreador que gera um gradiente linear entre os dois pontos especificados.

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

Cria um sombreador que gera um gradiente linear entre os dois pontos especificados.

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

Cria um sombreador que gera um gradiente linear entre os dois pontos especificados em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente linear entre os dois pontos especificados em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente linear entre os dois pontos especificados em um espaço de cores especificado.

CreateLocalMatrix(SKShader, SKMatrix)

Cria um sombreador que primeiro aplica a matriz especificada e, em seguida, aplica o sombreador.

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

Cria um novo sombreador que desenha o ruído fractal perlin.

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

Cria um novo sombreador que produz ruído perlin fractal com um tamanho de bloco especificado.

CreatePerlinNoiseFractalNoise(Single, Single, Int32, Single)

Cria um novo sombreador que desenha o ruído fractal de Perlin.

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

Cria um novo sombreador que desenha ruído de turbulência de Perlin.

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

Cria um novo sombreador que produz turbulência de ruído Perlin com um tamanho de bloco especificado.

CreatePerlinNoiseTurbulence(Single, Single, Int32, Single)

Cria um novo sombreador que desenha ruído de turbulência de Perlin.

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

Cria um novo sombreador que será desenhado com a imagem, o modo de filtro, a matriz de transformação e o retângulo de bloco especificados.

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

Cria um novo sombreador que será desenhado com a imagem, o modo de filtro e o retângulo de bloco especificados.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode, SKFilterMode)

Cria um novo sombreador que será desenhado com a imagem e o modo de filtro especificados.

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

Cria um novo sombreador que será desenhado com a imagem especificada.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode, SKRect)

Cria um novo sombreador que será desenhado com a imagem especificada.

CreatePicture(SKPicture, SKShaderTileMode, SKShaderTileMode)

Cria um novo sombreador que será desenhado com a imagem especificada.

CreatePicture(SKPicture)

Cria um novo sombreador que será desenhado com a imagem especificada.

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

Cria um sombreador que gera um gradiente radial dado o centro e o raio.

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

Cria um sombreador que gera um gradiente radial dado o centro e o raio.

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

Cria um sombreador que gera um gradiente radial dado o centro e o raio.

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

Cria um sombreador que gera um gradiente radial em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente radial em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente radial em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente de varredura dado um centro.

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

Cria um sombreador que gera um gradiente de varredura dado um centro.

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

Cria um sombreador que gera um gradiente de varredura dado um centro.

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

Cria um sombreador que gera um gradiente de varredura dado um centro.

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

Cria um sombreador que gera um gradiente de varredura dado um centro.

CreateSweepGradient(SKPoint, SKColor[])

Cria um sombreador que gera um gradiente de varredura dado um centro.

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

Cria um sombreador que gera um gradiente de varredura em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente de varredura com intervalo angular em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente de varredura com intervalo angular em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente de varredura em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente de varredura com intervalo angular em um espaço de cores especificado.

CreateSweepGradient(SKPoint, SKColorF[], SKColorSpace)

Cria um sombreador que gera um gradiente de varredura em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente cônico dado dois círculos.

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

Cria um sombreador que gera um gradiente cônico dado dois círculos.

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

Cria um sombreador que gera um gradiente cônico dado dois círculos.

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

Cria um sombreador que gera um gradiente cônico em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente cônico em um espaço de cores especificado.

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

Cria um sombreador que gera um gradiente cônico em um espaço de cores especificado.

Dispose()

Libera todos os recursos usados por isso SKNativeObject.

(Herdado de SKNativeObject)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo SKShader e, opcionalmente, libera os recursos gerenciados.

DisposeInternal()

Dispara um descarte, ignorando o valor de IgnorePublicDispose.

(Herdado de SKNativeObject)
DisposeManaged()

Implementado por tipos derivados SKObject para destruir quaisquer objetos gerenciados.

(Herdado de SKObject)
DisposeNative()

Implementado por tipos derivados SKObject para destruir objetos nativos.

(Herdado de SKObject)
DisposeUnownedManaged()

Implementado por tipos derivados SKObject para descartar objetos gerenciados que não pertencem a essa instância.

(Herdado de SKObject)
WithColorFilter(SKColorFilter)

Retorna um novo sombreador que produz as mesmas cores desse sombreador, mas com o filtro de cores especificado aplicado.

WithLocalMatrix(SKMatrix)

Retorna um novo sombreador que produz as mesmas cores desse sombreador, mas com a matriz de transformação especificada aplicada.

Aplica-se a