SKPaint Classe

Definição

Contém as informações de estilo e cor sobre como desenhar geometrias, texto e bitmaps.

public class SKPaint : SkiaSharp.SKObject
Herança

Exemplos

Exemplo Simples

O exemplo a seguir mostra três tintas diferentes, cada uma configurada para desenhar em um estilo diferente. O chamador pode intermixá-las livremente, usando-as como estão ou modificando-as conforme o desenho prossegue.

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

O exemplo acima produz o seguinte:

SKPaint e Texto

Exemplo de efeitos

O exemplo a seguir desenha usando um gradiente em vez de uma única cor. Para fazer isso, isso SKShader é atribuído à tinta. Qualquer coisa desenhada com essa tinta será desenhada com o gradiente especificado na chamada para SKShader.CreateLinearGradient.

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

O exemplo acima produz o seguinte:

SKPaint e SKShader

Comentários

Sempre que você desenhar algo no SkiaSharp e quiser especificar qual é a cor ou como ele se mistura com a tela de fundo ou em qual estilo ou fonte desenhá-lo, especifique esses atributos em uma pintura.

Ao contrário SKCanvasde , um objeto de pintura não mantém uma pilha interna de estado. Ou seja, não há salvamento/restauração em uma tinta. No entanto, os objetos de pintura são relativamente leves, portanto, o cliente pode criar e manter qualquer número de objetos de pintura, cada um configurado para um uso específico.

Considerar todos esses atributos de cor e estilísticos fora do estado da tela e em (vários) objetos de pintura permite que as operações de salvamento e restauração sejam muito mais eficientes SKCanvas , pois tudo o que eles têm que fazer é manter a pilha de configurações de matriz e clipe.

Efeitos

Além de atributos simples, como cor, traços e valores de texto, as tintas dão suporte a efeitos. Essas são subclasses de diferentes aspectos do pipeline de desenho, que, quando referenciados por uma pintura, são chamados para substituir alguma parte do pipeline de desenho.

Há cinco tipos de efeitos que podem ser atribuídos a um objeto de pintura:

Effect Detalhes
Modo blend Modos de mesclagem e modos de transferência Duff-Porter.
Filtro de cores Modificação das cores de origem antes de aplicar o modo de mistura.
Filtro de Máscara Modificação da máscara alfa antes de ser colorada e desenhada (por exemplo, desfoque).
Efeito de caminho Modificação da geometria (caminho) antes da máscara alfa ser gerada (por exemplo, arrojada).
Shader Gradientes e padrões de bitmap.

Construtores

Nome Description
SKPaint()

Inicializa uma nova instância da SKPaint classe com as configurações padrão.

Propriedades

Nome Description
Blender

Obtém ou define o personalizado SKBlender para composição.

BlendMode

Obtém ou define o modo de mesclagem.

Color

Obtém ou define a cor do primeiro plano da tinta.

ColorF

Obtém ou define a cor da tinta como um SKColorF (RGBA de ponto flutuante).

ColorFilter

Obtém ou define o filtro de cores da tinta.

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)
ImageFilter

Obtém ou define o filtro de imagem.

IsAntialias

Obtém ou define um valor que indica se o anti-aliasing está habilitado.

IsDisposed

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

(Herdado de SKNativeObject)
IsDither

Obtém ou define um valor que indica se o dithering está habilitado.

IsStroke

Obtém ou define um valor que indica se um traço ou preenchimento deve ser pintado.

MaskFilter

Obtém ou define o filtro de máscara a ser usado ao pintar.

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)
PathEffect

Obtém ou define o efeito de caminho a ser usado ao pintar.

Shader

Obtém ou define o sombreador a ser usado ao pintar.

StrokeCap

Obtém ou define um valor que indica como o início e o fim de linhas e caminhos traçados são tratados.

StrokeJoin

Obtém ou define o tipo de junção do caminho.

StrokeMiter

Obtém ou define o limite do mitador da tinta.

StrokeWidth

Obtém ou define a largura do traço da tinta.

Style

Obtém ou define o estilo de pintura.

Métodos

Nome Description
Clone()

Cria uma cópia da tinta atual.

Dispose()

Libera todos os recursos usados por isso SKNativeObject.

(Herdado de SKNativeObject)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo SKPaint 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.

DisposeUnownedManaged()

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

(Herdado de SKObject)
GetFillPath(SKPath, Single)

Cria um novo caminho a partir do resultado da aplicação de todos os efeitos a um caminho de origem.

GetFillPath(SKPath, SKMatrix)

Cria um novo caminho a partir do resultado da aplicação de todos os efeitos a um caminho de origem com uma matriz de transformação.

GetFillPath(SKPath, SKPath, Single)
Obsoleto.

Aplica todo e qualquer efeito a um caminho de origem, retornando o resultado no destino.

GetFillPath(SKPath, SKPath, SKMatrix)
Obsoleto.

Aplica todo e qualquer efeito a um caminho de origem com uma matriz de transformação, gravando o resultado no destino.

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

Aplica todo e qualquer efeito a um caminho de origem, retornando o resultado no destino.

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

Aplica todo e qualquer efeito a um caminho de origem com abate e transformação, gravando o resultado no destino.

GetFillPath(SKPath, SKPath, SKRect)
Obsoleto.

Aplica todo e qualquer efeito a um caminho de origem, retornando o resultado no destino.

GetFillPath(SKPath, SKPath)
Obsoleto.

Aplica todo e qualquer efeito a um caminho de origem, retornando o resultado no destino.

GetFillPath(SKPath, SKPathBuilder, Single)

Calcula a geometria preenchida do caminho de origem na escala de resolução especificada e grava o resultado no construtor de caminhos de destino.

GetFillPath(SKPath, SKPathBuilder, SKMatrix)

Calcula a geometria preenchida do caminho de origem depois de aplicar uma matriz de transformação e grava o resultado no construtor de caminhos de destino.

GetFillPath(SKPath, SKPathBuilder, SKRect, Single)

Calcula a geometria preenchida do caminho de origem dentro do retângulo de cull na escala de resolução especificada e grava o resultado no construtor de caminhos de destino.

GetFillPath(SKPath, SKPathBuilder, SKRect, SKMatrix)

Calcula a geometria preenchida do caminho de origem dentro do retângulo de cull depois de aplicar uma matriz de transformação e grava o resultado no construtor de caminhos de destino.

GetFillPath(SKPath, SKPathBuilder, SKRect)

Calcula a geometria preenchida do caminho de origem dentro do retângulo de cull e grava o resultado no construtor de caminhos de destino.

GetFillPath(SKPath, SKPathBuilder)

Calcula a geometria preenchida do caminho de origem usando o estilo dessa pintura e grava o resultado no construtor de caminhos de destino.

GetFillPath(SKPath, SKRect, Single)

Cria um novo caminho a partir do resultado da aplicação de todos os efeitos a um caminho de origem.

GetFillPath(SKPath, SKRect, SKMatrix)

Cria um novo caminho a partir do resultado da aplicação de efeitos a um caminho de origem com abate e transformação.

GetFillPath(SKPath, SKRect)

Cria um novo caminho a partir do resultado da aplicação de todos os efeitos a um caminho de origem.

GetFillPath(SKPath)

Cria um novo caminho a partir do resultado da aplicação de todos os efeitos a um caminho de origem.

Reset()

Redefine todas as propriedades de pintura para seus padrões.

SetColor(SKColorF, SKColorSpace)

Define a cor da tinta usando um valor de cor de ponto flutuante no espaço de cor especificado.

Aplica-se a