class MyImagesPipeline(ImagesPipeline):
def convert_image(self, image, size=None):
if image.format == 'PNG' and image.mode == 'RGBA':
background = Image.new('RGBA', image.size, (255, 255, 255))
background.paste(image, image)
image = background.convert('RGB')
elif image.mode != 'RGB':
image = image.convert('RGB')
if size:
image = image.copy()
# if height is specified
try:
size[1]
image.thumbnail(size, Image.ANTIALIAS)
except:
basewidth = size[0] # the size from the settings.py
wpercent = (basewidth/float(image.size[0]))
hsize = int((float(image.size[1])*float(wpercent)))
image.thumbnail((basewidth,hsize), Image.ANTIALIAS)
buf = StringIO()
image.save(buf, 'JPEG', quality=85)
return image, buf
#Name download version
def image_key(self, url):
image_guid = url.split('/')[-1]
return 'full/%s.jpg' % (image_guid)
#Name thumbnail version
def thumb_key(self, url, thumb_id):
image_guid = thumb_id + url.split('/')[-1]
return 'thumbs/%s/%s.jpg' % (thumb_id, image_guid)
def get_media_requests(self, item, info):
# yield Request(item['images'])