最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django 使用 PIL 壓縮圖片的例子

 更新時(shí)間:2019年08月16日 16:41:09   作者:兩鬢已不能斑白  
今天小編就為大家分享一篇django 使用 PIL 壓縮圖片的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

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

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

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

Python有一個(gè)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 # 壓縮率

    # 根據(jù)圖像大小設(shè)置壓縮率
    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 壓縮圖片的例子就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中__str__()方法的實(shí)用技巧分享

    Python中__str__()方法的實(shí)用技巧分享

    在Python編程中,__str__()是一個(gè)特殊方法,它允許自定義對象的字符串表示形式,本文將深入探討__str__()的相關(guān)實(shí)用技巧,希望對大家有所幫助
    2023-11-11
  • PyQt5實(shí)現(xiàn)界面(頁面)跳轉(zhuǎn)的示例代碼

    PyQt5實(shí)現(xiàn)界面(頁面)跳轉(zhuǎn)的示例代碼

    這篇文章主要介紹了PyQt5實(shí)現(xiàn)界面跳轉(zhuǎn)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • django rest framework serializer返回時(shí)間自動格式化方法

    django rest framework serializer返回時(shí)間自動格式化方法

    這篇文章主要介紹了django rest framework serializer返回時(shí)間自動格式化方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 深入了解python中的常見錯(cuò)誤類型與解決

    深入了解python中的常見錯(cuò)誤類型與解決

    在Python編程過程中,經(jīng)常會遇到各種錯(cuò)誤,了解這些錯(cuò)誤的類型以及如何處理它們是成為一位優(yōu)秀的Python開發(fā)者所必備的技能之一,下面就跟隨小編一起學(xué)習(xí)一下python中的常見錯(cuò)誤類型吧
    2023-11-11
  • 利用Python實(shí)現(xiàn)自動生成小學(xué)生計(jì)算題

    利用Python實(shí)現(xiàn)自動生成小學(xué)生計(jì)算題

    過年期間發(fā)現(xiàn)小外甥已經(jīng)上小學(xué)了,我姐說老師今天給他們布置了寒假作業(yè):每天堅(jiān)持做乘法和加減法混合運(yùn)算。這我必須幫幫忙,用Python寫了一段自動生成小學(xué)生計(jì)算題的代碼,希望外甥不要太感謝我
    2023-02-02
  • 在django中圖片上傳的格式校驗(yàn)及大小方法

    在django中圖片上傳的格式校驗(yàn)及大小方法

    今天小編就為大家分享一篇在django中圖片上傳的格式校驗(yàn)及大小方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python中處理YAML文件的正確方法

    Python中處理YAML文件的正確方法

    在現(xiàn)代軟件開發(fā)中,YAML(YAML Ain’t Markup Language)因其簡潔和易于閱讀的特性,被廣泛用于配置文件,Python 作為一種流行的編程語言,提供了多種處理 YAML 文件的庫,本文給大家介紹了Python中處理YAML文件的正確方法,需要的朋友可以參考下
    2024-11-11
  • python搭建簡易服務(wù)器分析與實(shí)現(xiàn)

    python搭建簡易服務(wù)器分析與實(shí)現(xiàn)

    本文將介紹python搭建簡易服務(wù)器實(shí)現(xiàn)步驟,需要了解的朋友可以參考下
    2012-12-12
  • python3.8下載及安裝步驟詳解

    python3.8下載及安裝步驟詳解

    這篇文章主要介紹了python3.8下載及安裝步驟詳解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • flask 使用 flask_apscheduler 做定時(shí)循環(huán)任務(wù)的實(shí)現(xiàn)

    flask 使用 flask_apscheduler 做定時(shí)循環(huán)任務(wù)的實(shí)現(xiàn)

    這篇文章主要介紹了flask 使用 flask_apscheduler 做定時(shí)循環(huán)任務(wù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評論

社旗县| 永德县| 揭阳市| 桐柏县| 文化| 仲巴县| 正安县| 永宁县| 怀柔区| 博乐市| 巨鹿县| 康乐县| 潞西市| 斗六市| 札达县| 嘉祥县| 连云港市| 桐城市| 长沙县| 太仆寺旗| 四会市| 蒙城县| 会泽县| 越西县| 安福县| 峡江县| 永昌县| 鄄城县| 开江县| 伊金霍洛旗| 台东县| 合江县| 法库县| 凤山县| 永济市| 金阳县| 怀安县| 会昌县| 剑川县| 大宁县| 普格县|