如何從PyQt4.QtGui.QImage object
獲取原始base64 PNG數據?我能找到的唯一方法似乎有幫助的是bits()
,但這只是返回sip.voidptr object
,我不知道該從哪裏去。將PyQt4.QtGui.QImage對象轉換爲base64 PNG數據
0
A
回答
2
QImage
代表圖像,而不是圖像文件。 A QImage
對象不能有PNG,JPG或其他格式。您需要使用QImage::save
將QImage
保存爲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數組。
我不會寫更多的東西,因爲這種東西很可能會導致崩潰(而且我現在沒有測試數據) - 你能否以通常的方式加載圖像?
相關問題
- 1. 將base64圖像數據轉換爲png?
- 2. 如何將base64數據轉換爲JavaScript中的PNG文件?
- 3. 如何將base64 svg圖像轉換爲base64圖像png
- 4. 將圖像標記轉換爲png以獲取Base64對其
- 5. 將數據:image/png; base64轉換爲數據庫中的圖像類型
- 6. 從png創建圖像,轉換爲base64
- 7. 轉換API網址爲「數據:圖像/ PNG;的base64" 由PHP
- 8. 將數據庫行轉換爲對象
- 9. 將sql數據轉換爲c#對象
- 10. 將數據串轉換爲對象?
- 11. 將數據轉換爲xts對象
- 12. 將表單數據轉換爲對象
- 13. 將SVG dataUrl轉換爲base64
- 14. 將對象數組轉換爲對象
- 15. 將對象轉換爲plist文件再轉換爲數據
- 16. 如何將位圖轉換爲PNG,然後轉換爲Android中的base64?
- 17. 將base64轉換爲base30
- 18. 如何將Easeljs圖形對象轉換爲base64?
- 19. nodejs:將pngjs流轉換爲base64
- 20. 如何將png圖像字符串數據轉換爲png?
- 21. 如何到Base64 PNG圖像串爲PNG格式轉換成C#
- 22. 將對象轉換爲CLOB
- 23. 將png或jpg圖像轉換爲Android中的Base64字符串
- 24. 如何將base64-encode圖像轉換爲imagemagick中的PNG圖像?
- 25. 如何將Base64字符串轉換爲Png圖像Mvc5 C#?
- 26. 如何將Base64 PNG轉換爲JPG圖像?
- 27. 將base64轉換爲流星應用中的png
- 28. 將base64 png轉換爲Nodejs中的jpeg圖像
- 29. 如何將base64字符串轉換爲PIL圖像對象
- 30. 將對象轉換爲DateRange
該問題詢問有關PNG數據。它不能從'bits()'訪問。 –