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
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
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)