NAME

Prima::Image::Animate - animate gif,webp,png files

DESCRIPTION

The module provides high-level access to GIF, APNG, and WebP animation sequences.

SYNOPSIS

	use Prima qw(Application Image::Animate);
	my $x = Prima::Image::Animate->load($ARGV[0]);
	die $@ unless $x;
	my ( $X, $Y) = ( 0, 100);
        my $want_background = 1; # 0 for eventual transparency
	my $background = $::application-> get_image( $X, $Y, $x-> size);
	$::application-> begin_paint;

	while ( my $info = $x-> next) {
		my $frame = $background-> dup;
		$frame-> begin_paint;
		$x-> draw_background( $frame, 0, 0) if $want_background;
		$x-> draw( $frame, 0, 0);
		$::application-> put_image( $X, $Y, $frame);

		$::application-> sync;
		select(undef, undef, undef, $info-> {delay});
	}

        $::application-> put_image( $X, $Y, $g);

new $CLASS, %OPTIONS

Creates an empty animation container. If $OPTIONS{images} is given, it is expected to be an array of images, best if loaded from gif files with loadExtras and iconUnmask parameters set ( see Prima::image-load for details).

detect_animation $HASH

Checks {extras} hash obtained from a image loaded with loadExtras flag set, to detect whether the image is an animation, and if loading all of its frame is supported by the module. Returns file format name on success, undef otherwise.

load $SOURCE, %OPTIONS

Loads GIF or WebP animation sequence from file or stream $SOURCE. Options are the same as understood by Prima::Image::load, and are passed down to it.

add $IMAGE

Appends an image frame to the container.

bgColor

Return the background color specified by the sequence as the preferred background color to use when there is no specific background to superimpose the animation to.

current

Return index of the current frame

draw $CANVAS, $X, $Y

Draws the current composite frame on $CANVAS at the given coordinates.

draw_background $CANVAS, $X, $Y

Fills the background on $CANVAS at the given coordinates if file provides that. Returns whether the canvas was tainted or not.

height

Returns height of the composite frame.

icon

Creates and returns an icon object off the current composite frame.

image

Creates and returns an image object off the current composite frame. The transparent pixels on the image are replaced with the preferred background color.

is_stopped

Returns true if the animation sequence was stopped, false otherwise. If the sequence was stopped, the only way to restart it is to call reset.

length

Returns total animation length (without repeats) in seconds.

loopCount [ INTEGER ]

Sets and returns number of loops left, undef for indefinite.

next

Advances one animation frame. The step triggers changes to the internally kept icon image that create effect of transparency, if needed. The method returns a hash, where the following fields are initialized:

left, bottom, right, top

Coordinates of the changed area since the last frame was updated.

delay

Time in seconds how long the frame is expected to be displayed.

reset

Resets the animation sequence. This call is necessary either when image sequence was altered, or when sequence display restart is needed.

size

Returns width and height of the composite frame.

total

Return number fo frames

width

Returns width of the composite frame.

SEE ALSO

Prima::image-load

AUTHOR

Dmitry Karasik, <dmitry@karasik.eu.org>.