一文教會(huì)你使用Python批量縮放圖片
導(dǎo)讀
為了解決圖片被改變大小后,比例保持不變(這樣就不會(huì)變形了)
圖片需要壓縮,避免填圖后的word文件太大通過Image模塊中的resize函數(shù),就能給解決如上問題。我們還是先按“修改時(shí)間”順序獲取圖片文件夾下的所有圖片的完整路徑
實(shí)際演示階段
我們需要做的事情就是將圖一變?yōu)閳D二 圖一:

圖二:

進(jìn)行等比例縮小。
#將圖片按修改時(shí)間排序(這樣才能與圖片的描述一致),將路徑存入列表,以便后面逐個(gè)插入圖片時(shí)調(diào)用 import os path = "pictures" list_p = [path+"\\"+i for i in os.listdir(path)] #獲取圖片的文件名,并拼接完整路徑 list_p.sort(key=lambda path: os.path.getmtime(path)) #將列表中的文件按其修改時(shí)間排序,os.path.getmtime() 函數(shù)是獲取文件最后修改時(shí)間
list_p里面存放的就是該文件夾下的所有圖片路徑 'pictures\\z.jpg', 'pictures\\x.jpg', 'pictures\\w.jpg', 'pictures\\y.jpg', 'pictures\\orange-flowers-2471898.jpg', 'pictures\\lime-631389.jpg', 'pictures\\v.jpg',
然后導(dǎo)入Image模塊。for循環(huán)遍歷所有圖片的路徑,然后讀取圖片尺寸,x對(duì)應(yīng)寬度,y對(duì)應(yīng)高度。這里的單位是像素。壓縮圖片的關(guān)鍵參數(shù)是壓縮后的標(biāo)準(zhǔn)寬度x_s,我們Word模板中放置圖片的單元格寬度為6.25厘米。壓縮后的圖片分辨率是96,像素為230的時(shí)候,對(duì)應(yīng)長(zhǎng)度是6.1厘米。以上換算可參考鏈接www.gaitubao.com/tools/pixel… 。但是按230像素的寬度壓縮后,自動(dòng)填充到Word文檔中后,圖片寬度變成了8厘米,已經(jīng)超過單元格的寬度了。通過調(diào)試,最終將標(biāo)準(zhǔn)寬度設(shè)定為165像素,填入word中后,寬度是5.82厘米,比較適合單元格寬度。這個(gè)差異可能是換算的不精確導(dǎo)致。確定好標(biāo)準(zhǔn)寬度x_s后,高度y_s按照標(biāo)準(zhǔn)寬度乘上原始高寬比來確定,這樣就是保持比例壓縮,不會(huì)導(dǎo)致圖片變形。壓縮resize后,再保存到新的文件夾。
#按比例縮小圖片尺寸
from PIL import Image
for infile in list_p:
im = Image.open(infile)
(x,y) = im.size #讀取圖片尺寸(像素)
x_s = 165 #定義縮小后的標(biāo)準(zhǔn)寬度
y_s = int(y * x_s / x) #基于標(biāo)準(zhǔn)寬度計(jì)算縮小后的高度
out = im.resize((x_s,y_s),Image.ANTIALIAS) #改變尺寸,保持圖片高品質(zhì)
out.save('pictures_new\\{}'.format(infile.split("\\")[-1]))就這樣簡(jiǎn)單的幾步我們就得到了想要的結(jié)果把圖片壓縮成了:
壓縮前:

結(jié)果:

詳細(xì)介紹該庫(kù)
上面的介紹是不是很簡(jiǎn)單不過它只是PIL的一個(gè)功能下面我們?cè)敿?xì)介紹一下。
Python Imaging Library ( PIL ) 給 Python 增加了圖像處理能力。
這個(gè)庫(kù)提供了廣泛的文件格式支持,高效的內(nèi)部展現(xiàn),以及十分強(qiáng)大的圖像處理能力。
讓我們看看這個(gè)庫(kù)的幾種可能用法:
1· 圖像存儲(chǔ)
PIL 設(shè)計(jì)用于圖像歸檔和圖像批量處理,你可以使用它建立縮略圖,轉(zhuǎn)換格式,打印圖片等等?,F(xiàn)在的版本可以驗(yàn)證和讀取大量的圖片格式。寫入有意設(shè)計(jì)為只能寫入常用的文件格式。
2·圖像顯示 現(xiàn)在的版本包含了 Tk PhotoImage 和 BitmapImage 接口, 以及 Windows DIB interface,這有助于在 Windows 下使用。為了方便測(cè)試,還提供了 show() 方法,可以保存圖像到磁盤并顯示。
3·圖像處理 這個(gè)庫(kù)包含了基本的圖像處理功能,包括點(diǎn)操作,使用內(nèi)置卷積內(nèi)核過濾,色彩空間轉(zhuǎn)換。這個(gè)庫(kù)還支持更改圖像大小、旋轉(zhuǎn)、自由變換。有一個(gè)直方圖方法允許你統(tǒng)計(jì)圖像,這可以用于對(duì)比度增強(qiáng)和全局統(tǒng)計(jì)分析。
小面我貼一下文檔的一些入門介紹:

貼文檔做翻譯的事情我就不做了大家可以自己去看看。
文檔鏈接:傳送門
總結(jié)
到此這篇關(guān)于使用Python批量縮放圖片的文章就介紹到這了,更多相關(guān)Python批量縮放圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+OpenCV+圖片旋轉(zhuǎn)并用原底色填充新四角的例子
今天小編就為大家分享一篇Python+OpenCV+圖片旋轉(zhuǎn)并用原底色填充新四角的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python接口調(diào)用已訓(xùn)練好的caffe模型測(cè)試分類方法
今天小編就為大家分享一篇python接口調(diào)用已訓(xùn)練好的caffe模型測(cè)試分類方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python實(shí)現(xiàn)的檢測(cè)網(wǎng)站掛馬程序
這篇文章主要介紹了Python實(shí)現(xiàn)的檢測(cè)網(wǎng)站掛馬程序,需要的朋友可以參考下2014-11-11
python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)(三)
這篇文章主要為大家詳細(xì)介紹了python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)第三篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Python實(shí)現(xiàn)的下載網(wǎng)頁(yè)源碼功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的下載網(wǎng)頁(yè)源碼功能,涉及Python基于http請(qǐng)求與響應(yīng)實(shí)現(xiàn)的網(wǎng)頁(yè)源碼讀取功能相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
Python協(xié)程的四種實(shí)現(xiàn)方式總結(jié)
今天繼續(xù)給大家介紹Python關(guān)知識(shí),本文主要內(nèi)容是Python協(xié)程的四種實(shí)現(xiàn)方式。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01

