Scroll to navigation

Prima::Image::Animate(3) User Contributed Perl Documentation Prima::Image::Animate(3)

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 files with the "loadExtras" and "iconUnmask" parameters set ( see Prima::image-load for details).

detect_animation $HASH

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

load $SOURCE, %OPTIONS

Loads a GIF, APNG, or WebP animation sequence from $SOURCE which is either a file or a stream. Options are the same as used by the "Prima::Image::load" method.

Depending on the "loadAll" option, either loads all frames at once (1), or uses "Prima::Image::Loader" to load only a single frame at a time (0, default). Depending on the loading mode, some properties may not be available.

add $IMAGE

Appends an image frame to the container.

Only available if the "loadAll" option is on.

bgColor

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

close

Releases eventual image file handle for loader-based animations. Sets the "{suspended}" flag so that all image operations are suspended. A later call to "reload" restores the status quo execpt the current frame prior to the "close" call.

Has no effect on animations loaded with the "loadAll" option.

current

Returns the 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 the file provides the color to fill. Returns a boolean value whether the canvas was drawn on or not.

height

Returns the height of the composite frame

icon

Returns a new icon object created from the current composite frame

image

Returns a new image object created from 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 the total animation length (without repeats) in seconds.

loopCount [ INTEGER ]

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

next

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

Coordinates of the changed area since the last frame was updated
Time in seconds how long the frame is expected to be displayed

reload

Reloads the animation after a "close" call. Returns the success flag.

reset

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

size

Returns the width and height of the composite frame

suspended

Returns true if a call to the "close" method was made.

total

Return the number of frames

warning

If an error occured during frame loading, it will be stored in the "warning" property. The animation will stop at the last successfully loaded frame

Only available if the "loadAll" option is off.

width

Returns the width of the composite frame

SEE ALSO

Prima::image-load, Prima::Image::Loader.

AUTHOR

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

2024-08-20 perl v5.40.0