papiez_ipsum/src/papiezator/extenpopes/noir.py

34 lines
814 B
Python

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
from papiezator.pope_utils import get_pope, redis_me
from django.http import HttpResponse
from io import BytesIO
from PIL import Image
# FIXME: kind of fugly.
@redis_me("noir_pope")
def get_noir_pope(width, height, pope_id):
pope_buffer = BytesIO()
pope = get_pope(width, height, pope_id)
if not pope:
return None
pope = Image.open(BytesIO(pope)).convert("L")
pope.save(pope_buffer, "jpeg")
pope = pope_buffer
pope.seek(0)
return pope.read()
def view(request, width, height, pope_id=0):
width, height = int(width), int(height)
pope = get_noir_pope(width, height, pope_id)
if pope:
return HttpResponse(
pope,
content_type="image/jpeg"
)
return HttpResponse(':c')