gpt4 book ai didi

python - 从二进制数据创建一个 gtk.gdk.Pixbuf

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:48 25 4
gpt4 key购买 nike

我正在努力将二进制数据放入 gtk.gdk.pixbuf

这应该能说明我的问题:

file = open("image.jpg", "rb")
//Ultimately this is going to come from a BLOB
binary = f.read()
//I created a pixbuf directly from the jpg
//and took the rowstride values &c. from that
pixbuf = gtk.gdk.pixbuf_new_from_data(
binary, gtk.gdk.COLORSPACE_RGB, False, 8 , 450, 640, 1352)

这失败了:

ValueError:数据长度 (90825) 小于其他参数所需的长度 (865280)

我目前的解决方法是将二进制数据写入一个文件,然后从该文件创建一个 Pixbuf。那只是感觉太hacky了。我正在从数据库中读取二进制数据,所以我真的需要一个可以直接从缓冲区创建 pixbuf 的解决方案。

我不明白为什么如果我只是从数据库中读取 BLOB 并将其写入文件会很容易 - 然后将文件作为 pixbuf 加载,但很难直接从缓冲区中读取!

我做错了什么?

最佳答案

您正在尝试使用一种方法处理 jpg 数据 made for RGB-data only .

如果要处理 jpg,请按照建议使用此格式的加载器 here :

file = open("image.jpg", "rb")
binary = file.read()
loader = gtk.gdk.PixbufLoader("jpeg")
loader.write(binary)
loader.close()
pixbuf = loader.get_pixbuf()

现在 pixbuf 包含您需要的内容。您的解决方法 used such a loader automatically .

关于python - 从二进制数据创建一个 gtk.gdk.Pixbuf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13140861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com