将 Wand 图像转换为 GTK 图像

问题描述 投票:0回答:1

环境:Debian 11、Python 3.9.2、PyObject GTK 3.0、WAND 0.6.5

我目前使用 PIL 并在 GTK 中加载图像:

data = pil_img.tobytes()
pixbuf = GdkPixbuf.Pixbuf.new_from_data(data,  ...)

我想用 WAND 做同样的事情,并尝试过

data = wand_img.make_blob()
但它不起作用,GTK 回答“构造函数返回 NULL

幸亏使用了 numpy 的作品:

data = numpy.array(wand_img).tobytes()

那又怎样?问题是,通过 numpy 非常慢,与 PIL 相比,导致我损失了 400 毫秒,这使得应用程序的响应速度大大降低。

有没有一种方法可以在不使用 numpy 的情况下将 WAND 图像转换为字节?

gtk3 wand pyobject
1个回答
0
投票

尝试使用

Image.export_pixels()

w, h = img.size
rgb = GdkPixbuf.Colorspace.RGB
data = img.export_pixels()
pixbuf = GdkPixbuf.Pixbuf.new_from_data(data, rgb, True, 8, w, h, w*4)

还可以考虑使用 ImageMagick 的 Q8 版本。 400ms 可能与每样本 16 位缩小到 8 位有关。

© www.soinside.com 2019 - 2024. All rights reserved.