sorl-thumbnail:保留JPEG文件的“渐进性”

时间:2011-08-28 15:33:20

标签: django image jpeg sorl-thumbnail

上传到我网站的大多数JPEG文件都以渐进格式保存,但是当原始图像显示时,没有生成sorl-thumbnail生成的缩略图。这在创建大图像的缩略图时非常重要,例如,用于在旋转木马/滑块内显示。

我已经在sorl的跟踪器上发送了an issue,但我认为可能会根据现有的后端创建自定义后端,可以解决问题。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

from sorl.thumbnail.engines import pil_engine

class ProgressiveBackend(pil_engine.Engine):
    def _get_raw_data(self, image, format_, quality):
        ImageFile.MAXBLOCK = 1024 * 1024
        buf = StringIO()
        try:
            if format_=='JPEG':
                image.save(buf, format=format_, quality=quality, optimize=1, progressive=image.progressive)
            else:
                image.save(buf, format=format_, quality=quality, optimize=1)
        except IOError:
            image.save(buf, format=format_, quality=quality)
        raw_data = buf.getvalue()
        buf.close()
        return raw_data