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

PIL對(duì)上傳到Django的圖片進(jìn)行處理并保存的實(shí)例

 更新時(shí)間:2019年08月07日 13:48:23   作者:smartwu_sir  
今天小編就為大家分享一篇PIL對(duì)上傳到Django的圖片進(jìn)行處理并保存的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

1. 介紹

上傳的圖片文件:如

pic = request.FILES["picture"]
# pic是 <class 'django.core.files.uploadedfile.InMemoryUploadedFile'> 類(lèi)型的數(shù)據(jù)

# 而pillow的Image.open("./xxx.jpg") 則是:

<class 'PIL.JpegImagePlugin.JpegImageFile'> 類(lèi)型的數(shù)據(jù)

# 問(wèn)題是如何把InMemoryUploadedFile轉(zhuǎn)化為PIL類(lèi)型,并且處理之后再轉(zhuǎn)回InMemoryUploadedFile,并save

2. 把InMemoryUploadedFile轉(zhuǎn)化為PIL類(lèi)型

from PIL import Image

pic = request.FILES["picture"]
im_pic = Image.open(pic)
# 這樣就把InMemoryUploadedFile轉(zhuǎn)化為了PIL類(lèi)型數(shù)據(jù),pic是InMemoryUploadedFile,im_pic是PIL類(lèi)型

3. 處理PIL類(lèi)型的圖片數(shù)據(jù)

w, h = im_pic.size
if w >= h:
  w_start = (w-h)*0.618
  box = (w_start, 0, w_start+h, h)
  region = im_pic.crop(box)
else:
  h_start = (h-w)*0.618
  box = (0, h_start, w, h_start+w)
  region = im_pic.crop(box)

# region就是PIL處理后的正方形了

4. 將處理后的PIL類(lèi)型轉(zhuǎn)化為InMemoryUploadedFile類(lèi)型

from io import BytesIO
from django.core.files.uploadedfile import InMemoryUploadedFile

// 先保存到磁盤(pán)io
pic_io = BytesIO()
region.save(pic_io, im_pic.format)
// 再轉(zhuǎn)化為InMemoryUploadedFile數(shù)據(jù)
pic_file = InMemoryUploadedFile(
  file=pic_io,
  field_name=None,
  name=pic.name,
  content_type=pic.content_type,
  size=pic.size,
  charset=None
)

pic_file 就是region轉(zhuǎn)化后的InMemoryUploadedFile了

5. 保存InMemoryUploadedFile到數(shù)據(jù)庫(kù)

from ./models import Picture

p = Picture(picture=pic_file)
p.save()

以上這篇PIL對(duì)上傳到Django的圖片進(jìn)行處理并保存的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Ubuntu?Server?20.04?LTS?環(huán)境下搭建vim?編輯器Python?IDE的詳細(xì)步驟

    Ubuntu?Server?20.04?LTS?環(huán)境下搭建vim?編輯器Python?IDE的詳細(xì)步驟

    這篇文章主要介紹了Ubuntu?Server?20.04?LTS?環(huán)境下搭建vim?編輯器Python?IDE,首先是安裝配置vim-plug及安裝coc.nvim插件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Python基礎(chǔ)篇之字符串的最全常用操作方法匯總

    Python基礎(chǔ)篇之字符串的最全常用操作方法匯總

    我們?cè)趯W(xué)習(xí)Python語(yǔ)言時(shí)會(huì)遇到各種各樣的字符串方法處理,下面這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)篇之字符串的最全常用操作方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • python selenium自動(dòng)化測(cè)試框架搭建的方法步驟

    python selenium自動(dòng)化測(cè)試框架搭建的方法步驟

    這篇文章主要介紹了python selenium自動(dòng)化測(cè)試框架搭建的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • python實(shí)現(xiàn)拓?fù)渑判虻姆椒ú襟E

    python實(shí)現(xiàn)拓?fù)渑判虻姆椒ú襟E

    拓?fù)渑判蚴菍?duì)有向無(wú)環(huán)圖進(jìn)行排序的一種算法,本文主要介紹了python實(shí)現(xiàn)拓?fù)渑判虻姆椒ú襟E,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • pycharm 對(duì)代碼做靜態(tài)檢查操作

    pycharm 對(duì)代碼做靜態(tài)檢查操作

    這篇文章主要介紹了pycharm 對(duì)代碼做靜態(tài)檢查操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Tensorflow實(shí)現(xiàn)在訓(xùn)練好的模型上進(jìn)行測(cè)試

    Tensorflow實(shí)現(xiàn)在訓(xùn)練好的模型上進(jìn)行測(cè)試

    今天小編就為大家分享一篇Tensorflow實(shí)現(xiàn)在訓(xùn)練好的模型上進(jìn)行測(cè)試,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Tensorflow中的dropout的使用方法

    Tensorflow中的dropout的使用方法

    這篇文章主要介紹了Tensorflow中的dropout的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • python實(shí)現(xiàn)簡(jiǎn)單的井字棋小游戲

    python實(shí)現(xiàn)簡(jiǎn)單的井字棋小游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單的井字棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Python查找函數(shù)f(x)=0根的解決方法

    Python查找函數(shù)f(x)=0根的解決方法

    這篇文章主要介紹了Python查找函數(shù)f(x)=0根的解決方法,涉及Python數(shù)學(xué)運(yùn)算函數(shù)求解的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 解決Django migrate不能發(fā)現(xiàn)app.models的表問(wèn)題

    解決Django migrate不能發(fā)現(xiàn)app.models的表問(wèn)題

    今天小編就為大家分享一篇解決Django migrate不能發(fā)現(xiàn)app.models的表問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08

最新評(píng)論

迁西县| 武宁县| 庐江县| 含山县| 贵州省| 连云港市| 沅陵县| 徐闻县| 荥阳市| 潼南县| 民丰县| 新津县| 那坡县| 大安市| 台中县| 卢龙县| 县级市| 无棣县| 宝丰县| 永年县| 全州县| 安顺市| 禄丰县| 筠连县| 清镇市| 九台市| 浠水县| 方城县| 文化| 新营市| 浦东新区| 呼和浩特市| 唐河县| 和静县| 常德市| 凤翔县| 新丰县| 苗栗县| 大名县| 江西省| 台东县|