Enum FrameDisposalMethod

FrameDisposalMethod enumeration

Die Frame-Entsorgungsmethode gibt an, ob der aktuelle Frame verworfen werden soll, bevor der nächste Frame angezeigt wird. Sie wählen eine Entsorgungsmethode für Animationen mit Hintergrundtransparenz aus, um anzugeben, ob der aktuelle Frame durch die transparenten Bereiche des nächsten Frames sichtbar ist.

public enum FrameDisposalMethod

Werte

NameWertBeschreibung
Automatic0Legt automatisch eine Entsorgungsmethode für das aktuelle Bild fest und verwirft das aktuelle Bild, wenn das nächste Bild Ebenentransparenz enthält. Bei den meisten Animationen liefert die Option Automatisch (Standard) die gewünschten Ergebnisse.
DoNotDispose1Behält das aktuelle Einzelbild bei, wenn das nächste Einzelbild zur Anzeige hinzugefügt wird. Das aktuelle Einzelbild (und vorangegangene Einzelbilder) können durch transparente Bereiche des nächsten Einzelbilds hindurchscheinen.
Dispose2Verwirft das aktuelle Bild aus der Anzeige, bevor das nächste Bild angezeigt wird. Es wird immer nur ein einzelnes Bild angezeigt (und das aktuelle Bild erscheint nicht durch die transparenten Bereiche des nächsten Bildes).

Beispiele

Die TimeLine-Klasse bietet eine allgemeine Möglichkeit, die Zeitleiste von PsdImage zu manipulieren, z. B. das Ändern der Frame-Verzögerung oder das Bearbeiten des Ebenenstatus auf einem bestimmten Frame.

[C#]

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

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

    // Löschmethode von Frame 1 ändern
    timeLine.Frames[0].DisposalMethod = FrameDisposalMethod.DoNotDispose;

    // Verzögerung von Frame 2 ändern
    timeLine.Frames[1].Delay = 15;

    // Deckkraft von 'Layer 1' auf Frame 2 ändern
    LayerState layerState11 = timeLine.Frames[1].LayerStates[timeLine.LayerIds[1]];
    layerState11.Opacity = 50;

    // 'Layer 1' in die linke untere Ecke von Frame 3 verschieben
    LayerState layerState21 = timeLine.Frames[2].LayerStates[timeLine.LayerIds[1]];
    layerState21.PositionOffset = new Point(-50, 230);

    // Fügt einen neuen Rahmen hinzu
    List<Frame> frames = new List<Frame>(timeLine.Frames);
    frames.Add(new Frame(timeLine));
    timeLine.Frames = frames.ToArray();

    // BlendMode von 'Layer 1' auf Frame 4 ändern
    LayerState layerState31 = timeLine.Frames[3].LayerStates[timeLine.LayerIds[1]];
    layerState31.BlendMode = BlendMode.Dissolve;

    // Änderungen zurück auf die PsdImage-Instanz anwenden
    timeLine.ApplyTo(psdImage);
    psdImage.Save(outputPsd);
}

Siehe auch