I have service in my Django project's app, that upload images, and I need to convert all images to webp to optimize further work with these files on the frontend side. Draft of _convert_to_webp method: # imports from pathlib import Path from django.core.files import temp as tempfile from django.core.files.uploadedfile import InMemoryUploadedFile from PIL import Image # some service class ... def _convert_to_webp(self, f_object: InMemoryUploadedFile): new_file_name = str(Path(f_object._name).with_suffix('.webp')) temp_file = tempfile.NamedTemporaryFile(suffix='.temp.webp') # FIXME: on other OS may cause FileNotFoundError with open(temp_file 'wb') as f: for line in f_object.file.readlines(): ... # will it works good? new_file = ... new_f_object = InMemoryUploadedFile( new_file, f_object.field_name, new_file_name, f_object.content_type, f_object.size, f_object.charset, f_object.content_type_extra ) return new_file_name, new_f_object ... f_object is InMemoryUploadedFile instance from POST request body (Django automatically create it). My idea is to create a temporary file, write data from f_object.file.readlines() to it, open this file with PIL.Image.open and save with format="webp". Is this idea a good one or there is another way to make file converting? Continue reading...