将图片文件转换成base64编码的字符串
def to_base64(file_path, fmt="png"):
image = QImage(file_path)
data = QByteArray()
buffer = QBuffer(data)
image.save(buffer, fmt)
return str(data.toBase64())[2:-1]
def trans_base64_1(file_path):
with open(file_path, "rb") as f:
return str(base64.b64encode(f.read()))[2:-1]
Base64编码转图片
text_edit = QTextEdit()
base64_img = \
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA9hAAAPYQGo" \
"P6dpAAAAfElEQVRYhe3SIQ4CMRQE0BcUHADcKhyKy2C4EIY74VBIHLcg+CIoyWaTxTSw" \
"IZmnmhnxf9oSERHxBxbYjHRrdCPdFvPW4Xs8UHDFstedal7q+W2FW83v2LUscOkNKTjU" \
"vBvkxes24DjIz58GzFq2+4XJn4CJP2FERMTXPQFymiIGFaZIfQAAAABJRU5ErkJggg=="
data = f'<img src="data:image/png;base64,{base64_img}" />'
fragment = QTextDocumentFragment.fromHtml(data)
text_edit.textCursor().insertFragment(fragment)
def get_icon(img_data = None, color=None, fmt='png'):
"""
通过base64编码的图片字符串获取QIcon对象
:param img_data: Base64编码的图片字符串
:param color: 图片需要填充的颜色
:param fmt: 图片的格式
:return:
"""
if not img_data:
pix = QPixmap(32, 32)
else:
data = QByteArray().fromBase64(img_data.encode())
image = QImage()
image.loadFromData(data, fmt)
pix = QPixmap.fromImage(image)
if color:
pix.fill(QColor(color))
return QIcon(pix)