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
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)
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)
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)
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 ''
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)
def resize(img_file, size=100): try: return resize_image(img_file, size) except: logger.error('Resize failed', exc_info=True) return ''