Enum FrameDisposalMethod

FrameDisposalMethod enumeration

Çerçeve çıkarma yöntemi, bir sonraki kareyi göstermeden önce geçerli karenin atılıp atılmayacağını belirtir. Mevcut karenin bir sonraki karenin şeffaf alanlarından görünüp görünmeyeceğini belirtmek için arka plan şeffaflığı içeren animasyonlar için bir atma yöntemi seçersiniz.

public enum FrameDisposalMethod

değerler

İsimDeğerTanım
Automatic0Sonraki kare katman şeffaflığı içeriyorsa mevcut kareyi atarak mevcut kare için otomatik olarak bir imha yöntemi belirler. Çoğu animasyon için, Otomatik seçeneği (varsayılan) istenen sonuçları verir.
DoNotDispose1Bir sonraki kare ekrana eklenirken mevcut kareyi korur. Mevcut kare (ve önceki kareler), bir sonraki karenin şeffaf alanlarından gösterilebilir.
Dispose2Bir sonraki kare görüntülenmeden önce mevcut kareyi ekrandan atar. Herhangi bir zamanda yalnızca tek bir kare görüntülenir (ve mevcut kare sonraki karenin şeffaf alanlarından görünmez).

Örnekler

TimeLine sınıfı, kare gecikmesini değiştirmek veya belirli bir karede katman durumunu düzenlemek gibi, PsdImage’ın zaman çizelgesini işlemek için üst düzey bir yetenek sağlar.

[C#]

string sourceFile = "image1219.psd";
string outputPsd = "output_image800.psd";

using (PsdImage psdImage = (PsdImage)Image.Load(sourceFile))
{
    TimeLine timeLine = TimeLine.InitializeFrom(psdImage);

    // Çerçeve 1'in elden çıkarma yöntemini değiştir
    timeLine.Frames[0].DisposalMethod = FrameDisposalMethod.DoNotDispose;

    // Çerçeve 2'nin gecikmesini değiştir
    timeLine.Frames[1].Delay = 15;

    // 2. karedeki 'Katman 1'in opaklığını değiştir
    LayerState layerState11 = timeLine.Frames[1].LayerStates[timeLine.LayerIds[1]];
    layerState11.Opacity = 50;

    // 'Katman 1'i 3. karede sol alt köşeye taşı
    LayerState layerState21 = timeLine.Frames[2].LayerStates[timeLine.LayerIds[1]];
    layerState21.PositionOffset = new Point(-50, 230);

    // Yeni çerçeve ekler
    List<Frame> frames = new List<Frame>(timeLine.Frames);
    frames.Add(new Frame(timeLine));
    timeLine.Frames = frames.ToArray();

    // 4. karede "Katman 1"in blendMode'unu değiştir
    LayerState layerState31 = timeLine.Frames[3].LayerStates[timeLine.LayerIds[1]];
    layerState31.BlendMode = BlendMode.Dissolve;

    // Değişiklikleri tekrar PsdImage örneğine uygula
    timeLine.ApplyTo(psdImage);
    psdImage.Save(outputPsd);
}

Ayrıca bakınız