Форум сайта python.su
Есть изображение в byte, которое нужно перевести в string. Encode/Decode и прочие не помогли, а удалось решить задачу лишь таким вот способом. Можно ли как-то упростить конструкцию или воспользоваться стандартными функциями?
image_byte = b'\x89PNG\r\n\x1a\n\x00...\x82'
image_str = ''
for i in image_byte:
image_str += chr(i)
Офлайн
Разве что так:
image_byte = bytearray('\x89PNG\r\n\x1a\n\x00...\x82')
result = ''.join(map(chr,image_byte))
b'hello'.decode(encoding)
Отредактировано (Дек. 21, 2009 14:07:50)
Офлайн
regall
спасибо!
Впринципе, через decode тоже вышло, но для этого надо знать кодировку. Получилось с такой: ‘iso-8859-1’.
Офлайн
А чем base64 не устраивает, он же для этого как раз и предназначен?
И для чего, если не секрет, это нужно?
Офлайн
igor.kaistМне кажется bytearray для таких целей будет лучше, так как отработает быстрее, чем base64 (человек все-таки с изображениями работает).
А чем base64 не устраивает, он же для этого как раз и предназначен?
Офлайн
regallЯ не думаю, что топикстартеру захочется обрабатывать таким вот способом изображения, и он будет работать с ними побайтно. Все зависит от цели. В общем то base64 для этого придумали, чтоб бинарники в текстовых файлах хранить.
(человек все-таки с изображениями работает).
Офлайн