1
我正努力將二進制數據轉換爲gtk.gdk.pixbuf
。從二進制數據創建一個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: data length (90825) is less then required by the other parameters (865280)
我目前的解決方法是將二進制數據寫入一個文件,然後從該文件中創建一個Pixbuf
。這只是感覺很不好。我正在從數據庫讀取二進制數據,所以我真的需要一個可以直接從緩衝區創建pixbuf的解決方案。
我不明白爲什麼它很容易,如果我只是從數據庫中讀取的BLOB
,並將其寫入到一個文件 - 然後加載該文件作爲一個pixbuf的,但很難從緩衝區直接去!
我在做什麼錯?
輝煌,謝謝 – jsj