亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

python實現批量修改圖片格式和尺寸

2020-02-15 21:42:01
字體:
來源:轉載
供稿:網友

本文實例為大家分享了python批量處理圖片的具體代碼,供大家參考,具體內容如下

公司的一個項目要求把所有4096x4096的圖片全部轉化成2048x2048的圖片,這種批量轉換圖片大小的軟件網上很多,我的同事原來使用的美圖看看的批量轉換,但是稍微有點麻煩,每次還需要指定要轉換的圖片的輸入路徑和輸出路徑,而且每次都只能處理一個文件夾,很繁瑣,于是我想到了萬能的Python,然后寫了一個腳本來批量處理圖片,同一個根目錄下的所有文件夾的子文件等的圖片全部會處理掉。

代碼中還加入了很多的異常捕獲機制和提示,希望對大家有幫助。

備注:

1.導入了PIL庫,是處理圖片用的,很強大;

2.導入了win32庫,是判斷隱藏文件用的,我們的項目需要刪除隱藏文件,不需要的可以直接找到刪除。

3.導入send2trash庫,是把刪除的文件放進垃圾箱,而不是永久刪除,這個我只是防止刪除有用的文件而搞得,有點嚴謹了是吧,不需要的可以刪掉啊。

4.我這個腳本是Python2.7編寫的,但是在處理中文編碼的時候非常惡心,盡管最后被我解決了,這個解決的方法,我隨后會再單獨寫一篇,但是此刻我是建議大家不要用2.x版本的python 了。據說3.x的版本的已經解決了編碼的問題。希望大家聽我的建議。

#coding=utf-8 import sys import os, glob import platform import win32file,win32con from PIL import Image from send2trash import send2trash  reload(sys) sys.setdefaultencoding('utf-8')  #new_width =2048 #width =int(raw_input("the width U want:")) #imgslist = glob.glob(path+'/*.*')  ShuiPing="水平" ShiZhuang="矢狀" GuanZhuang="冠狀"  def Py_Log(_string):   print "----"+_string.decode('utf-8')+"----"  def is_windows_system():   return 'Windows' in platform.system()  def is_hiden_file(file_Path):    if is_windows_system():      fileAttr = win32file.GetFileAttributes(file_Path)     if fileAttr & win32con.FILE_ATTRIBUTE_HIDDEN :        return True      return False    return False  def remove_hidden_file(file_path):   send2trash(file_path)   print "Delete hidden file path:"+file_path  def astrcmp(str1,str2):   return str1.lower()==str2.lower()  def resize_image(img_path):   try:     mPath, ext = os.path.splitext(img_path)     if (astrcmp(ext,".png") or astrcmp(ext,".jpg")):       img = Image.open(img_path)       (width,height) = img.size              if(width != new_width):         new_height = int(height * new_width / width)         out = img.resize((new_width,new_height),Image.ANTIALIAS)         new_file_name = '%s%s' %(mPath,ext)         out.save(new_file_name,quality=100)         Py_Log("圖片尺寸修改為:"+str(new_width))       else:         Py_Log("圖片尺寸正確,未修改")     else:       Py_Log("非圖片格式")   except Exception,e:     print e  #改變圖片類型 def change_img_type(img_path):   try:     img = Image.open(img_path)     img.save('new_type.png')   except Exception,e:     print e  #處理遠程圖片 def handle_remote_img(img_url):   try:     request = urllib2.Request(img_url)     img_data = urllib2.urlopen(request).read()     img_buffer = StringIO.StringIO(img_data)     img = Image.open(img_buffer)     img.save('remote.jpg')     (width,height) = img.size     out = img.resize((200,height * 200 / width),Image.ANTIALIAS)     out.save('remote_small.jpg')   except Exception,e:     print e  def rename_forder(forder_path):   Py_Log("------------rename_forder--------------------------")   names = os.path.split(forder_path)   try:     if(unicode(ShuiPing) in unicode(names[1],'gbk')):       os.rename(forder_path,names[0]+"http://"+"01")       Py_Log(names[1]+"-->"+"01")     if(unicode(ShiZhuang) in unicode(names[1],'gbk')):       os.rename(forder_path,names[0]+"http://"+"02")       Py_Log(names[1]+"-->"+"02")     if(unicode(GuanZhuang) in unicode(names[1],'gbk')):       os.rename(forder_path,names[0]+"http://"+"03")       Py_Log(names[1]+"-->"+"03")   except Exception,e:     print e  def BFS_Dir(dirPath, dirCallback = None, fileCallback = None):   queue = []   ret = []   queue.append(dirPath);   while len(queue) > 0:     tmp = queue.pop(0)     if(os.path.isdir(tmp)):       ret.append(tmp)       for item in os.listdir(tmp):         queue.append(os.path.join(tmp, item))       if dirCallback:         dirCallback(tmp)     elif(os.path.isfile(tmp)):       ret.append(tmp)       if fileCallback:         fileCallback(tmp)   return ret  def DFS_Dir(dirPath, dirCallback = None, fileCallback = None):   stack = []   ret = []   stack.append(dirPath);   while len(stack) > 0:     tmp = stack.pop(len(stack) - 1)     if(os.path.isdir(tmp)):       ret.append(tmp)       for item in os.listdir(tmp):         stack.append(os.path.join(tmp, item))       if dirCallback:         dirCallback(tmp)     elif(os.path.isfile(tmp)):       ret.append(tmp)       if fileCallback:         fileCallback(tmp)   return ret  def printDir(dirPath):   print "dir: " + dirPath   if(is_hiden_file(dirPath)):     remove_hidden_file(dirPath)   else:     rename_forder(dirPath)  def printFile(dirPath):   print "file: " + dirPath   resize_image(dirPath)   return True   if __name__ == '__main__':   while True:     path = raw_input("Path:")     new_width =int(raw_input("the width U want:"))     try:       b = BFS_Dir(path , printDir, printFile)       Py_Log ("/r/n   **********/r/n"+"*********圖片處理完畢*********"+"/r/n  **********/r/n")     except:       print "Unexpected error:", sys.exc_info()     raw_input('press enter key to rehandle')             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电影网在线| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品99免视看9| 欧美成年人视频网站| 亚洲欧美激情另类校园| 九色91av视频| 97在线视频免费播放| 96国产粉嫩美女| 中文字幕在线成人| 日韩中文字幕在线| 久久久久久久97| 国产精品自拍网| 热久久这里只有| 国产综合视频在线观看| 成人欧美一区二区三区在线湿哒哒| 欧美激情视频给我| 国产丝袜精品第一页| 亚洲激情小视频| 九九久久综合网站| 久久久久久国产精品美女| 久久视频精品在线| 国产精品久久久久福利| 最近2019年手机中文字幕| 亚洲精品456在线播放狼人| 色偷偷亚洲男人天堂| 成人a在线视频| 一区三区二区视频| 91视频国产一区| 欧美午夜视频在线观看| 在线性视频日韩欧美| 久久久久久久久久国产| 国产精品视频自在线| 欧美福利在线观看| 成人h片在线播放免费网站| 亚洲欧美一区二区三区四区| 欧亚精品中文字幕| 国模私拍视频一区| 国产精品国产三级国产aⅴ浪潮| 国产噜噜噜噜噜久久久久久久久| 亚洲国产日韩欧美在线图片| 国产自摸综合网| 亚洲精品自拍第一页| 欧美高清在线视频观看不卡| 日韩欧美在线网址| 欧美电影第一页| 国产精品视频免费在线| 日韩欧美在线播放| 亚洲精品久久视频| 亚洲天堂av在线播放| 少妇激情综合网| 欧美国产中文字幕| 色伦专区97中文字幕| 91av在线不卡| 中文字幕av一区中文字幕天堂| 日韩欧美精品网站| 国产精品海角社区在线观看| 狠狠综合久久av一区二区小说| 亚洲激情在线观看| 亚洲精品美女久久| 欧美性猛交99久久久久99按摩| 亚洲精品欧美一区二区三区| 九九久久精品一区| 国产精品一区二区三区免费视频| 91国自产精品中文字幕亚洲| 2019中文字幕在线免费观看| 日韩欧美亚洲一二三区| 91精品国产色综合| 精品一区二区三区四区| 国产精品欧美亚洲777777| 少妇高潮 亚洲精品| 91地址最新发布| 秋霞成人午夜鲁丝一区二区三区| 日本成人激情视频| 欧美在线视频导航| 欧美性xxxxxxx| 日韩中文综合网| 中文字幕在线观看日韩| 午夜欧美不卡精品aaaaa| 奇米一区二区三区四区久久| 久久久久久久久久久av| 久久这里只有精品99| 欧美另类在线观看| 欧美极品美女视频网站在线观看免费| 91色琪琪电影亚洲精品久久| 91久久嫩草影院一区二区| 久久在精品线影院精品国产| 国产精品自产拍在线观| 狠狠色狠狠色综合日日五| 26uuu国产精品视频| 91精品啪在线观看麻豆免费| 国产日韩欧美成人| 狠狠做深爱婷婷久久综合一区| 国产综合视频在线观看| 亚洲性69xxxbbb| 亚洲国产免费av| 亚洲激情视频网站| 欧美www在线| 日本亚洲欧美成人| 久久久久久久久国产精品| 久久精品国产69国产精品亚洲| 亚洲图片制服诱惑| 亚洲欧美日韩第一区| 国产精品美女久久久久久免费| 精品久久香蕉国产线看观看gif| 亚洲另类激情图| 国产欧美一区二区三区四区| 国产美女精品免费电影| 国产精品久久久久久av下载红粉| 日韩欧美视频一区二区三区| 国产一区视频在线| 国产视频在线观看一区二区| 久久福利视频导航| 疯狂做受xxxx欧美肥白少妇| 久久久国产一区| 欧美在线视频一区二区| 人妖精品videosex性欧美| 欧洲成人午夜免费大片| 久久人人爽人人爽爽久久| 日韩美女视频在线观看| 一区二区欧美在线| 欧美激情一区二区久久久| 欧美亚洲国产视频| 国产精品视频xxx| 久久精品电影一区二区| 亚洲欧美日韩在线高清直播| 这里只有精品在线播放| 欧美有码在线观看视频| 欧美日本精品在线| 日韩欧美视频一区二区三区| 国产成人综合久久| 国产精品视频导航| 久久精品这里热有精品| 久久五月天色综合| 亚洲全黄一级网站| 国产视频丨精品|在线观看| 欧美日韩激情网| 日韩av免费一区| 免费97视频在线精品国自产拍| 久久97精品久久久久久久不卡| 国产精品一区二区久久| 午夜精品福利在线观看| 亚洲欧美在线x视频| 日韩中文在线中文网在线观看| 夜夜嗨av色综合久久久综合网| 亚洲一区第一页| 欧美大片免费观看| 4438全国亚洲精品在线观看视频| 日韩性xxxx爱| 欧美性高潮床叫视频| 亲子乱一区二区三区电影| 亚洲国产精品人久久电影| 亚洲精品欧美一区二区三区| 亚洲精品一区中文字幕乱码| 97视频在线播放| 一区二区在线免费视频| 97热在线精品视频在线观看| 91sao在线观看国产| 久久99精品久久久久久噜噜| 欧美日韩中文在线观看| 亚洲精品久久久久久下一站| 中文字幕日韩av电影| 欧美激情中文网| 欧美性受xxxx白人性爽| 一区二区欧美久久|