+
+
+class ThumbnailBackend(sorl.thumbnail.base.ThumbnailBackend):
+ def _create_alternative_resolutions(self, source_image, geometry_string, options, name):
+ super()._create_alternative_resolutions(source_image, geometry_string, options, name)
+ # create .webp alternative, to be served to appropriate browsers
+ ratio = default.engine.get_image_ratio(source_image, options)
+ geometry = parse_geometry(geometry_string, ratio)
+ options = options.copy()
+ options['format'] = 'WEBP'
+ image = default.engine.create(source_image, geometry, options)
+ thumbnail_name = '%(file_name)s.webp' % {'file_name': name}
+ thumbnail = ImageFile(thumbnail_name, default.storage)
+ default.engine.write(image, options, thumbnail)
+ size = default.engine.get_image_size(image)
+ thumbnail.set_size(size)