PyCairo 教程的这个部分,我们将讨论图片。我们将演示如何在 GTK 窗口中显示一幅 PNG 或JPEG 图片。我们也将在图片上绘制一些文字。
显示一幅 PNG 图片
在第一个例子中,我们将显示一幅 PNG 图片。
|
|
这个例子显示一幅图片。
|
|
我们由一幅 PNG 图片创建一个图片 surface。
|
|
我们将前面创建的图像 surface 设为 source 用于绘制。
|
|
我们将 source 绘制在窗口中。
显示一幅 JPEG 图片
PyCairo 只内建了对 PNG 图片的支持。其它的图片可以通过 gtk.gdk.Pixbuf
对象来显示。它是一个用于管理图像的 GTK 对象。
|
|
在这个例子中,我们在窗口中显示了一幅 JPEG 图片。
|
|
除了Gtk,我们还需要 Gdk 和 GdkPixbuf 模块。
|
|
我们由一个 JPEG 文件创建一个 GdkPixbuf.Pixbuf
。
|
|
Gdk.cairo_set_source_pixbuf()
方法将 pixbuf 设为 source 以用于绘制。
水印
在图片上绘制信息很常见。绘制到图片上的文字称为水印。水印用于标识图片。它们可能是版权信息或图片的创建时间。
|
|
我们在一幅图片上绘制版权信息。
|
|
在 load_image()
方法中,我们由一幅 PNG 图片创建一个图片 surface。
|
|
在 draw_mark()
方法中,我们将版权信息绘制到图片上。首先,我们由图像surface 创建一个绘制上下文。
|
|
然后以白色绘制一段小文字。
|
|
最后,将图片 surface 绘制到窗口中。
这一章,我们讨论了 PyCairo 中的图片。
Done.