Class GaussianBlurSmartFilter

GaussianBlurSmartFilter class

El filtro inteligente GaussianBlur.

public sealed class GaussianBlurSmartFilter : SmartFilter

Constructores

NombreDescripción
GaussianBlurSmartFilter()Inicializa una nueva instancia delGaussianBlurSmartFilter clase.

Propiedades

NombreDescripción
BlendMode { get; set; }Obtiene o establece el modo de fusión.
override FilterId { get; }Obtiene el identificador del tipo de filtro inteligente.
IsEnabled { get; set; }Obtiene o establece el estado habilitado del filtro inteligente.
override Name { get; }Obtiene el nombre del filtro inteligente.
Opacity { get; set; }Obtiene o establece el valor de opacidad del filtro inteligente.
Radius { get; set; }Obtiene o establece el radio del filtro inteligente gaussiano.
SourceDescriptor { get; }La estructura del descriptor de origen con datos de filtro inteligente.

Métodos

NombreDescripción
Apply(RasterImage)Aplica el filtro actual a la entradaRasterImage imagen.
ApplyToMask(Layer)Aplica el filtro actual a la entradaLayer enmascarar datos.
Clone()Hace el clon miembro de la instancia actual del tipo.

Campos

NombreDescripción
const FilterTypeEl identificador del filtro inteligente actual.

Ejemplos

Este ejemplo demuestra el soporte de la interfaz de filtros inteligentes.

[C#]

string sourceFilte = "r2_SmartFilters.psd";
string outputPsd = "out_r2_SmartFilters.psd";

void AssertAreEqual(object expected, object actual)
{
    if (!object.Equals(expected, actual))
    {
        throw new Exception("Objects are not equal.");
    }
}

using (var image = (PsdImage)Image.Load(sourceFilte))
{
    SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];

    // editar filtros inteligentes
    GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

    // comprobar los valores del filtro
    AssertAreEqual(3.1, gaussianBlur.Radius);
    AssertAreEqual(BlendMode.Dissolve, gaussianBlur.BlendMode);
    AssertAreEqual(90d, gaussianBlur.Opacity);
    AssertAreEqual(true, gaussianBlur.IsEnabled);

    // actualizar los valores del filtro
    gaussianBlur.Radius = 1;
    gaussianBlur.BlendMode = BlendMode.Divide;
    gaussianBlur.Opacity = 75;
    gaussianBlur.IsEnabled = false;
    AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
    addNoise.Distribution = NoiseDistribution.Uniform;

    // agregar nuevos elementos de filtro
    var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
    filters.Add(new GaussianBlurSmartFilter());
    filters.Add(new AddNoiseSmartFilter());
    smartObj.SmartFilters.Filters = filters.ToArray();

    // aplicar cambios
    smartObj.SmartFilters.UpdateResourceValues();

    // Aplicar filtros
    smartObj.SmartFilters.Filters[0].Apply(image.Layers[2]);
    smartObj.SmartFilters.Filters[4].ApplyToMask(image.Layers[2]);

    image.Save(outputPsd);
}

using (var image = (PsdImage)Image.Load(outputPsd))
{
    SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];

    GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

    // comprobar los valores del filtro
    AssertAreEqual(1d, gaussianBlur.Radius);
    AssertAreEqual(BlendMode.Divide, gaussianBlur.BlendMode);
    AssertAreEqual(75d, gaussianBlur.Opacity);
    AssertAreEqual(false, gaussianBlur.IsEnabled);

    AssertAreEqual(true, smartObj.SmartFilters.Filters[5] is GaussianBlurSmartFilter);
    AssertAreEqual(true, smartObj.SmartFilters.Filters[6] is AddNoiseSmartFilter);
}

Ver también