中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

發布時間:2021-06-24 14:04:04 來源:億速云 閱讀:242 作者:小新 欄目:開發技術

小編給大家分享一下Python/Django后端如何使用PIL Image生成頭像縮略圖,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

具體內容如下

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):#使用原圖創建縮略圖
  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})

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

看完了這篇文章,相信你對“Python/Django后端如何使用PIL Image生成頭像縮略圖”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

朔州市| 和硕县| 明水县| 武陟县| 潢川县| 鄂尔多斯市| 湟中县| 寻乌县| 嘉峪关市| 炉霍县| 克山县| 武山县| 黄梅县| 板桥市| 疏勒县| 临清市| 都兰县| 木兰县| 溧阳市| 红安县| 平顶山市| 阳春市| 白沙| 四子王旗| 武川县| 二连浩特市| 磴口县| 海林市| 乡宁县| 商洛市| 盐边县| 铜鼓县| 滦平县| 绥宁县| 三河市| 临潭县| 响水县| 平安县| 营口市| 武汉市| 息烽县|