예제 #1
0
 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)
예제 #2
0
    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
예제 #3
0
파일: utils.py 프로젝트: adux/acrolama
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,
    )
예제 #4
0
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)