В некоторых уроках было объяснено использование StringIO
в методе сохранения подушек.но когда я использую этот тестовый код:
from PIL import Image
from io import StringIO, BytesIO
photo = Photo.objects.get(pk=1)
bytes = BytesIO()
string = StringIO()
image = Image.open(photo.image)
image.save(string, 'PNG')
, тогда я получаю ошибку:
ожидается строковый аргумент, получено «байтов»
Но когдаЯ использую BytesIO
вот так:
image.save(bytes, 'PNG')
работает нормально.Это странно, потому что в сообщении об ошибке говорится, что ожидается строка, а байты неправильные, но, очевидно, верно обратное.И это также противоречит информации, которую я получил при проверке учебников.
Может быть, поведение save()
было изменено в развилке Pillow, а сообщение об ошибке не было обновлено?Или это отличается, потому что я использую Python 3 с модулем io
вместо модуля StringIO
?
edit, примеры, где StringIO
предлагается