У меня есть форма, которая загружает изображение в мое представление; тип загруженного изображения:
<class 'django.core.files.uploadedfile.InMemoryUploadedFile'>
Однако я хочу обработать изображение; поэтому мне это нужно в формате PIL или CV2.
Как мне это сделать ?
🤔 А знаете ли вы, что...
Python обладает обширной документацией и активным сообществом разработчиков.
Django File
фактически реализует все необходимые PIL.Image.open()
методы типичного файлового объекта. InMemoryUploadedFile
— это Джанго File
.
Вы можете повторно открыть File
в правильном mode
, а затем передать его PIL.Image.open()
. Этого должно быть достаточно: [1]
someFile: InMemoryUploadedFile = # •••Already has a value•••
someFile = someFile.open("b+")
with PIL.Image.open(someFile) as img:
# •••Do something•••
[1] The solution doesn’t copy the underlying bytes of the file object but simply passes a handle of it from one routine to another. BEWARE OF DATA RACES.