def handle(self, *args, **options):
        print('Looking for resized fields')

        for Model in apps.get_models():
            print('  {}.{}'.format(Model._meta.app_label,
                                   Model._meta.model_name))

            resized_fields = []
            for field in Model._meta.fields:
                if isinstance(field, ResizedImageField):
                    resized_fields.append(field)

            for field in resized_fields:
                print('    ', field.name)
                images = (Model.objects.filter(
                    **{
                        '{}__isnull'.format(field.name): False
                    }).exclude(**{
                        field.name: ''
                    }).values_list(field.name, flat=True))
                for resolution in field.resolutions:
                    print('      resizing {} images to {}'.format(
                        len(images),
                        resolution,
                    ))
                    for image in images:
                        try:
                            resize_image(field.storage.open(image), resolution)
                        except IOError:
                            print('        Image does not exist', image)
                            if options['fails']:
                                raise

        print('Resizing complete')
    def handle(self, *args, **options):
        print('Looking for resized fields')

        for Model in apps.get_models():
            print('  {}.{}'.format(Model._meta.app_label, Model._meta.model_name))

            resized_fields = []
            for field in Model._meta.fields:
                if isinstance(field, ResizedImageField):
                    resized_fields.append(field)

            for field in resized_fields:
                print('    ', field.name)
                images = (
                    Model
                    .objects
                    .filter(**{'{}__isnull'.format(field.name): False})
                    .exclude(**{field.name: ''})
                    .values_list(field.name, flat=True)
                )
                for resolution in field.resolutions:
                    print('      resizing {} images to {}'.format(
                        len(images),
                        resolution,
                    ))
                    for image in images:
                        try:
                            resize_image(field.storage.open(image), resolution)
                        except IOError:
                            print('        Image does not exist', image)
                            if options['fails']:
                                raise

        print('Resizing complete')
    def pre_save(self, *args, **kwargs):
        file_object = super(ResizedImageField, self).pre_save(*args, **kwargs)

        if file_object:
            for resolution in self.resolutions:
                resize_image(file_object, resolution)

        return file_object
Exemple #4
0
    def pre_save(self, *args, **kwargs):
        file_object = super(ResizedImageField, self).pre_save(*args, **kwargs)

        if file_object:
            for resolution in self.resolutions:
                resize_image(file_object, resolution)

        return file_object
Exemple #5
0
    def test_resize_imagefile(self):
        f = ImageFile(self.get_image())
        size = 100

        resize_image(f, size=size, storage=default_storage)

        img = self.get_resize(size)
        self.assertEqual(img.size[0], 100)
        self.assertEqual(img.size[1], 148)
Exemple #6
0
    def test_resize_crop(self):
        f = self.get_image()
        size = '100x100'

        resize_image(f, size=size, storage=default_storage)

        img = self.get_resize(size)
        self.assertEqual(img.size[0], 100)
        self.assertEqual(img.size[1], 100)
Exemple #7
0
    def test_resize_larger(self):
        f = self.get_image()
        size = '2000x2000'

        resize_image(f, size=size, storage=default_storage)

        img = self.get_resize(size)
        self.assertEqual(img.size[0], 2000)
        self.assertEqual(img.size[1], 2000)
Exemple #8
0
    def test_resize_imagefile(self):
        f = ImageFile(self.get_image())
        size = 100

        resize_image(f, size=size, storage=default_storage)

        img = self.get_resize(size)
        self.assertEqual(img.size[0], 100)
        self.assertEqual(img.size[1], 148)
Exemple #9
0
    def test_resize_crop(self):
        f = self.get_image()
        size = '100x100'

        resize_image(f, size=size, storage=default_storage)

        img = self.get_resize(size)
        self.assertEqual(img.size[0], 100)
        self.assertEqual(img.size[1], 100)
Exemple #10
0
    def test_resize_larger(self):
        f = self.get_image()
        size = '2000x2000'

        resize_image(f, size=size, storage=default_storage)

        img = self.get_resize(size)
        self.assertEqual(img.size[0], 2000)
        self.assertEqual(img.size[1], 2000)
Exemple #11
0
def resize_static(img_path, size=100):
    try:
        return static(resize_image(
            img_path,
            size,
            storage=get_storage_class(settings.STATICFILES_STORAGE)
        ))
    except:
        logger.error('Resize failed', exc_info=True)
        return ''
Exemple #12
0
 def test_exif_rotation(self):
     f1 = self.get_image('exif1.jpg')
     resize_image(f1, size=100, storage=default_storage)
     img1 = self.get_resize(100, 'exif1.jpg')
     self.assertTrue(img1.size[0] < img1.size[1])
Exemple #13
0
 def test_exif_rotation(self):
     f1 = self.get_image('exif1.jpg')
     resize_image(f1, size=100, storage=default_storage)
     img1 = self.get_resize(100, 'exif1.jpg')
     self.assertTrue(img1.size[0] < img1.size[1])
 def handle(self, *args, **options):
     for image_path in args:
         with open(os.path.abspath(image_path), 'rb') as image_file:
             resize_image(image_file, options['resolution'], storage=None)
Exemple #15
0
def resize(img_file, size=100):
    try:
        return resize_image(img_file, size)
    except:
        logger.error('Resize failed', exc_info=True)
        return ''