示例#1
0
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
示例#2
0
    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
示例#3
0
    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
示例#4
0
    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
示例#5
0
 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
示例#6
0
    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'))