1. 程式人生 > >Django 實現前端圖片壓縮

Django 實現前端圖片壓縮

思路:

<img alt="" src="/img/圖片真實地址" ></img>

上面是一個典型的HTML中的圖片,在django中,src對應的path會經過url進行過濾處理,所以可以通過寫view過濾器的方式來實現圖片壓縮,程式碼如下
url

url(r'^img/(?P<path>(.+))/$',img),

view

def img(request,path):
    im=Image.open(settings.STATIC_ROOT+path)
    x,y=im.size
    im=im.resize((int(x/1.5),int(y/1.5
)),Image.ANTIALIAS) response = HttpResponse(mimetype="image/png") #將PIL的image物件寫入response中,通過response返回 im.save(response, "PNG") return response

結論:通過類似於filter的方法可以實現圖片壓縮,且下一個請求該圖片時,會直接呼叫快取,並不會再次進行圖片壓縮。
注:對效能的影響會在驗證完成後上傳