91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django 使用 PIL 壓縮圖片的例子

發布時間:2020-09-20 06:29:01 來源:腳本之家 閱讀:158 作者:兩鬢已不能斑白 欄目:開發技術

在最近做項目時,發現服務器上的圖片比較大,數據傳輸時會消耗很多流量,體驗非常不好。為了緩解這一現象,決定使用gzip壓縮數據流,但是發現gzip對于json數據的壓縮效果很好,但對于圖片的壓縮效果很差。無奈,只能寫一段代碼,將服務器上的圖片挨個壓縮一下。

我的服務器上的程序,是用django寫的,數據庫為sqlite,圖片文件存儲在media目錄下。

先看models.py,只有一個ImageField類型的變量picture,也就是一會壓縮圖片需要用到的變量。

class CrossPicture(models.Model):
  picture = models.ImageField(upload_to='cross_picture', blank=True, null=True)

Python有一個PIL庫,可以處理圖像,壓縮部分的代碼就是用PIL寫的

def compressImage(request):

  picture_list = models.CrossPicture.objects.all()

  for cp in picture_list:
    image = Image.open(cp.picture) # 通過cp.picture 獲得圖像 
    width = image.width 
    height = image.height
    rate = 1.0 # 壓縮率

    # 根據圖像大小設置壓縮率
    if width >= 2000 or height >= 2000:
      rate = 0.3
    elif width >= 1000 or height >= 1000:
      rate = 0.5
    elif width >= 500 or height >= 500:
      rate = 0.9  

    width = int(width * rate)  # 新的寬
    height = int(height * rate) # 新的高

    image.thumbnail((width, height), Image.ANTIALIAS) # 生成縮略圖
    image.save('media/' + str(cp.picture), 'JPEG')  # 保存到原路徑
    cp.save()
  return HttpResponse('compress ok')

以上這篇django 使用 PIL 壓縮圖片的例子就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒲江县| 静乐县| 深水埗区| 金川县| 阜康市| 沿河| 临沧市| 益阳市| 汉川市| 浦城县| 敦化市| 阜新市| 天等县| 虹口区| 黄平县| 祁东县| 吉隆县| 河间市| 中方县| 遂溪县| 万山特区| 涿鹿县| 井冈山市| 肇庆市| 贡觉县| 盐源县| 三台县| 益阳市| 江阴市| 吉林省| 禄劝| 富顺县| 红安县| 宁晋县| 克拉玛依市| 罗定市| 抚州市| 阳原县| 潮州市| 邯郸市| 江津市|