如何用Python寫一個簡易的相片批次轉檔工具? - 撰風旅食
文章推薦指數: 80 %
再到實際資料夾查看情況,原本三張PNG照片,經過程式處理後另存了三張調整後的JPG照片,查看照片寬度為輸入值1200px,如此大小和格式放在部落格時更適合 ...
Skiptocontent
身為一名網路圖文創作者,常常需要將其他照片格式轉為JPG並調整照片寬度,搜尋網路上免費的PNG2JPGConverter都有諸多限制,讓我苦惱許久。
於是我決定寫一個相片批次轉檔工具,雖然我不是很精通程式語言,但逐步列出做法再針對性的搜尋語法,用Python搭配OpenCV寫一個簡單的批次相片轉檔工具也不是不可能。
這個相片批次轉檔工具除了可以大量改變相片檔案類型外,也能夠等比例縮放圖片至想要的大小,在部落格照片的快速處理上有非常大的幫助。
如果想直接看完整程式碼的,可以透過目錄的超連結直接跳轉,這篇我會記錄我撰寫的過程,以便之後複習使用。
有需要者也可以自行取用。
內容索引
程式目標設定撰寫思路程式效果完整程式碼
程式目標設定
將照片從PNG轉成JPG
將照片從任意長寬轉成自己設定的長寬
批次處理
不影響到原始檔案
撰寫思路
項目
說明
相關語法
輸入設定
圖片所在的資料夾位置
input(str)
檔案類型
input(str)
欲變更成的檔案類型
input(str)
欲修正的圖片寬度
input(int)
檔案偵測
將資料夾內的圖片路徑導入
glob.glob(______)
將圖片的路徑、檔名、類型分離以便處理
glob.glob(______)
建立一個空List
[]
將圖片的檔名重新依序命名為1,2,3…並放入空List,以便迴圈作批次處理
for
list.append
os.rename
圖片調整
將原始圖片寬度和高度叫出
cv2.imread
img.shape
根據修正的圖片寬度可得與原始圖片寬度之間所差的比例
四則運算
依照比例縮放原始圖片長寬
四則運算
圖片儲存
將修正的圖片重新儲存為欲變更的檔案格式
cv2.imwrite
將圖片檔名被更改為1,2,3…的圖片以舊的檔案名稱覆蓋
os.rename
跳出執行完成通知
print
根據列出的程式,需要確認Anaconda的Python編譯器有安裝cv2、os和glob三種軟體包。
程式效果
執行運算之後,Console視窗會出現輸入提示,依次輸入檔案所在的資料夾路徑、原始檔案格式、欲轉換成的檔案格式,以及想改變成的照片寬度,按下Enter後快速批次處理完畢,跳出修正完成的提示。
注意!檔案路徑不可有中文或特殊符號。
再到實際資料夾查看情況,原本三張PNG照片,經過程式處理後另存了三張調整後的JPG照片,查看照片寬度為輸入值1200px,如此大小和格式放在部落格時更適合閱讀。
當然也可以調整其他格式的照片,以及不大的長寬。
這樣一個簡單的程式卻非常實用呢!
完整程式碼
importcv2
importos
importglob
folderpath=input('■資料夾路徑(不可有中文):')+'\\'
originalformat=str(input('■原檔案格式(大小寫一致):.'))
newformat=str(input('■欲變更檔案格式:.'))
resize_width=int(input('■欲變更檔案整數寬度(px):'))
filepath=glob.glob(folderpath+'*.'+str(originalformat))
SLfilelist=[]
n=0
foriinfilepath:
SLfilelist.append(os.path.splitext(os.path.basename(filepath[n]))[0])
n=n+1
n=0
foriinSLfilelist:
oldpath=folderpath+SLfilelist[n]+'.'+str(originalformat)
newpath=folderpath+str(n+1)+'.'+str(originalformat)
os.rename(oldpath,newpath)
img=cv2.imread(newpath)
ratio=img.shape[0]/img.shape[1]
resize_height=round(resize_width*ratio)
img_resize=cv2.resize(img,(resize_width,resize_height))
cv2.imwrite(str(folderpath)+str(newformat)+'_version_'+str(SLfilelist[n])+'.'+str(newformat),img_resize)
os.rename(newpath,oldpath)
n=n+1
print("\n■修正完成!")
粉絲專頁
撰風旅食
桃園漫步
台北漫步
科技筆記
關於撰風/寫!相似群體裏一份渺小卻耀眼的獨到
E-Mail/[email protected]
Facebook留言Wordpress留言(0)
LeaveaReply取消回覆發佈留言必須填寫的電子郵件地址不會公開。
必填欄位標示為*留言顯示名稱*
電子郵件地址*
個人網站網址
Searchfor:
Search
關於作者
我是撰風,雖然我們依然脫離不了生活中的糖水片,但仍不斷在尋找相似群體裏一份渺小卻耀眼的獨到,不僅在於攝影,這也是撰寫文章的魅力所在。
【閱讀更多...】
聯繫:Messenger@jfsblog
信箱:[email protected]
文章分類全部展開|全部收合
按月彙整 按月彙整
選取月份
2021年11月 (24)
2021年10月 (36)
2021年9月 (16)
2021年8月 (6)
2021年7月 (22)
2021年6月 (14)
2021年5月 (6)
2021年4月 (21)
2021年3月 (37)
2021年2月 (36)
2021年1月 (33)
2020年12月 (19)
2020年11月 (6)
2020年10月 (8)
2020年9月 (13)
2020年8月 (17)
2020年7月 (13)
2020年6月 (6)
2020年5月 (4)
2020年4月 (6)
2020年3月 (11)
2020年2月 (33)
2020年1月 (25)
2019年12月 (25)
2019年11月 (14)
2019年10月 (10)
2019年9月 (9)
2019年8月 (12)
2019年7月 (2)
2019年6月 (9)
2019年5月 (15)
2019年4月 (9)
2019年3月 (10)
2019年2月 (14)
2019年1月 (5)
2018年12月 (5)
2018年11月 (5)
2018年10月 (7)
2018年9月 (13)
2018年8月 (11)
2018年7月 (1)
2018年5月 (8)
2018年4月 (11)
2018年3月 (12)
2018年2月 (11)
2018年1月 (5)
2017年12月 (9)
2017年11月 (7)
2017年10月 (1)
2017年9月 (7)
2017年8月 (11)
2017年7月 (3)
2017年2月 (2)
2017年1月 (4)
2016年11月 (1)
2016年8月 (2)
2016年7月 (3)
2016年6月 (8)
2016年5月 (7)
2016年4月 (10)
2015年11月 (3)
2015年8月 (1)
2015年7月 (3)
2015年5月 (1)
2015年4月 (2)
2015年3月 (3)
2015年2月 (3)
2014年9月 (1)
2014年8月 (1)
2014年6月 (1)
2014年4月 (1)
2014年3月 (1)
2014年2月 (6)
2014年1月 (5)
2013年12月 (1)
2013年9月 (3)
2013年8月 (3)
2013年7月 (3)
2013年6月 (2)
2013年5月 (1)
2013年4月 (1)
2013年3月 (3)
2013年2月 (4)
2013年1月 (3)
2012年12月 (5)
2012年11月 (3)
2012年10月 (2)
2012年9月 (4)
2012年8月 (4)
2012年7月 (2)
2012年6月 (1)
2012年5月 (5)
2012年4月 (6)
2012年3月 (4)
2012年2月 (4)
2011年12月 (2)
2011年11月 (3)
2011年10月 (5)
2011年9月 (1)
2011年8月 (1)
撰風旅食新屋活動/FOCA福爾摩沙馬戲團《馬戲派對》優惠券/漢堡王優惠券(2021年11月版)情報/PokemonGo晶燦鑽石與明亮珍珠慶祝活動:孵蛋獎勵與收藏家挑戰龜山活動/2021情龜楓茶米‧野Fun音樂會平鎮活動/2021桃園市寵物嘉年華--毛孩來趣桃毛星人回娘家平鎮活動/醫護哈客新浪潮:客語教學再進化中壢活動/馬村市集-舊物市集、禮物之村(桃園聖誕節活動)桃園活動/桃園街町藝術祭-桃城走讀老城尋寶桃園活動/客家管弦夢線上音樂會-龍潭映象熱門文章
富盈數據Breaktimeinc.
延伸文章資訊
- 1用python 批量更改图像尺寸到统一大小_atyzy的专栏 - CSDN博客
python 批量修改图片大小一个文件夹下面有好多图片格式是jpg大小 ... cv2 # 设置图片路径,该路径下包含了14张jpg格式的照片,名字依次为0.jpg, ...
- 2Python | 批量更改图像尺寸到统一大小(修改版) - CSDN博客
功能Faster r_cnn 训练神经网络时,从GitHub上clone作者的代码,并创建了自己的数据库。但是由于源代码中输入的图像的大小有一定的限制, ...
- 3python批量修改圖片尺寸 - 台部落
圖像識別時,我們經常需要對輸入圖片進行尺寸調整。假設我們要將一個文件夾裏的所有圖片(不同格式、不同尺寸)的大小修改爲400X48。下面是利用python ...
- 4批量修改图片像素大小:Python GUI 交互界面实现
1、Python 修改图片像素大小. Python 的PIL 包可以实现图片的读写、像素大小的设置。 安装pillow 第三方模块: pip install pillow. 设置图片大小的示例代码:.
- 5如何用Python寫一個簡易的相片批次轉檔工具? - 撰風旅食
再到實際資料夾查看情況,原本三張PNG照片,經過程式處理後另存了三張調整後的JPG照片,查看照片寬度為輸入值1200px,如此大小和格式放在部落格時更適合 ...