SKShader Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
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:
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:
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:
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:
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:
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:
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. |