将PyQt4.QtGui.QImage对象转化为base64字符串

将PyQt4.QtGui.QImage对象转化为base64字符串

  • 将PyQt4QtGuiQImage对象转化为base64字符串
    • 问题描述
    • 解决方法

问题描述

  在做网页截屏项目时,遇到了一个问题,就是要将截屏得到的图片转化为 base64 加密的字符串。我在进行截屏时,使用的是定义一个与网页大小相同的QImage对象,然后用QPainter将网页内容画到QImage上的方法。这时,就需要将QImage对象转化为 base64 字符串。

解决方法

 #size为网页大小
 img = QtGui.QImage(size, QtGui.QImage.Format_ARGB32)
 painter = QtGui.QPainter(img)
 self.webPage.mainFrame().render(painter)
 painter.end()
 #QImage通过ByteArray转化为BASE64字符串
 data = QtCore.QByteArray()
 buf = QtCore.QBuffer(data)
 img.save(buf, 'PNG')
 str = data.toBase64()

  因为QImage是用来展示图片的容器,它本身不属于任何图片格式,因此需要先将它的以 Byte 的形式用 ByteArray 储存,然后以 PNG 格式保存,最后通过 ByteArraytoBase64()方法将其转化为 base64 格式的字符串。

你可能感兴趣的:(Python)