Я хочу кодировать изображение в строку, используя модуль base64. Однако я столкнулся с проблемой. Как указать изображение, которое я хочу закодировать? Я попытался использовать каталог для изображения, но это просто приводит к кодировке каталога. Я хочу, чтобы фактический файл изображения был закодирован.Кодирование файла изображения с base64
EDIT
Я устал этот фрагмент:
with open("C:\Python26\seriph1.BMP", "rb") as f:
data12 = f.read()
UU = data12.encode("base64")
UUU = base64.b64decode(UU)
print UUU
self.image = ImageTk.PhotoImage(Image.open(UUU))
, но я получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "<string>", line 245, in run_nodebug
File "C:\Python26\GUI1.2.9.py", line 473, in <module>
app = simpleapp_tk(None)
File "C:\Python26\GUI1.2.9.py", line 14, in __init__
self.initialize()
File "C:\Python26\GUI1.2.9.py", line 431, in initialize
self.image = ImageTk.PhotoImage(Image.open(UUU))
File "C:\Python26\lib\site-packages\PIL\Image.py", line 1952, in open
fp = __builtin__.open(fp, "rb")
TypeError: file() argument 1 must be encoded string without NULL bytes, not str
Что я делаю неправильно?
Нужна дополнительная помощь, см. Редактирование. – rectangletangle
Спасибо, еще одна проблема, когда я печатаю декодированное изображение, я получаю строку 'ÿØÿà'. Однако, когда я запускаю это как замену данных, я получаю сообщение об ошибке. Закодированная строка намного длиннее для сравнения. Поэтому я думаю, что, вероятно, хранят данные изображения. декодированная строка просто ссылается на закодированную строку или что-то еще? Это кажется слишком коротким для хранения данных. – rectangletangle
Печатный результат не обязательно равен фактическому содержимому - это зависит от того, как и где вы его печатаете. –