iT邦幫忙

0

EPS 到 JPG 的高效轉檔策略:Python 實作範例

  • 分享至 

  • xImage
  •  

在一般網頁轉檔服務中,檔案轉換多半以單檔上傳及單檔下載的形式進行,雖然適用於少量檔案,但面對大量檔案時,效率與便捷性將大幅降低。本範例透過整合 Ghostscript 這款多功能軟體工具,示範如何在本機環境中批次將 EPS 檔轉換為 JPG 檔,進而提升大量檔案處理的效能與工作流程自動化程度。


這是下載路徑,可以先複製下來(通常都是在C:\Program Files\gs\gs10.04.0)
https://ithelp.ithome.com.tw/upload/images/20241218/20167256or6mn1cnT3.png

下載好之後放入至環境變數https://ithelp.ithome.com.tw/upload/images/20241218/20167256IERMGZIYNB.png

到資料夾找到剛剛下載的檔案(bin),將上面路徑複製下來
https://ithelp.ithome.com.tw/upload/images/20241218/201672565ecuWXAR08.png

放入到環境變數path裡面(點兩下可開啟),將路徑貼上
https://ithelp.ithome.com.tw/upload/images/20241218/20167256algOOFpjar.png


開啟.py檔寫入以下代碼

此程式的轉換原理是利用 Pillow (PIL) 與 Ghostscript 的協同工作,將 EPS 這類向量化描述(PostScript)的檔案內容轉譯為可點陣顯示的影像,再存成 JPG 格式。

import os
from PIL import Image

os.environ["PATH"] += r";C:\Program Files\gs\gs10.04.0\bin"
os.environ["GHOSTSCRIPT"] = r"C:\Program Files\gs\gs10.04.0\bin\gswin64c.exe"

src_folder = r"C:\Users\chenchen\Downloads\eps"
dst_folder = r"C:\Users\chenchen\Downloads\jpg_out111"

if not os.path.exists(dst_folder):
    os.makedirs(dst_folder)

for filename in os.listdir(src_folder):
    if filename.lower().endswith('.eps'):
        eps_path = os.path.join(src_folder, filename)
        
        base_name = os.path.splitext(filename)[0]
        jpg_filename = base_name + '.jpg'
        jpg_path = os.path.join(dst_folder, jpg_filename)
        
        with Image.open(eps_path) as im:
            im = im.convert("RGB")
            im.save(jpg_path, 'JPEG')

print("轉檔完成!")

代碼解釋

import os
from PIL import Image

# 將 Ghostscript 所在的路徑加入系統 PATH,讓系統能找到 Ghostscript 的執行檔
os.environ["PATH"] += r";C:\Program Files\gs\gs10.04.0\bin"

# 設定 Ghostscript 的執行檔路徑,以便 Pillow 的 EpsImagePlugin 能夠使用 Ghostscript 來解析 EPS 檔案
os.environ["GHOSTSCRIPT"] = r"C:\Program Files\gs\gs10.04.0\bin\gswin64c.exe"

# 指定來源 EPS 檔案所在的資料夾
src_folder = r"C:\Users\chenchen\Downloads\eps"

# 指定轉換後輸出的 JPG 資料夾
dst_folder = r"C:\Users\chenchen\Downloads\jpg_out111"

# 如果目標輸出資料夾不存在,則自動建立
if not os.path.exists(dst_folder):
    os.makedirs(dst_folder)

# 對來源資料夾中的所有檔案進行巡覽
for filename in os.listdir(src_folder):
    # 檢查副檔名是否為 .eps(EPS 檔案)
    if filename.lower().endswith('.eps'):
        # 建立 EPS 檔案的完整路徑
        eps_path = os.path.join(src_folder, filename)
        
        # 移除原檔案副檔名,將其改成 .jpg 作為輸出檔名
        base_name = os.path.splitext(filename)[0]
        jpg_filename = base_name + '.jpg'
        jpg_path = os.path.join(dst_folder, jpg_filename)
        
        # 使用 Pillow 來開啟 EPS 檔案
        # Image.open() 會利用 Ghostscript 來解析 EPS,轉成可內部處理的影像格式
        with Image.open(eps_path) as im:
            # 將影像轉換為 RGB 模式(EPS 可包含 CMYK 或其他色彩模式,轉成 RGB 可以順利輸出為 JPG)
            im = im.convert("RGB")
            # 將轉換後的影像存成 JPG 格式到指定資料夾中
            im.save(jpg_path, 'JPEG')

print("轉檔完成!")

Ghostscript 是一款多功能軟體工具,可解析與轉換 PostScript、PDF、EPS 等檔案格式。透過 Ghostscript,使用者得以將這些描述性的向量圖檔快速轉換為常用點陣影像格式,或於無需專業軟體的情況下進行預覽與列印。此外,它也經常被各類程式與函式庫整合,用於後端的檔案轉換與圖像處理自動化工作流程。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言