The gdk-pixbuf library provides a simple mechanism to load and represent animations.
More...
Inherits Object.
|
static GType | get_type () |
| Get the GType for this class, for use with the underlying GObject type system. More...
|
|
static Glib::RefPtr< PixbufAnimation > | create_from_file (const std::string& filename) |
| Creates a new animation by loading it from a file. More...
|
|
static Glib::RefPtr< PixbufAnimation > | create_from_stream (const Glib::RefPtr< Gio::InputStream >& stream, const Glib::RefPtr< Gio::Cancellable >& cancellable={}) |
| Creates a new animation by loading it from an input stream. More...
|
|
static void | create_from_stream_async (const Glib::RefPtr< Gio::InputStream >& stream, const Gio::SlotAsyncReady& slot, const Glib::RefPtr< Gio::Cancellable >& cancellable={}) |
| Creates a new animation by asynchronously loading an image from an input stream. More...
|
|
static Glib::RefPtr< PixbufAnimation > | create_from_stream_finish (const Glib::RefPtr< Gio::AsyncResult >& result) |
| Finishes an asynchronous pixbuf animation creation operation started with [func GdkPixbuf.PixbufAnimation.new_from_stream_async]. More...
|
|
static Glib::RefPtr< PixbufAnimation > | create_from_resource (const std::string& resource_path) |
| Creates a new pixbuf animation by loading an image from an resource. More...
|
|
The gdk-pixbuf library provides a simple mechanism to load and represent animations.
An animation is conceptually a series of frames to be displayed over time. Each frame is the same size. The animation may not be represented as a series of frames internally; for example, it may be stored as a sprite and instructions for moving the sprite around a background. To display an animation you don't need to understand its representation, however; you just ask gdk-pixbuf what should be displayed at a given point in time.
Creates a new animation by loading it from a file.
The file format is detected automatically.
If the file's format does not support multi-frame images, then an animation with a single frame will be created.
Possible errors are in the GDK_PIXBUF_ERROR
and G_FILE_ERROR
domains.
- Parameters
-
filename | Name of file to load, in the GLib file name encoding. |
- Returns
- A newly-created animation.
- Exceptions
-
static Glib::RefPtr<PixbufAnimation> Gdk::PixbufAnimation::create_from_stream |
( |
const Glib::RefPtr< Gio::InputStream > & |
stream, |
|
|
const Glib::RefPtr< Gio::Cancellable > & |
cancellable = {} |
|
) |
| |
|
static |
Creates a new animation by loading it from an input stream.
The file format is detected automatically.
If <tt>nullptr</tt>
is returned, then error will be set.
The cancellable can be used to abort the operation from another thread. If the operation was cancelled, the error G_IO_ERROR_CANCELLED
will be returned. Other possible errors are in the GDK_PIXBUF_ERROR
and G_IO_ERROR
domains.
The stream is not closed.
- Since gtkmm 4.4:
- Parameters
-
stream | A GInputStream to load the pixbuf from. |
cancellable | Optional GCancellable object. |
- Returns
- A newly-created animation.
- Exceptions
-
static void Gdk::PixbufAnimation::create_from_stream_async |
( |
const Glib::RefPtr< Gio::InputStream > & |
stream, |
|
|
const Gio::SlotAsyncReady & |
slot, |
|
|
const Glib::RefPtr< Gio::Cancellable > & |
cancellable = {} |
|
) |
| |
|
static |
Creates a new animation by asynchronously loading an image from an input stream.
For more details see new_from_stream(), which is the synchronous version of this function.
When the operation is finished, callback
will be called in the main thread. You can then call new_from_stream_finish() to get the result of the operation.
- Since gtkmm 4.4:
- Parameters
-
stream | A Gio::InputStream from which to load the animation. |
cancellable | Optional Gio::Cancellable object. |
slot | A SlotGAsyncReady to call when the pixbuf is loaded. |
Glib::RefPtr<PixbufAnimationIter> Gdk::PixbufAnimation::get_iter |
( |
gint64 |
start_time = g_get_real_time() | ) |
|
Get an iterator for displaying an animation.
The iterator provides the frames that should be displayed at a given time.
start_time would normally come from g_get_real_time(), and marks the beginning of animation playback. After creating an iterator, you should immediately display the pixbuf returned by Gdk::PixbufAnimationIter::get_pixbuf(). Then, you should install a timeout (with Glib::signal_timeout().connect()) or by some other mechanism ensure that you'll update the image after Gdk::PixbufAnimationIter::get_delay_time() milliseconds. Each time the image is updated, you should reinstall the timeout with the new, possibly-changed delay time.
As a shortcut, the default value of start_time is g_get_real_time().
To update the image (i.e. possibly change the result of Gdk::PixbufAnimationIter::get_pixbuf() to a new frame of the animation), call Gdk::PixbufAnimationIter::advance().
If you're using Gdk::PixbufLoader, in addition to updating the image after the delay time, you should also update it whenever you receive the area_updated signal and Gdk::PixbufAnimationIter::on_currently_loading_frame() returns true
. In this case, the frame currently being fed into the loader has received new data, so needs to be refreshed. The delay time for a frame may also be modified after an area_updated signal, for example if the delay time for a frame is encoded in the data after the frame itself. So your timeout should be reinstalled after any area_updated signal.
A delay time of -1 is possible, indicating "infinite."
- Parameters
-
start_time | Time when the animation starts playing. |
- Returns
- An iterator to move over the animation.
Glib::RefPtr<Pixbuf> Gdk::PixbufAnimation::get_static_image |
( |
| ) |
|
Retrieves a static image for the animation.
If an animation is really just a plain image (has only one frame), this function returns that image.
If the animation is an animation, this function returns a reasonable image to use as a static unanimated image, which might be the first frame, or something more sophisticated depending on the file format.
If an animation hasn't loaded any frames yet, this function will return <tt>nullptr</tt>
.
- Returns
- Unanimated image representing the animation.