在gtk4中转换PIL.Imageto/fromgtk.Picture/Gtk.Image

Convert PIL.Image to/from Gtk.Picture/Gtk.Image in gtk4

我在 PIL(low) 中进行 RGBA 图像处理,并希望在 gtk4 应用程序中显示生成的图像。为此,我需要一个无缝的 PIL.Image <--> Gtk.Picture/Gtk.Image 转换器。我想不惜一切代价避免使用临时文件。我找到了有用的提示 and here 但想知道 gtk4 中是否有更方便的东西?

从 GTK 4.4 开始,这似乎效果最好:

buffer = GLib.Bytes.new(pil_image.tobytes())
gdata = GdkPixbuf.Pixbuf.new_from_bytes(buffer, GdkPixbuf.Colorspace.RGB, True, 8, pil_image.width, pil_image.height, len(pil_image.getbands())*pil_image.width)
gtk_image = Gtk.Image.new_from_pixbuf(gdata)

一旦 GTK 4.6+ 变得无处不在,GdkPixbuf 应该通过 Gdk.Texture.new_from_bytes().

替换为 GdkTexture