首页 > 解决方案 > 如何将base64字符串解码为其原始图像并打开它而不保存它

问题描述

所以我现在有这个基本代码。

import base64
with open("test.png", "rb") as image_file:
    encoded_string = base64.b64encode(image_file.read())

并且它将图像转换为一个疯狂的长字符串,我这样做是希望复制该字符串并使其成为我正在制作的另一个脚本中的变量。我不想将它保存到计算机或任何东西上,我只想将它解码并为 GUI 背景打开。我正在努力做到这一点,所以只需要 exe 而不需要其他任何东西。

我发现了其他问题,但遗憾的是我不能很好地理解答案。所以如果可能的话,最简单的方法会更受欢迎,谢谢!

编辑:链接的可能重复是公平的,但它没有回答我的问题,因为正如我所说,我不明白他们做了什么,为什么它会这样工作。如果我完全理解它,我认为它存储图像路径而不是 exe 中的实际图像。我希望能够获取 exe 文件,并且只能在闪存驱动器上使用它。

标签: pythonimagepython-2.7base64exe

解决方案


您可以将其打印encoded_string到控制台,从那里复制并将其粘贴到您的代码中。将encoded_string看起来像:

'R0lGODlhUABFAHAAA ... Qiq0Z1q2XN6oYYoQIBAQA7'

在像这个例子这样的代码中使用它:

import tkinter as tk

image_string = 'R0lGODlhUABFAHAAA ... Qiq0Z1q2XN6oYYoQIBAQA7'

root = tk.Tk()
imgFrame = tk.Frame(root)
imgFrame.pack()
img = tk.PhotoImage(data=image_string)
imgLabel = tk.Label(imgFrame, image=img)
imgLabel.pack()

推荐阅读