這次嘗試用Python寫一個簡易的批次修改圖片大小的工具,雖然是很基礎的應用,但還真的蠻實用的,畢竟寫部落格的照片實在不宜過大,不然會造成讀者載入文章的困擾,我通常習慣把照片調整程寬度1200px。
這次的思路一樣很簡單,如同上次寫的相片批次轉檔工具類似,使用os
模組讀取指定的資料夾路徑,讀取裡面所有的照片格式的檔案(在此指定.jpg、.jpeg、.png、.bmp),將超過指定寬度的以上的圖檔加入list中,接著對list中的照片使用PIL
的resize
功能,將這些圖檔的進行維持長寬比但寬度限制為1200px的變形,最後再原檔名後面加上「_resized」的字樣另存新檔。至此基本上就可以使用了!
為了更方便使用,這次學習引入了圖形化介面tkinter
模組,如此以後就不必開啟整合開發環境執行程式碼,直接點擊儲存好的.py檔案,指定使用python的方式開啟檔案,即可快速的批次處理照片。以下分享我的程式碼。下此我嘗試使用更好看的Eel
模組來製作圖形化介面。
程式功能
- 讀取寬度超過指定寬度(px)以上的照片(例如:輸入1200)
- 將讀取的照片修正為不改變長寬比,且寬度為指定數值的照片(例如:4096*3072→1200*900)
- 將程式引入GUI圖形化介面
程式需求
- 安裝Python編譯器與IDE(下圖以Visual Studio Code為例)
- 需要以下命令安裝這些模組
pip install pillow
:PIL (Pillow) 是 Python 的圖像處理模組,用於處理圖像檔案
pip install tkinter
:Tkinter 是 Python 的 GUI 模組,用於建立 GUI 應用程式
程式碼
程式效果
程式碼(加入GUI介面)
程式效果
Python基礎語法
主題 |
文章 |
編譯器與IDE |
|
|
- 註解:Comments
- 模組:pip install.Module
- 印出:print
- 資料型態:numbers.string.list.tuples.dictionary
- 運算:算數運算子.關係運算子.邏輯運算子
- 判斷式:if else
- 迴圈:while.for
- 自定義函數:def
- 矩陣:Array
- 迭代器:Iterators
- 物件導向:類(Classes).物件(Objects).封裝(Encapsulation).繼承(Inheritance).多型(Polymorphism)
- 讀取儲存:Files I/O
- 資料儲存:Json
- 嘗試:Try Except
- 互動:Input
- 日期:Date
|
常用模組 |
- Math:數學
- Numpy:矩陣與線性代數運算
- Random:隨機數
- Matplotlib:資料作圖
- OpenCV:影像資訊處理庫
- pandas:配合Excel、CSV、Jason等數據處理
|
影像處理 |
|
網路爬蟲 |
|
圖形介面 |
- Tkinter:基礎GUI介面
- Pyside:Qt框架的GUI介面
- CustomTkinter:基礎GUI介面美化版
- Eel:結合html、JavaScript、CSS的網頁GUI介面
|
檔案打包 |
|
Python應用學習
主題 |
文章 |
影像應用 |
- 圖像辨識
- 肢體追蹤:Google MediaPipe
|
機器學習 |
- 數據讀取
- 資料預處理
- 訓練集與測試集
- 特徵縮放
- 代入模型
- 模型訓練與學習率測試
- 損失函數:均方誤差.二元交叉熵.Scikit-Learn
|
深度學習 |
|
語言分析 |
|
圖像生成 |
|
Facebook留言
Wordpress留言 (0)