def photo_dwnl(request, photo_id, **kwargs): photo = get_object_or_404(Photo.objects.all(), pk=photo_id) path = photo.image.path # Get file path if not os.path.isfile(path): raise Http404 content_type = mimetypes.guess_type(path)[0] try: wm = Watermark.objects.get(name='main', is_active=True) except Watermark.DoesNotExist: file = open(path, 'r') length = os.path.getsize(path) # not FileField instance else: try: target = Image.open(photo.image.path) mark = Image.open(wm.image.path) except IOError: file = open(path, 'r') length = os.path.getsize(path) # not FileField instance else: pos = determine_position('br', target, mark) file = StringIO.StringIO() target = watermark(target, mark, pos, opacity=1) target.save(file, format='JPEG') file.read = file.getvalue length = file.len response = HttpResponse(content=file.read(), content_type=content_type, mimetype='application/force-download') response['Content-Length'] = length response['Content-Disposition'] = 'attachment; filename=%s' %\ smart_str(os.path.basename(path)) # same here return response
def create_watermark(self, target, mark, path, quality=QUALITY, **kwargs): """Create the watermarked image on the filesystem""" im = utils.watermark(target, mark, **kwargs) im.save(path, quality=quality) return im
def create_watermark(self, target, mark, path, quality=QUALITY, **kwargs): """Create the watermarked image on the filesystem""" im = utils.watermark(target, mark, **kwargs) #im.save(path, quality=quality) path = path.split('static')[-1] store_image_to_s3(im, path, quality, 'jpeg') return im
def create_watermark(self, target, mark, fpath, quality=QUALITY, **kwargs): """ Create the watermarked image on the filesystem """ im = utils.watermark(target, mark, **kwargs) if target.format == 'JPEG' and im.mode.endswith('A'): im = im.convert(im.mode[:-1]) im.save(fpath, quality=quality) return im
def test_watermarker(self): im = Image.open(path('watermarker/test.png')) mark = Image.open(path('watermarker/overlay.png')) watermark(im, mark, tile=True, opacity=0.5, rotation=30).save(path('images/test1.png')) watermark(im, mark, scale='F').save(path('images/test2.png')) watermark(im, mark, position=(100, 100), opacity=0.5, greyscale=True, rotation=-45).save(path('images/test3.png')) watermark(im, mark, position='C', tile=False, opacity=0.2, scale=2, rotation=30).save(path('images/test4.png'))