diff --git a/wagtail/wagtailimages/tests/tests.py b/wagtail/wagtailimages/tests/tests.py index 3520d01d2..cc52e6758 100644 --- a/wagtail/wagtailimages/tests/tests.py +++ b/wagtail/wagtailimages/tests/tests.py @@ -171,7 +171,7 @@ class TestFrontendServeView(TestCase): # Check response self.assertEqual(response.status_code, 200) - self.assertEqual(response['Content-Type'], 'image/jpeg') + self.assertEqual(response['Content-Type'], 'image/png') def test_get_invalid_signature(self): """ diff --git a/wagtail/wagtailimages/views/frontend.py b/wagtail/wagtailimages/views/frontend.py index 6dcdbe048..a68803094 100644 --- a/wagtail/wagtailimages/views/frontend.py +++ b/wagtail/wagtailimages/views/frontend.py @@ -1,4 +1,5 @@ from wsgiref.util import FileWrapper +import imghdr from django.shortcuts import get_object_or_404 from django.http import HttpResponse @@ -18,6 +19,7 @@ def serve(request, signature, image_id, filter_spec): try: rendition = image.get_rendition(filter_spec) rendition.file.open('rb') - return HttpResponse(FileWrapper(rendition.file), content_type='image/jpeg') + image_format = imghdr.what(rendition.file) + return HttpResponse(FileWrapper(rendition.file), content_type='image/' + image_format) except InvalidFilterSpecError: return HttpResponse("Invalid filter spec: " + filter_spec, content_type='text/plain', status=400)