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)文章
使用keras實現(xiàn)孿生網(wǎng)絡(luò)中的權(quán)值共享教程
這篇文章主要介紹了使用keras實現(xiàn)孿生網(wǎng)絡(luò)中的權(quán)值共享教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06python列表插入append(), extend(), insert()用法詳解
在本篇文章里小編給大家整理了關(guān)于python列表插入append(), extend(), insert()用法以及相關(guān)知識點,有需要的朋友們參考下。2019-09-09python人工智能tensorflow構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)CNN
學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)已經(jīng)有一段時間,從普通的BP神經(jīng)網(wǎng)絡(luò)到LSTM長短期記憶網(wǎng)絡(luò)都有一定的了解,但是從未系統(tǒng)的把整個神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)記錄下來,我相信這些小記錄可以幫助我更加深刻的理解神經(jīng)網(wǎng)絡(luò)2022-05-05Python自動化辦公之讀取Excel數(shù)據(jù)的實現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何通過Python實現(xiàn)Excel數(shù)據(jù)的讀取,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定幫助,需要的可以參考一下2022-05-05Python利用keyboard模塊實現(xiàn)鍵盤記錄操作
模擬鍵盤操作執(zhí)行自動化任務(wù),我們常用的有pyautowin等自動化操作模塊。今天介紹的這個模塊叫做keyboard,它是純Python原生開發(fā),編譯時完全不需要依賴C語言模塊。一行命令就能完成安裝,非常方便,需要的可以了解一下2022-10-10