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

Python/Django后端使用PIL Image生成頭像縮略圖

 更新時間:2019年04月30日 09:16:19   作者:Lockeyi  
這篇文章主要為大家詳細介紹了Python/Django后端使用PIL Image生成頭像縮略圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Python/Django后端使用PIL Image生成頭像縮略圖的具體代碼,供大家參考,具體內(nèi)容如下

import os
from django.views.generic import View
from myapp.models import User
from PIL import Image

def make_thumbnail(infile,thumbnail_dir):
 size = (156, 156)
 if not os.path.exists(thumbnail_dir):#判斷縮略圖存儲目錄是否存在then新建
 os.mkdir(thumbnail_dir)
 outfile = os.path.join( thumbnail_dir, os.path.basename(infile))
 try:
 im = Image.open(infile)#Key Point
 im.thumbnail(size)#Key Point
 im.save(outfile, "JPEG")#Key Point
 return True
 except IOError, err:
 print("cannot create thumbnail for", infile,err)
 return False

class Useravatar(View):
 def __init__(self):
 self.thumbnail_dir = os.path.join(STATIC_ROOT, 'avatar/thumbnails')
 self.dest_dir = os.path.join(STATIC_ROOT, 'avatar/origin_imgs')

 @method_decorator(login_required)
 def post(self, request):
 nt_id = request.session.get('nt_id', 'default')
 user = User.objects.get(pk=nt_id) if User.objects.filter(pk=nt_id).exists() else None
 avatarImg = request.FILES['avatar']
 if not os.path.exists(self.dest_dir):#判斷原圖存儲目錄是否存在then新建
  os.mkdir(self.dest_dir)
 dest = os.path.join(self.dest_dir, nt_id+"_avatar.jpg")
 with open(dest, "wb+") as destination:#先保存原圖
  for chunk in avatarImg.chunks():
  destination.write(chunk)
 if make_thumb(dest,self.thumbnail_dir):#使用原圖創(chuàng)建縮略圖
  avartaPath = os.path.join(STATIC_URL, 'avatar/thumbnails', nt_id + "_avatar.jpg")
 else:
  avartaPath = os.path.join(STATIC_URL, 'avatar/origin_imgs', nt_id + "_avatar.jpg")

 User.objects.filter(nt_id=nt_id).update(avatar=avartaPath)
 return render(request, 'profile.html', {'user': user})

示例代碼中將制作縮略圖的函數(shù)從基于類的視圖中分離出來了(為了清晰起見),實際編程過程中可以定義為類方法方面調(diào)用。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用python實現(xiàn)一個簡單計算器(完整DEMO)

    用python實現(xiàn)一個簡單計算器(完整DEMO)

    這篇文章主要介紹了用python實現(xiàn)一個簡單計算器(完整DEMO),需要的朋友可以參考下
    2020-10-10
  • 使用python 對驗證碼圖片進行降噪處理

    使用python 對驗證碼圖片進行降噪處理

    今天小編就為大家分享一篇使用python 對驗證碼圖片進行降噪處理,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 對python numpy.array插入一行或一列的方法詳解

    對python numpy.array插入一行或一列的方法詳解

    今天小編就為大家分享一篇對python numpy.array插入一行或一列的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python實現(xiàn)發(fā)送帶有pdf附件的電子郵件

    Python實現(xiàn)發(fā)送帶有pdf附件的電子郵件

    使用Python發(fā)郵件,是個簡單的話題,可是如何可以優(yōu)雅的輕松的群發(fā)郵件,并附加PDF附件,是很多小伙伴的日常工作。本文就來和大家分享一下實現(xiàn)方法,需要的可以參考一下
    2023-02-02
  • Python進度條神器tqdm使用實例詳解

    Python進度條神器tqdm使用實例詳解

    Python進度條神器tqdm是一個快速、可擴展的進度條工具,可以輕松地為Python腳本添加進度條。它可以在循環(huán)中自動計算進度,并在終端中顯示進度條,讓用戶了解程序的運行情況。tqdm還支持多線程和多進程,并且可以自定義進度條的樣式和顯示方式。
    2023-06-06
  • 使用tensorflow實現(xiàn)線性svm

    使用tensorflow實現(xiàn)線性svm

    這篇文章主要為大家詳細介紹了使用tensorflow實現(xiàn)線性svm的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • scrapy頭部修改的方法詳解

    scrapy頭部修改的方法詳解

    這篇文章主要給大家介紹了關(guān)于scrapy頭部修改的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 一個非常簡單好用的Python圖形界面庫(PysimpleGUI)

    一個非常簡單好用的Python圖形界面庫(PysimpleGUI)

    這篇文章主要介紹了一個非常簡單好用的Python圖形界面庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • pycharm?終端部啟用虛擬環(huán)境詳情

    pycharm?終端部啟用虛擬環(huán)境詳情

    這篇文章主要介紹了pycharm?終端部啟用虛擬環(huán)境詳情,文章圍繞pycharm?終端部啟用虛擬環(huán)境商務(wù)相關(guān)資料展開全文章的詳細內(nèi)容,需要的小伙伴可以參考一下
    2021-12-12
  • 詳解Python垃圾回收機制和常量池的驗證

    詳解Python垃圾回收機制和常量池的驗證

    這篇文章主要介紹了詳解Python垃圾回收機制和常量池的驗證,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03

最新評論

历史| 中牟县| 瑞昌市| 绥中县| 金门县| 沂水县| 遂宁市| 定边县| 河北省| 嘉义县| 兴隆县| 宽城| 东丽区| 永济市| 尚志市| 双鸭山市| 广德县| 闽清县| 阜新| 黔江区| 蒙阴县| 大兴区| 拉孜县| 嘉峪关市| 禄丰县| 内乡县| 泰州市| 南平市| 城口县| 宁津县| 拉萨市| 茶陵县| 偃师市| 武义县| 永泰县| 安顺市| 屏边| 理塘县| 宜春市| 建湖县| 宁南县|