SKPaint Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Contiene la información de estilo y color sobre cómo dibujar geometrías, texto y mapas de bits.
public class SKPaint : SkiaSharp.SKObject
- Herencia
Ejemplos
Ejemplo sencillo
En el ejemplo siguiente se muestran tres pinturas diferentes, cada una configurada para dibujar en un estilo diferente. El autor de la llamada puede mezclar estas pinturas libremente, ya sea usándolas tal como está o modificandolas a medida que avanza el dibujo.
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);
}
El ejemplo anterior genera lo siguiente:
Ejemplo de efectos
En el ejemplo siguiente se dibuja mediante un degradado en lugar de un solo color. Para ello, se asigna un SKShader elemento a la pintura. Cualquier elemento dibujado con esa pintura se dibujará con el degradado especificado en la llamada a 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);
}
El ejemplo anterior genera lo siguiente:
Comentarios
Cada vez que dibuje algo en SkiaSharp, y quiera especificar qué color es, o cómo se combina con el fondo, o qué estilo o fuente para dibujarlo, se especifican esos atributos en una pintura.
A diferencia de SKCanvas, un objeto de pintura no mantiene una pila interna de estado. Es decir, no hay ningún guardado o restauración en una pintura. Sin embargo, los objetos de pintura son relativamente ligeros, por lo que el cliente puede crear y mantener cualquier número de objetos de pintura, cada uno configurado para un uso determinado.
Factorizar todos estos atributos de color y estilístico fuera del estado del lienzo, y en (varios) objetos de pintura, permite que las operaciones de guardado y restauración en SKCanvas sean mucho más eficaces, ya que todo lo que tienen que hacer es mantener la pila de la matriz y la configuración del clip.
Efectos
Más allá de atributos simples, como colores, trazos y valores de texto, las pinturas admiten efectos. Se trata de subclases de diferentes aspectos de la canalización de dibujo, que cuando se hace referencia a una pintura, se llama para invalidar parte de la canalización de dibujo.
Hay cinco tipos de efectos que se pueden asignar a un objeto de pintura:
| Effect | Detalles |
|---|---|
| Modo de fusión | Modos de combinación y modos de transferencia Duff-Porter. |
| Filtro de color | Modificación de los colores de origen antes de aplicar el modo de mezcla. |
| Filtro de máscara | Modificación de la máscara alfa antes de colorear y dibujar (por ejemplo, desenfoque). |
| Efecto path | Modificación de la geometría (ruta de acceso) antes de que se genere la máscara alfa (por ejemplo, guiones). |
| Sombreado | Degradados y patrones de mapa de bits. |
Constructores
| Nombre | Description |
|---|---|
| SKPaint() |
Inicializa una nueva instancia de la SKPaint clase con la configuración predeterminada. |
Propiedades
| Nombre | Description |
|---|---|
| Blender |
Obtiene o establece el personalizado SKBlender para la redacción. |
| BlendMode |
Obtiene o establece el modo de combinación. |
| Color |
Obtiene o establece el color de primer plano de la pintura. |
| ColorF |
Obtiene o establece el color de la pintura como un SKColorF (RGBA de punto flotante). |
| ColorFilter |
Obtiene o establece el filtro de color de la pintura. |
| Handle |
Obtiene o establece el identificador en el objeto nativo subyacente. (Heredado de SKObject) |
| IgnorePublicDispose |
Obtiene un valor que indica si la llamada al público Dispose() debe ser no-op. (Heredado de SKNativeObject) |
| ImageFilter |
Obtiene o establece el filtro de imagen. |
| IsAntialias |
Obtiene o establece un valor que indica si está habilitado el suavizado de alias. |
| IsDisposed |
Obtiene un valor que indica si el objeto ya se ha eliminado. (Heredado de SKNativeObject) |
| IsDither |
Obtiene o establece un valor que indica si la dithering está habilitada. |
| IsStroke |
Obtiene o establece un valor que indica si se va a pintar un trazo o el relleno. |
| MaskFilter |
Obtiene o establece el filtro de máscara que se va a usar al pintar. |
| OwnsHandle |
Obtiene o establece un valor que indica si este objeto posee su identificador y debe destruir el objeto nativo cuando se elimina. (Heredado de SKNativeObject) |
| PathEffect |
Obtiene o establece el efecto de ruta de acceso que se va a usar al pintar. |
| Shader |
Obtiene o establece el sombreador que se va a usar al pintar. |
| StrokeCap |
Obtiene o establece un valor que indica cómo se tratan las líneas y rutas de acceso iniciales y finales de trazos. |
| StrokeJoin |
Obtiene o establece el tipo de combinación de la ruta de acceso. |
| StrokeMiter |
Obtiene o establece el límite de miter de la pintura. |
| StrokeWidth |
Obtiene o establece el ancho del trazo de la pintura. |
| Style |
Obtiene o establece el estilo de pintura. |
Métodos
| Nombre | Description |
|---|---|
| Clone() |
Crea una copia de la pintura actual. |
| Dispose() |
Libera todos los recursos usados por este SKNativeObject. (Heredado de SKNativeObject) |
| Dispose(Boolean) |
Libera los recursos no administrados utilizados por SKPaint y, opcionalmente, libera los recursos administrados. |
| DisposeInternal() |
Desencadena un dispose y omite el valor de IgnorePublicDispose. (Heredado de SKNativeObject) |
| DisposeManaged() |
Implementado por tipos derivados SKObject para destruir los objetos administrados. (Heredado de SKObject) |
| DisposeNative() |
Implementado por tipos derivados SKObject para destruir cualquier objeto nativo. |
| DisposeUnownedManaged() |
Implementado por tipos derivados SKObject para eliminar objetos administrados que no son propiedad de esta instancia. (Heredado de SKObject) |
| GetFillPath(SKPath, Single) |
Crea una nueva ruta de acceso a partir del resultado de aplicar cualquiera y todos los efectos a una ruta de acceso de origen. |
| GetFillPath(SKPath, SKMatrix) |
Crea una nueva ruta de acceso a partir del resultado de aplicar cualquiera y todos los efectos a una ruta de acceso de origen con una matriz de transformación. |
| GetFillPath(SKPath, SKPath, Single) |
Obsoletos.
Aplica todos los efectos y a una ruta de acceso de origen, devolviendo el resultado en el destino. |
| GetFillPath(SKPath, SKPath, SKMatrix) |
Obsoletos.
Aplica todos los efectos y a una ruta de acceso de origen con una matriz de transformación, escribiendo el resultado en el destino. |
| GetFillPath(SKPath, SKPath, SKRect, Single) |
Obsoletos.
Aplica todos los efectos y a una ruta de acceso de origen, devolviendo el resultado en el destino. |
| GetFillPath(SKPath, SKPath, SKRect, SKMatrix) |
Obsoletos.
Aplica todos los efectos y a una ruta de acceso de origen con la selección y transformación, escribiendo el resultado en el destino. |
| GetFillPath(SKPath, SKPath, SKRect) |
Obsoletos.
Aplica todos los efectos y a una ruta de acceso de origen, devolviendo el resultado en el destino. |
| GetFillPath(SKPath, SKPath) |
Obsoletos.
Aplica todos los efectos y a una ruta de acceso de origen, devolviendo el resultado en el destino. |
| GetFillPath(SKPath, SKPathBuilder, Single) |
Calcula la geometría rellenada de la ruta de acceso de origen en la escala de resolución especificada y escribe el resultado en el generador de rutas de acceso de destino. |
| GetFillPath(SKPath, SKPathBuilder, SKMatrix) |
Calcula la geometría rellenada de la ruta de acceso de origen después de aplicar una matriz de transformación y escribe el resultado en el generador de rutas de acceso de destino. |
| GetFillPath(SKPath, SKPathBuilder, SKRect, Single) |
Calcula la geometría rellenada de la ruta de acceso de origen dentro del rectángulo de selección en la escala de resolución especificada y escribe el resultado en el generador de rutas de acceso de destino. |
| GetFillPath(SKPath, SKPathBuilder, SKRect, SKMatrix) |
Calcula la geometría rellenada de la ruta de acceso de origen dentro del rectángulo de selección después de aplicar una matriz de transformación y escribe el resultado en el generador de rutas de acceso de destino. |
| GetFillPath(SKPath, SKPathBuilder, SKRect) |
Calcula la geometría rellenada de la ruta de acceso de origen dentro del rectángulo de selección y escribe el resultado en el generador de rutas de acceso de destino. |
| GetFillPath(SKPath, SKPathBuilder) |
Calcula la geometría rellenada de la ruta de acceso de origen mediante el estilo de esta pintura y escribe el resultado en el generador de rutas de acceso de destino. |
| GetFillPath(SKPath, SKRect, Single) |
Crea una nueva ruta de acceso a partir del resultado de aplicar cualquiera y todos los efectos a una ruta de acceso de origen. |
| GetFillPath(SKPath, SKRect, SKMatrix) |
Crea una nueva ruta de acceso a partir del resultado de aplicar efectos a una ruta de acceso de origen con selección y transformación. |
| GetFillPath(SKPath, SKRect) |
Crea una nueva ruta de acceso a partir del resultado de aplicar cualquiera y todos los efectos a una ruta de acceso de origen. |
| GetFillPath(SKPath) |
Crea una nueva ruta de acceso a partir del resultado de aplicar cualquiera y todos los efectos a una ruta de acceso de origen. |
| Reset() |
Restablece todas las propiedades de pintura a sus valores predeterminados. |
| SetColor(SKColorF, SKColorSpace) |
Establece el color de la pintura mediante un valor de color de punto flotante en el espacio de color especificado. |