Enum FrameDisposalMethod

FrameDisposalMethod enumeration

El método de eliminación de fotogramas especifica si descartar el fotograma actual antes de mostrar el fotograma siguiente. Seleccione un método de eliminación para animaciones que incluyen transparencia de fondo para especificar si el fotograma actual será visible a través de las áreas transparentes del siguiente fotograma.

public enum FrameDisposalMethod

Valores

NombreValorDescripción
Automatic0Determina un método de eliminación para el cuadro actual automáticamente, descartando el cuadro actual si el cuadro siguiente contiene transparencia de capa. Para la mayoría de las animaciones, la opción Automática (predeterminada) produce los resultados deseados.
DoNotDispose1Conserva el cuadro actual a medida que se agrega el siguiente cuadro a la pantalla. El cuadro actual (y los cuadros anteriores) pueden mostrarse a través de áreas transparentes del cuadro siguiente.
Dispose2Descarta el cuadro actual de la pantalla antes de que se muestre el cuadro siguiente. Solo se muestra un cuadro en cualquier momento (y el cuadro actual no aparece a través de las áreas transparentes del siguiente cuadro).

Ejemplos

La clase TimeLine brinda una capacidad de alto nivel para manipular la línea de tiempo de PsdImage, como cambiar el retraso del cuadro o editar el estado de la capa en un cuadro específico.

[C#]

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

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

    // Cambiar el método de eliminación del cuadro 1
    timeLine.Frames[0].DisposalMethod = FrameDisposalMethod.DoNotDispose;

    // Cambiar el retraso del cuadro 2
    timeLine.Frames[1].Delay = 15;

    // Cambiar la opacidad de 'Layer 1' en el cuadro 2
    LayerState layerState11 = timeLine.Frames[1].LayerStates[timeLine.LayerIds[1]];
    layerState11.Opacity = 50;

    // mover 'Capa 1' a la esquina inferior izquierda en el cuadro 3
    LayerState layerState21 = timeLine.Frames[2].LayerStates[timeLine.LayerIds[1]];
    layerState21.PositionOffset = new Point(-50, 230);

    // Agrega un nuevo marco
    List<Frame> frames = new List<Frame>(timeLine.Frames);
    frames.Add(new Frame(timeLine));
    timeLine.Frames = frames.ToArray();

    // Cambiar blendMode de 'Layer 1' en el cuadro 4
    LayerState layerState31 = timeLine.Frames[3].LayerStates[timeLine.LayerIds[1]];
    layerState31.BlendMode = BlendMode.Dissolve;

    // Aplicar los cambios de nuevo a la instancia de PsdImage
    timeLine.ApplyTo(psdImage);
    psdImage.Save(outputPsd);
}

Ver también