用Python寫一個批次修改圖片大小的工具

這次嘗試用Python寫一個簡易的批次修改圖片大小的工具,雖然是很基礎的應用,但還真的蠻實用的,畢竟寫部落格的照片實在不宜過大,不然會造成讀者載入文章的困擾,我通常習慣把照片調整程寬度1200px。

這次的思路一樣很簡單,如同上次寫的相片批次轉檔工具類似,使用os模組讀取指定的資料夾路徑,讀取裡面所有的照片格式的檔案(在此指定.jpg、.jpeg、.png、.bmp),將超過指定寬度的以上的圖檔加入list中,接著對list中的照片使用PILresize功能,將這些圖檔的進行維持長寬比但寬度限制為1200px的變形,最後再原檔名後面加上「_resized」的字樣另存新檔。至此基本上就可以使用了!

為了更方便使用,這次學習引入了圖形化介面tkinter模組,如此以後就不必開啟整合開發環境執行程式碼,直接點擊儲存好的.py檔案,指定使用python的方式開啟檔案,即可快速的批次處理照片。以下分享我的程式碼。下此我嘗試使用更好看的Eel模組來製作圖形化介面。

用Python寫一個批次修改圖片大小的工具

程式功能

  1. 讀取寬度超過指定寬度(px)以上的照片(例如:輸入1200)
  2. 將讀取的照片修正為不改變長寬比,且寬度為指定數值的照片(例如:4096*3072→1200*900)
  3. 將程式引入GUI圖形化介面

程式需求

  1. 安裝Python編譯器與IDE(下圖以Visual Studio Code為例)
  2. 需要以下命令安裝這些模組
    • pip install pillow:PIL (Pillow) 是 Python 的圖像處理模組,用於處理圖像檔案
    • pip install tkinter:Tkinter 是 Python 的 GUI 模組,用於建立 GUI 應用程式

程式碼

程式效果

用Python寫一個批次修改圖片大小的工具

程式碼(加入GUI介面)

程式效果

用Python寫一個批次修改圖片大小的工具

Python學習紀錄
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等數據處理
影像處理
  • 影像讀取與屬性修改
  • 網路攝影機
網路爬蟲
  • 網站爬蟲:Web Crawler
圖形介面
  • Tkinter:基礎GUI介面
  • Pyside:Qt框架的GUI介面
  • CustomTkinter:基礎GUI介面美化版
  • Eel:結合html、JavaScript、CSS的網頁GUI介面
檔案打包
Python應用學習
主題 文章
影像應用
  • 圖像辨識
  • 肢體追蹤:Google MediaPipe
機器學習
  • 數據讀取
  • 資料預處理
  • 訓練集與測試集
  • 特徵縮放
  • 代入模型
  • 模型訓練與學習率測試
  • 損失函數:均方誤差.二元交叉熵.Scikit-Learn
深度學習
  • Keras
  • PyTorch
  • TensorFlow
語言分析
  • SnowNLP
  • Bert WWM
圖像生成
  • Stable Diffusion
寫一點小工具
小小作品
Python學習資源
常用網站
編輯 ] 筆記 » 程式語言 » Python
Python|HTML|CSS|JavaScript|Blender|Unreal Engine

Facebook留言

Wordpress留言 (0)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *