Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換
本文實(shí)例為大家分享了Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換的具體代碼,供大家參考,具體內(nèi)容如下
碰上這樣一個(gè)情景:
我從網(wǎng)絡(luò)上下載了一張表情包圖片,存放在 MyImages
文件夾下,文件類型為 .wepg
,為了能夠在QQ上順利發(fā)送,我需要將它轉(zhuǎn)換為常用的 .jpg
或 .jpeg
格式。
如圖:
解決:
在 MyImages
目錄下創(chuàng)建名為 convert.py
的Python文件,開始代碼編寫
代碼思路:
- 獲取當(dāng)前目錄的文件名列表
- 開始遍歷列表元素
- 嘗試讀取圖片,如果遇到
IOError
(說明不是可讀取的圖片類型,略過這一文件) ,否則繼續(xù)執(zhí)行 - 如果圖片已經(jīng)是
.jpg
或.jpeg
后綴,則不處理 - 將圖片以
jpeg
格式保存在當(dāng)前目錄 - 將原圖片移動(dòng)到
./SourceImage
文件夾下(如果此文件夾不存在則新建)
完整代碼
#!python3 import os from PIL import Image #獲取文件名列表 imgList = os.listdir("./") ##函數(shù):獲取文件的后綴長度(例如 jpg 和 jpeg 的長度分別為 3 和 4 ) #def typeNameLengthCount(name): #?? ?count = 0 #?? ?for i in range(1, len(name)): #?? ??? ?if(name[-i] == '.'): #?? ??? ??? ?break #?? ??? ?else: #?? ??? ??? ?count += 1 #?? ?return count #修改:上面這是原來的代碼,后來想起os庫有現(xiàn)成的分離文件名和后綴名的函數(shù),于是此自定義函數(shù)棄用 #檢查 ./SourceImage 目錄是否存在,不存在則創(chuàng)建它 if (not (os.path.exists("./SourceImage"))): ?? ?os.mkdir("./SourceImage") #開始遍歷文件 for name in imgList: ?? ?try: ?? ??? ?img = Image.open(name) #嘗試打開圖片,如果不是可以打開的類型,則忽略(因?yàn)樾枰雎源a文件本身及后面創(chuàng)建的SourceImage文件夾) ?? ??? ? ?? ??? ?#type_length = typeNameLengthCount(name) ?? ??? ?#file_type = name[-type_length:] #得到后綴的長度 ?? ??? ?#修改:用庫方法替代自定義方法: ?? ??? ?file_name, file_type = os.path.splitext(name) ?? ??? ? ?? ??? ?if file_type == 'jpg' or file_type == 'jpeg': #如果已經(jīng)是 .jpg 或 .jpeg 類型,則跳過 ?? ??? ??? ?continue ?? ??? ?else: ?? ??? ? ?? ??? ??? ?#img.save("%s.jpg"%(name[0:(-type_length-1)]), 'jpeg') ?? ??? ??? ?#修改:改用下面這行代碼: ?? ??? ??? ?img.save("%s.jpg"%(file_name), 'jpeg') ?? ??? ??? ? ?? ??? ??? ?os.rename(name, "./SourceImage/%s"%name) #移動(dòng)原圖片,此處用shutil.move( , ) 方法同樣可行, 而且這個(gè)方法可以實(shí)現(xiàn)文件在磁盤間的移動(dòng) ?? ?except IOError: ?? ??? ?print("one file was ignored")
運(yùn)行:
運(yùn)行前
運(yùn)行時(shí)
運(yùn)行后
原圖片將保留
以后再下載保存的文件就運(yùn)行一下這個(gè)代碼就好了
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
深度學(xué)習(xí)環(huán)境搭建anaconda+pycharm+pytorch的方法步驟
本文主要介紹了深度學(xué)習(xí)環(huán)境搭建anaconda+pycharm+pytorch的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09python實(shí)現(xiàn)字符串中字符分類及個(gè)數(shù)統(tǒng)計(jì)
這篇文章主要介紹了python實(shí)現(xiàn)字符串中字符分類及個(gè)數(shù)統(tǒng)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09