Ejemplo n.º 1
0
def material_thumbnail(request, object_id):
    obj = get_object_or_404(Material, pk=object_id)
    if not request.user.is_authenticated() and not obj.is_public:
        raise Http403
    mimetype = obj.mimetype
    filetype = obj.filetype
    width = int(request.GET.get('width', 320))
    height = int(request.GET.get('height', 240))
    if "image" == filetype:
        return utils.image_response(Image.open(obj.file), (width, height))
    else:
        response = HttpResponse(obj.file, mimetype=mimetype)
        return response
Ejemplo n.º 2
0
def material_preview(request, object_id):
    qs = Material.objects.all()
    obj = get_object_or_404(qs, pk=object_id)
    if not request.user.is_authenticated() and not obj.is_public:
        raise Http403
    if obj.filetype == 'image':
        w = settings.STORAGE_PREVIEW_WIDTH
        h = settings.STORAGE_PREVIEW_HEIGHT
        img = Image.open(obj.file)
        if settings.STORAGE_WATERMARK_PATH:
            return utils.watermark_response(img, Image.open(settings.STORAGE_WATERMARK_PATH), size=(w, h))
        else:
            return utils.image_response(img, size=(w, h))
    else:
        response = HttpResponse(obj.file, mimetype=obj.mimetype)
        return response
Ejemplo n.º 3
0
def material_digest(request, object_id):
    PATH = {
        'image': r'image/storage/Image.png',
        'audio': r'image/storage/Headphone.png',
        'archive': r'image/storage/Box.png',
        'text': r'image/storage/File.png',
        'application': r'image/storage/Software.png',
        'unknown': r'image/storage/Question 4.png',
    }
    SIZE = (172, 129)
    obj = get_object_or_404(Material, pk=object_id)
    if not request.user.is_authenticated() and not obj.is_public:
        raise Http403
    filetype = obj.filetype
    if filetype == 'image':
        img = Image.open(obj.file)
    else:
        filename = os.path.join(settings.MEDIA_ROOT, PATH[filetype])
        img = Image.open(filename)
    return utils.image_response(img, SIZE)