Class SmartFilter

SmartFilter class

Akıllı filtrelerin temel mantığını işleyecek sınıf.

public abstract class SmartFilter : ICloneable

yapıcılar

İsimTanım
SmartFilter()Yeni bir örneğini başlatır.SmartFilter sınıf.

Özellikleri

İsimTanım
BlendMode { get; set; }Karıştırma modunu alır veya ayarlar.
abstract FilterId { get; }Akıllı filtre türü tanımlayıcısını alır.
IsEnabled { get; set; }Akıllı filtrenin etkin durumunu alır veya ayarlar.
abstract Name { get; }Akıllı filtre adını alır.
Opacity { get; set; }Akıllı filtrenin opaklık değerini alır veya ayarlar.
SourceDescriptor { get; }Akıllı filtre verilerine sahip kaynak tanımlayıcı yapısı.

yöntemler

İsimTanım
Apply(RasterImage)Geçerli filtreyi girişe uygularRasterImage resim.
ApplyToMask(Layer)Geçerli filtreyi girişe uygularLayer veriyi maskele.
Clone()Type. türünün mevcut örneğinin üye bazında klonunu oluşturur.

Örnekler

Bu örnek, akıllı filtreler arabiriminin desteğini gösterir.

[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];

    // akıllı filtreleri düzenle
    GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

    // filtre değerlerini kontrol et
    AssertAreEqual(3.1, gaussianBlur.Radius);
    AssertAreEqual(BlendMode.Dissolve, gaussianBlur.BlendMode);
    AssertAreEqual(90d, gaussianBlur.Opacity);
    AssertAreEqual(true, gaussianBlur.IsEnabled);

    // filtre değerlerini güncelle
    gaussianBlur.Radius = 1;
    gaussianBlur.BlendMode = BlendMode.Divide;
    gaussianBlur.Opacity = 75;
    gaussianBlur.IsEnabled = false;
    AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
    addNoise.Distribution = NoiseDistribution.Uniform;

    // yeni filtre öğeleri ekle
    var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
    filters.Add(new GaussianBlurSmartFilter());
    filters.Add(new AddNoiseSmartFilter());
    smartObj.SmartFilters.Filters = filters.ToArray();

    // değişiklikleri uygula
    smartObj.SmartFilters.UpdateResourceValues();

    // Filtreleri uygula
    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];

    // filtre değerlerini kontrol et
    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);
}

Ayrıca bakınız