0
大多數上傳到我的網站的所有JPEG文件的保存在逐行掃描格式,但沒有通過SORL-縮略圖生成的縮略圖時,原始圖像生成漸進。在創建大圖像的縮略圖時,這非常重要,例如,用於在旋轉木馬/滑塊內顯示。SORL-縮略圖:保存的JPEG文件「先進性」
我已經sumbitted an issue上SORL的跟蹤器,但我想,也許您根據現有的自定義後端,可以解決這個問題。有任何想法嗎?
謝謝!
大多數上傳到我的網站的所有JPEG文件的保存在逐行掃描格式,但沒有通過SORL-縮略圖生成的縮略圖時,原始圖像生成漸進。在創建大圖像的縮略圖時,這非常重要,例如,用於在旋轉木馬/滑塊內顯示。SORL-縮略圖:保存的JPEG文件「先進性」
我已經sumbitted an issue上SORL的跟蹤器,但我想,也許您根據現有的自定義後端,可以解決這個問題。有任何想法嗎?
謝謝!
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
我只是測試了一個很像這樣的東西(大部分是PIL引擎的方法的複製粘貼)。在我的版本中,我沒有檢查格式是否爲JPEG(這確實是必要的?)。真正的問題是'image.progressive'。我使用Python 2.6.7和1.1.7 PIL,並嘗試這個答案時,該'image' PARAM沒有暴露的'progressive'屬性。然後我用'真',一切正常。那麼是什麼只留給這個答案是如何_detect_如果原始圖像是漸進式JPEG或沒有。 –
是否有任何傷害使他們都進步? – Thomas
我想沒有,只是一個一致性的事......不管怎樣,在這個方法很麻煩,以確定是否JPEG圖像是逐行或沒有,所以我接受你的答案,因爲它是我現在使用。 –