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

创建一个新的 pixbuf 加载器对象。

gdk_pixbuf_loader_new_with_mime_type

创建一个新的 pixbuf 加载器对象,尝试始终将图像数据解析为 MIME 类型为 mime_type 的图像,而不是自动识别类型。

起始版本:2.4

gdk_pixbuf_loader_new_with_type

创建一个新的 pixbuf 加载器对象,尝试始终将图像数据解析为类型为 image_type 的图像,而不是自动识别类型。

实例方法

gdk_pixbuf_loader_close

通知 pixbuf 加载器不会再通过 gdk_pixbuf_loader_write() 进行写入,以使其可以释放内部加载结构。

gdk_pixbuf_loader_get_animation

查询 pixbuf 加载器当前正在创建的 GdkPixbufAnimation

gdk_pixbuf_loader_get_format

获取当前加载的图像文件格式的可用信息。

起始版本:2.2

gdk_pixbuf_loader_get_pixbuf

查询 pixbuf 加载器当前正在创建的 GdkPixbuf

gdk_pixbuf_loader_set_size

导致在加载过程中对图像进行缩放。

起始版本:2.2

gdk_pixbuf_loader_write

解析给定图像缓冲区中的下一个 count 字节。

gdk_pixbuf_loader_write_bytes

解析给定图像缓冲区的下一个内容。

起始版本:2.30

方法继承自 GObject (43)

请参阅 GObject 以获取方法完整列表。

信号

GdkPixbuf.PixbufLoader::area-prepared

当 pixbuf 加载器按所需大分配 pixbuf 时,会发出此信号。

GdkPixbuf.PixbufLoader::area-updated

当正在加载的图像的一个重大区域被更新时,会发出此信号。

GdkPixbuf.PixbufLoader::closed

当调用 gdk_pixbuf_loader_close() 时,会发出此信号。

GdkPixbuf.PixbufLoader::size-prepared

当将用于确定其将创建的图像大小的初始数据量提供给 pixbuf 加载器后,会发出此信号。

信号继承自 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 )

暂无描述。