2012-01-12 3 views
3

У меня есть png-изображение, и мне нужно сохранить его как строку, а затем снова открыть его с помощью PIL. Я пытаюсь сделать это так:PIL fromstring error

output = StringIO.StringIO() 
old_image.save(output, format="PNG") 
contents = output.getvalue() 
output.close() 

new_image = Image.fromstring(contents, "RGBA", old_image.size) 

, но он дает мне ошибку: TypeError: 'argument 1 must be string without null bytes, not str'

Как решить эту проблему?

ответ

3

У вас есть аргументы, наоборот:

Image.fromstring(mode, size, data, decoder_name='raw', *args) 

так

Image.fromstring("RGBA", old_image.size, contents) 

Но обратите внимание, что это гораздо легче читать с StringIO объекта непосредственно:

output = StringIO.StringIO() 
old_image.save(output, format="PNG") 

output.seek(0) 
new_image = Image.open(output) 
Смежные вопросы