Как декодировать строку base64 в исходное изображение и открывать ее без сохранения - PullRequest
0 голосов
/ 28 июня 2018

Итак, у меня есть этот базовый код на данный момент.

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

И он преобразует изображение в сумасшедшую длинную строку, я делаю это в надежде скопировать эту строку и сделать ее переменной в другом скрипте, который я создаю. Я не хочу сохранять это на компьютер или что-то еще, я просто хочу, чтобы это было декодировано и открыто для фона GUI. Я пытаюсь сделать так, чтобы нужен был только exe и больше ничего.

Я нашел другие вопросы по этому поводу, но, к сожалению, я не совсем понимаю ответы. Поэтому, если возможно, самый простой способ был бы более предпочтительным, спасибо!

Edit: возможный дубликат, который был связан, является справедливым, но он не отвечает на мой вопрос, потому что, как я сказал, я не понимаю, что они сделали, почему это работает таким образом. И если я понимаю это вообще, я думаю, что он хранит путь к изображению, но не фактическое изображение в exe. Я хочу, чтобы иметь возможность взять исполняемый файл и только это на флэш-накопитель, и он работает.

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете распечатать 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()
...