类
GdkPixbufPixbufLoader
描述 [src]
class GdkPixbuf.PixbufLoader : GObject.Object
{
/* No available fields */
}
增量图像加载器。
GdkPixbufLoader
为应用程序提供了一种驱动加载图像进程的方法,该方法允许应用程序将图像数据直接发送到加载器,而不是让加载器从文件中读取数据。应用程序可以在需要以小块解析图像数据时使用此功能,而不是使用 gdk_pixbuf_new_from_file()
或 gdk_pixbuf_animation_new_from_file()
。例如,当从(可能)缓慢的网络连接中读取图像,或者加载非常大的文件时,应使用它。
要使用 GdkPixbufLoader
加载图像,创建一个新实例,并调用 gdk_pixbuf_loader_write()
将数据发送到其中。完成后,应调用 gdk_pixbuf_loader_close()
结束流并完成所有操作。
加载器将在整个过程中发出三个重要的信号
- 一旦图像有足够的信息来确定图像的大小,
GdkPixbufLoader::size-prepared
将被发送。如果要在加载图像时缩放图像,则可以对这个信号调用gdk_pixbuf_loader_set_size()
。 - 一旦为所需图像分配了 pixbuf,
GdkPixbufLoader::area-prepared
将被发送。你可以通过调用gdk_pixbuf_loader_get_pixbuf()
来获取GdkPixbuf
实例。如果你想使用它,只需获取一个对它的引用。您还可以稍后调用gdk_pixbuf_loader_get_pixbuf()
来获取相同的 pixbuf。 - 每当某个区域更新时,
GdkPixbufLoader::area-updated
都会被发送。通过这种方式,您可以更新部分完成的图像。请注意,您无法从更新区域中了解图像的完成度。例如,在一个隔行图像中,您需要多次传递才能完成图像的加载。
加载动画
加载动画的步骤与加载图像类似。当首先发出 GdkPixbufLoader::area-prepared
信号后,可调用 gdk_pixbuf_loader_get_animation()
来获取 GdkPixbufAnimation
实例,然后调用 gdk_pixbuf_animation_get_iter()
来获取 GdkPixbufAnimationIter
以检索所需时间戳的 pixbuf。
构造函数
gdk_pixbuf_loader_new_with_mime_type
创建一个新的 pixbuf 加载器对象,尝试始终将图像数据解析为 MIME 类型为 mime_type
的图像,而不是自动识别类型。
起始版本:2.4
信号
信号继承自 GObject (1)
GObject::notify
当某个对象的属性通过 g_object_set_property()、g_object_set() 以及其他途径设置值时,该对象便会发出 notify 信号。
类结构
struct GdkPixbufPixbufLoaderClass {
GObjectClass parent_class;
void (* size_prepared) (
GdkPixbufLoader* loader,
int width,
int height
);
void (* area_prepared) (
GdkPixbufLoader* loader
);
void (* area_updated) (
GdkPixbufLoader* loader,
int x,
int y,
int width,
int height
);
void (* closed) (
GdkPixbufLoader* loader
);
}
暂无描述。
类成员
parent_class: GObjectClass
暂无描述。
size_prepared: void (* size_prepared) ( GdkPixbufLoader* loader, int width, int height )
暂无描述。
area_prepared:void (* area_prepared) ( GdkPixbufLoader* loader )
暂无描述。
area_updated:void (* area_updated) ( GdkPixbufLoader* loader, int x, int y, int width, int height )
暂无描述。
closed:void (* closed) ( GdkPixbufLoader* loader )
暂无描述。