Add preserve_svg option to api ImageRenditionField

pull/10295/head
Joshua Munn 2023-01-03 10:52:50 +00:00 zatwierdzone przez Matt Westcott
rodzic 34691bdd3a
commit b30bfa993f
1 zmienionych plików z 9 dodań i 2 usunięć

Wyświetl plik

@ -3,6 +3,7 @@ from collections import OrderedDict
from rest_framework.fields import Field
from ..models import SourceImageIOError
from ..utils import to_svg_safe_spec
class ImageRenditionField(Field):
@ -27,13 +28,19 @@ class ImageRenditionField(Field):
}
"""
def __init__(self, filter_spec, *args, **kwargs):
def __init__(self, filter_spec, preserve_svg=False, *args, **kwargs):
self.filter_spec = filter_spec
self.preserve_svg = preserve_svg
super().__init__(*args, **kwargs)
def to_representation(self, image):
try:
thumbnail = image.get_rendition(self.filter_spec)
if image.is_svg() and self.preserve_svg:
filter_spec = to_svg_safe_spec(self.filter_spec)
else:
filter_spec = self.filter_spec
thumbnail = image.get_rendition(filter_spec)
return OrderedDict(
[