在當今的數位時代,圖像已成為我們生活中必不可少的一部分。他們在從社群媒體到網站的各種平台上的溝通和表達中發揮著重要且顯著的作用。然而,高品質的圖像可能會消耗大量的儲存空間,並且會導致網站載入時間變慢和上傳時間變長。影像壓縮在這種情況下變得適用。透過縮小影像的大小,您可以確保更快的載入時間、更低的頻寬使用量和更多的儲存空間。
在本文中,我們將研究使用 Python 和 PIL 壓縮影像的過程。 PIL,也稱為 Python 映像庫。它是 Python 中一個非常有用且重要的函式庫,可以開啟、操作和保存各種圖像檔案格式。透過掌握該庫的功能,我們可以輕鬆壓縮圖像並獲得更快的載入時間和更少的儲存空間的好處。
在我們深入程式碼之前,讓我們先快速了解不同類型的圖像壓縮。
影像壓縮主要有兩種:有損和無損。
有損壓縮:有損壓縮是一種在壓縮過程中會遺失一些資料的壓縮類型。這意味著當您解壓縮影像時,它將與原始影像不完全相同。然而,這種差異通常對人眼來說是不可察覺的。有損壓縮的例子包括JPEG和GIF。
無損壓縮:無損壓縮是一種在壓縮過程中不遺失任何資料的壓縮類型。這意味著當您解壓縮影像時,它將與原始影像完全相同。無損壓縮的例子包括PNG和TIFF。
現在我們已經了解了不同類型的圖像壓縮,讓我們繼續討論程式碼。
步驟1:安裝PIL
第一步是安裝 PIL 函式庫。為此,您可以使用 pip。開啟終端機或命令提示字元並鍵入以下命令:
pip install Pillow
成功訊息
#Collecting Pillow Downloading Pillow-8.4.0-cp39-cp39-win_amd64.whl (3.2 MB) |████████████████████████████████| 3.2 MB 2.1 MB/s Installing collected packages: Pillow Successfully installed Pillow-8.4.0
第 2 步:匯入所需的函式庫
安裝PIL後,您需要將所需的庫匯入到您的Python程式中。為此,請在 Python 檔案的開頭添加以下程式碼行:
from PIL import Image import os
第 3 步:載入圖片
現在在導入所需的庫之後,讓我們載入我們想要壓縮的圖像。為此,我們可以使用PIL函式庫中的Image.open()方法。
image = Image.open('image.jpg')
這段程式碼開啟名為'image.jpg'的圖像,並將其賦值給變數'image'。
步驟 4:調整圖片大小
載入圖片後,我們需要調整其大小以減少其檔案大小。為此,我們可以使用 Image 模組中的 resize() 方法。
width, height = image.size new_size = (width//2, height//2) resized_image = image.resize(new_size)
此程式碼會將影像大小調整為原始大小的一半。您可以根據需要更改圖像的大小。
第5步:儲存壓縮影像
調整圖像大小後,我們需要儲存壓縮後的圖像。為了做到這一點,我們可以使用Image模組中的save()方法。
resized_image.save('compressed_image.jpg', optimize=True, quality=50)
在壓縮圖像之後,我們需要將其儲存為新檔案。這段程式碼將壓縮後的圖片儲存為名為'compressed_image.jpg'的檔案。我們可以使用'optimize'參數來確保圖像經過了最佳化以適用於網路。此外,我們還可以根據需要使用'quality'參數來調整影像的品質。
第 6 步:驗證壓縮影像
最後,我們需要驗證壓縮後的影像是否已正確保存。為此,我們可以比較原始圖像和壓縮圖像的檔案大小。
original_size = os.path.getsize('image.jpg') compressed_size = os.path.getsize('compressed_image.jpg') print("Original Size: ", original_size) print("Compressed Size: ", compressed_size)
這段程式碼將列印出原始圖像和壓縮圖像的檔案大小。您可以驗證壓縮影像比原始影像更小。
from PIL import Image import os image = Image.open('image.jpg') width, height = image.size new_size = (width//2, height//2) resized_image = image.resize(new_size) resized_image.save('compressed_image.jpg', optimize=True, quality=50) original_size = os.path.getsize('image.jpg') compressed_size = os.path.getsize('compressed_image.jpg') print("Original Size: ", original_size) print("Compressed Size: ", compressed_size)
Original Size: 1234567 Compressed Size: 543210
請注意,實際檔案大小將取決於用於程式碼的輸入影像。這只是一個範例。
總之,我們討論了有損壓縮和無損壓縮之間的區別,以及後者在保持影像品質方面更好,但佔用更多空間。然後,我們逐步介紹如何使用Python中的PIL來壓縮影像的指南。我們學會瞭如何調整圖像的大小並以壓縮格式保存,以及一些最佳實踐,以確保最佳結果。
按照本文中概述的步驟,您可以輕鬆壓縮圖像並優化它們以供 Web 使用。您可以調整壓縮影像的品質和大小,以在影像品質和檔案大小之間取得適當的平衡。無論您是網站開發人員還是業餘攝影師,掌握影像壓縮都是一項寶貴的技能,可以增強您的數位形象。
以上是如何使用Python和PIL壓縮影像?的詳細內容。更多資訊請關注PHP中文網其他相關文章!