def test_standard(self): image = Image.new('RGB', (800, 600)) processed = processors.colorspace(image) self.assertEqual(processed.mode, 'RGB') image = Image.new('L', (800, 600)) processed = processors.colorspace(image) self.assertEqual(processed.mode, 'L')
def test_transparent(self): image = Image.new('RGBA', (800, 600)) processed = processors.colorspace(image) self.assertEqual(processed.mode, 'RGBA') image = Image.new('LA', (800, 600)) processed = processors.colorspace(image) self.assertEqual(processed.mode, 'LA')
def test_replace_alpha(self): image = Image.new('RGBA', (800, 600)) processed = processors.colorspace(image, replace_alpha='#fff') self.assertEqual(processed.mode, 'RGB') image = Image.new('LA', (800, 600)) processed = processors.colorspace(image, replace_alpha='#fff') self.assertEqual(processed.mode, 'RGB')
def test_transparent(self): image = Image.new('RGBA', (800, 600)) processed = processors.colorspace(image) self.assertEqual(processed.mode, 'RGBA') image = Image.new('LA', (800, 600)) processed = processors.colorspace(image) self.assertEqual(processed.mode, 'RGBA')
def test_replace_alpha(self): image = Image.new('RGBA', (800, 600)) self.assertEqual(image.load()[0, 0], (0, 0, 0, 0)) processed = processors.colorspace(image, replace_alpha='#fefdfc') self.assertEqual(processed.mode, 'RGB') self.assertEqual(processed.load()[0, 0], (254, 253, 252)) image = Image.new('LA', (800, 600)) self.assertEqual(image.load()[0, 0], (0, 0)) processed = processors.colorspace(image, replace_alpha='#fefdfc') self.assertEqual(processed.mode, 'L') self.assertEqual(processed.load()[0, 0], 253)
def test_bw(self): image = Image.new('RGB', (800, 600)) processed = processors.colorspace(image, bw=True) self.assertEqual(processed.mode, 'L') image = Image.new('RGBA', (800, 600)) processed = processors.colorspace(image, bw=True) self.assertEqual(processed.mode, 'LA') image = Image.new('L', (800, 600)) processed = processors.colorspace(image, bw=True) self.assertEqual(processed.mode, 'L') image = Image.new('LA', (800, 600)) processed = processors.colorspace(image, bw=True) self.assertEqual(processed.mode, 'LA')
def render(self, img): img = exif_orientation(img) img = colorspace(img) # img = autocrop(img) if self.poi[0] and self.poi[1]: source_x, source_y = [float(v) for v in img.size] target = [self.poi[0] / source_x, self.poi[1] / source_y] for i in range(2): if target[i] > 1.: target[i] = 100. else: target[i] *= 100 else: target = None img = scale_and_crop(img, self.size, crop=self.crop, upscale=self.upscale, zoom=self.zoom, target=target) # img = filters(img) # img = background(img) return img
def save_profile_image_from_url(user, avatar_url): try: req = requests.get(avatar_url) except requests.exceptions.RequestException: return False img = Image.open(StringIO(req.content)) img_path = get_user_profile_image_relpath(user, 'avatar.jpg') filename = '%s/%s' % (settings.MEDIA_ROOT, img_path) root, name, ext = split_filepath(filename) if not os.path.exists(root): os.makedirs(root) from easy_thumbnails.processors import colorspace img = colorspace(img) img.save('%s/%s' % (settings.MEDIA_ROOT, img_path)) img.close() try: user.profile_image = ThumbnailFile(img_path) user.save() except: return False return True
def save_temp_profile_image_from_url(sociallogin): if has_default_social_profile_image(sociallogin): return False try: req = requests.get(sociallogin.account.get_avatar_url()) except requests.exceptions.RequestException: return False img = Image.open(StringIO(req.content)) img_path = get_temp_user_profile_image_relpath(sociallogin) filepath = '%s/%s' % (settings.MEDIA_ROOT, img_path) root, name, ext = split_filepath(filepath) if not os.path.exists(root): os.makedirs(root) from easy_thumbnails.processors import colorspace img = colorspace(img) img.save(filepath) img.close() # Generate thumbnail for uploader img_file = open(filepath) thumbnailer = get_thumbnailer(img_file, relative_name=get_temp_user_profile_image_relpath(sociallogin)) thumbnailer.get_thumbnail(settings.THUMBNAIL_ALIASES['']['user_profile_uploader_thumbnail']) return True
def process(cls, image, matcher): from easy_thumbnails.processors import colorspace return colorspace(image)