2014-07-25 71 views

回答

2

QImage代表圖像,而不是圖像文件。 A QImage對象不能有PNG,JPG或其他格式。您需要使用QImage::saveQImage保存爲PNG格式。它可以保存到磁盤上的文件或任何QIODevice。在這種情況下,QBuffer是一個方便的IO設備。它將數據存儲在QByteArray中。之後,我們可以使用QByteArray::toBase64來獲得結果。

image = QImage(filename) 
data = QByteArray() 
buf = QBuffer(data) 
image.save(buf, 'PNG') 
print data.toBase64() 
-2

如果你想直接訪問內存中的數據,你有正確的方法。它是一個C數組,並沒有關聯python對象,所以它有點棘手。您需要:來自bits(),depth()和byteCount()的開始地址。 ctypes.string_at會讓你訪問那裏的數據,你可以使用已知的每像素和圖像形狀傳遞給一個numpy數組。

我不會寫更多的東西,因爲這種東西很可能會導致崩潰(而且我現在沒有測試數據) - 你能否以通常的方式加載圖像?

+0

該問題詢問有關PNG數據。它不能從'bits()'訪問。 –