def resizeImage(self, image_field: ImageFieldFile, size: tuple): image = Image.open(image_field.file.file) image.thumbnail(size=size) image_file = BytesIO() image.save(image_file, image.format) image_field.save(image_field.name, InMemoryUploadedFile( image_file, None, '', image_field.file.content_type, image.size, image_field.file.charset, ), save=False)
def save(self, commit=True): instance = super(SettingsForm, self).save(commit=False) if self.instance.type == Settings.Type.BOOLEAN: # if it is checkbox and value is False - save as empty string if self.instance.value == 'False': self.instance.value = '' elif self.instance.type == Settings.Type.IMAGE and 'value' in self.changed_data: new_field = ImageFieldFile(instance=self.instance, field=models.ImageField(upload_to=UPLOAD_TO_DIRECTORY), name=self.instance.value.name) new_field.field.name = 'value' new_field.save(self.instance.value.name, self.instance.value, True) self.instance.value = self.instance.value.lower() if commit: instance.save() return instance
def _create_thumbnail(image_field: ImageFieldFile, thumbnail_image_field: ImageFieldFile, size: tuple): image = Image.open(image_field.file.file) image.thumbnail(size=size) image_file = BytesIO() image.save(image_file, image.format) thumbnail_image_field.save( image_field.name, InMemoryUploadedFile( image_file, None, "", image_field.file.content_type, image.size, image_field.file.charset, ), save=False, )
def saveImageFieldFile(f, imageFieldFile: ImageFieldFile, chosenName=None): if isinstance(f, File): imageFieldFile.save( chosenName if chosenName else determineUpload(None, f.name), f, True) elif isinstance(f, str) or isinstance(f, bytes): with open(f, "rb") as ff: imageFieldFile.save( chosenName if chosenName else determineUpload(None, ff.name), File(ff), True) else: imageFieldFile.save( chosenName if chosenName else determineUpload(None, f.name), File(f), True)