Python實現(xiàn)批量修改圖片大小
python 批量修改圖片大小
一個文件夾下面有好多圖片格式是jpg大小是1920*1080,把它們處理成1280*720并按原先圖片的名保存在另一路徑下 這里首先要找到給定路徑下所有的圖片文件,然后在修改圖片文件的大小,這里用到PIL和glob兩個庫:
# -*- coding: utf-8 -*- import os import glob from PIL import Image import os.path '''修改圖片文件大小jpgfile:圖片文件;savedir:修改后要保存的路徑''' def convertjpg(jpgfile,savedir,width=500,height=400): img=Image.open(jpgfile) new_img=img.resize((width,height),Image.BILINEAR) new_img.save(os.path.join(savedir,os.path.basename(jpgfile))) '''查找給定路徑下圖片文件,并修改其大小''' def modifyjpgSize(file,saveDir): for jpgfile in glob.glob(file): convertjpg(jpgfile,saveDir) #測試代碼 file = r'D:\test2\restImage\*.jpg' saveDir = r'D:\test2\outImage' modifyjpgSize(file,saveDir)
方法補充
除了上面的方法,小編還為大家整理了幾個好用的Python批量修改圖片尺寸大小的方法,希望對大家有所幫助
方法一
效果圖

實現(xiàn)
環(huán)境要求
安裝python3,測試時使用的是3.11版本,具體和環(huán)境配置可以百度一下,有很多教程
該腳本需要cmd窗口執(zhí)行下列語句安裝相關(guān)python庫
pip install Pillow
具體實現(xiàn)
新建一個.py的腳本
將下列代碼復(fù)制進去保存后運行
import os
import sys
from PIL import Image ## 需要 pip install Pillow 安裝相關(guān)插件
# 輸入相關(guān)參數(shù)
isEquals = True
while isEquals:
start_path = input("請輸入圖片所在目錄(可包含子文件夾):")
out_path = input("請輸入圖片生成目錄(同名會覆蓋):")
isEquals = False
if start_path == out_path :
print("\n所在目錄和生成目錄不能為同一個!\n")
isEquals = True
pass
# 讀取路徑下所有文件
isPrint = False
for root, dirs, files in os.walk(start_path):
#逐個讀取文件
for file in files:
path = root + "\\" + file
# 判斷是否是圖片文件
if ".png" in path or ".jpg" in path:
img = Image.open(path)
print("\n原始圖片分辨率(寬 * 高):" + str(img.size))
isPrint = True
break
if isPrint:
break
width = int(input("\n請輸入圖片寬度:"))
height = int(input("請輸入圖片高度:"))
print("\n所在目錄: " + start_path)
print("生成目錄: " + out_path)
print("目標(biāo)圖片寬高: " + str(width) + " * "+ str(height))
index = 0
# 讀取路徑下所有文件
for root, dirs, files in os.walk(start_path):
print("\n當(dāng)前路徑:" + root) # 打印路徑
# 輸入路徑
temp_path = out_path + root[len(start_path) : len(root)]
#判斷路徑是否存在
if not os.path.exists(temp_path):
os.mkdir(temp_path)
print("輸出路徑:" + temp_path) # 打印路徑
#逐個讀取修改文件
for file in files:
path = root + "\\" + file
save_path = temp_path + "\\" + file
# 判斷是否是圖片文件
if ".png" in path or ".jpg" in path:
img = Image.open(path)
im_resized = img.resize((width, height))
im_resized.save(save_path)
print("\n處理完成\n")
os.system("pause")方法二
import os
from PIL import Image
import re
# 圖像文件存儲路徑
Start_path='C:\\Users\\.....'
# 需要調(diào)整圖片的寬度與高度
pic_width=390
pic_depth=567
# 讀取路徑下的圖片文件
list=os.listdir(Start_path)
#print list
count=0
# 遍歷圖片文件名
for pic in list:
# 單個圖片的路徑
path=Start_path+pic
# 輸出文件名(含路徑)
print (path)
# 打開圖片文件 圖像句柄為im
im=Image.open(path)
# 返回im的寬度與高度
w,h=im.size
# 大于寬度修改
if w>pic_width:
print (pic)
print ("圖片名稱為"+pic+"圖片被修改")
# 按比例縮放
h_new=pic_width*h/w
w_new=pic_width
count=count+1
out = im.resize((w_new,h_new),Image.ANTIALIAS)
new_pic=re.sub(pic[:-4],pic[:-4]+'_new',pic)
#print new_pic
new_path=Start_path+new_pic
out.save(new_path)
# 大于高度修改
if h>pic_depth:
print (pic)
print ("圖片名稱為"+pic+"圖片被修改")
# 按比例縮放
w=pic_depth*w/h
h=pic_depth
count=count+1
out = im.resize((pic_width,pic_depth),Image.ANTIALIAS)
new_pic=re.sub(pic[:-4],pic[:-4]+'_new',pic)
#print new_pic
new_path=Start_path+new_pic
out.save(new_path)
print ('END')
count=str(count)
print ("共有"+count+"張圖片尺寸被修改")到此這篇關(guān)于Python實現(xiàn)批量修改圖片大小的文章就介紹到這了,更多相關(guān)Python修改圖片大小內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用matplotlib實現(xiàn)在同一個窗口繪制多個圖形
這篇文章主要介紹了使用matplotlib實現(xiàn)在同一個窗口繪制多個圖形問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
Python中keyboard的使用之監(jiān)控鍵盤的按鍵輸入
Python的keyboard模塊是一個強大的工具,用于監(jiān)聽和處理鍵盤事件,該模塊允許程序獲取鍵盤輸入,并執(zhí)行相應(yīng)操作,如監(jiān)聽、捕獲熱鍵、模擬鍵位和獲取鍵盤狀態(tài)等,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-11-11
使用Python requests實現(xiàn)Cookie登錄的全流程
這篇文章主要介紹了如何使用Python的requests庫自動化登錄一個需要復(fù)雜鑒權(quán)的網(wǎng)站,并生成報表,作者詳細描述了登錄過程中遇到的幾個問題,包括CSRF token、重定向處理和Cookie的使用,并提供了詳細的代碼示例和解決方法,需要的朋友可以參考下2026-03-03
Python3訪問并下載網(wǎng)頁內(nèi)容的方法
這篇文章主要介紹了Python3訪問并下載網(wǎng)頁內(nèi)容的方法,實例分析了Python頁面抓取及寫入文件的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
python實現(xiàn)彩色圖轉(zhuǎn)換成灰度圖
這篇文章主要為大家詳細介紹了python實現(xiàn)彩色圖轉(zhuǎn)換成灰度圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01

