隨着科技的快速發展,數字化時代的到來,圖片已經成為人們生活中必不可少的一部分。然而,我們在處理大量圖片時,裁剪圖片是一項非常重要的任務。在這裡,我們將介紹如何使用Python進行批量裁剪圖片。
一、安裝Pillow庫
在Python中,使用Pillow庫來處理圖片是非常方便的。首先,我們需要安裝Pillow庫。在命令行或終端中輸入以下命令即可:
pip install pillow
我們可以通過以下代碼檢查Pillow庫是否安裝成功:
import PIL
if hasattr(PIL, '__version__'):
print("Pillow庫已經安裝成功!")
else:
print("Pillow庫沒有安裝成功!")
二、裁剪單張圖片
在這一部分中,我們將展示如何使用Python裁剪單張圖片:
from PIL import Image
image = Image.open('input.jpg')
# left, upper, right, lower
cropped_image = image.crop((100, 100, 400, 400))
cropped_image.save('output.jpg')
cropped_image.show()
代碼解析:
1、首先,我們導入了Image模塊。
2、然後,我們使用Image模塊的open()函數打開圖片文件。
3、接下來,我們使用crop()函數裁剪圖片。crop()函數需要接收一個tuple類型的參數,表示裁剪的範圍。範圍參數的順序為(left, upper, right, lower),分別代表裁剪框的左上、右下角坐標。
4、最後,我們使用save()函數保存裁剪後的圖片,並且使用show()函數顯示裁剪後的圖片。
三、批量裁剪圖片
在這一部分中,我們將展示如何使用Python批量裁剪圖片。我們將圖片文件放置在“input”文件夾中,裁剪後的圖片將保存在“output”文件夾中:
from PIL import Image
import os
input_dir = 'input'
output_dir = 'output'
# make output dir if it does not exist
if not os.path.exists(output_dir):
os.mkdir(output_dir)
for file_name in os.listdir(input_dir):
try:
file_path = os.path.join(input_dir, file_name)
image = Image.open(file_path)
# left, upper, right, lower
cropped_image = image.crop((100, 100, 400, 400))
output_path = os.path.join(output_dir, file_name)
cropped_image.save(output_path)
except:
print("An error occurred while processing the file:", file_name)
代碼解析:
1、我們導入了Image模塊和os模塊。
2、然後,我們定義了一個input_dir變量和一個output_dir變量,用來表示輸入和輸出文件夾的路徑。
3、我們使用os模塊中的函數,先檢查輸出文件夾是否存在,不存在則創建該文件夾。
4、接着,我們使用os模塊中的listdir()函數來獲取輸入文件夾中的文件列表。然後,我們使用一個循環來遍歷文件列表。
5、在循環中,我們使用join()函數來生成每個文件的完整路徑,然後打開它並使用crop()函數裁剪它。
6、最後,我們使用join()函數來生成輸出文件的完整路徑,並使用save()函數保存裁剪後的文件。
四、調整裁剪寬高比例
在上面的例子中,我們使用了固定的裁剪框大小。但是,在一些情況下,我們可能需要調整裁剪框的大小和寬高比例。以下是一個例子,我們將裁剪框調整為輸入圖片的50%大小:
from PIL import Image
import os
input_dir = 'input'
output_dir = 'output'
# make output dir if it does not exist
if not os.path.exists(output_dir):
os.mkdir(output_dir)
for file_name in os.listdir(input_dir):
try:
file_path = os.path.join(input_dir, file_name)
image = Image.open(file_path)
width, height = image.size
# adjust cropping box size and aspect ratio
left = width / 4
upper = height / 4
right = (3 * width) / 4
lower = (3 * height) / 4
cropped_image = image.crop((left, upper, right, lower))
output_path = os.path.join(output_dir, file_name)
cropped_image.save(output_path)
except:
print("An error occurred while processing the file:", file_name)
代碼解析:
1、該代碼與前面的代碼類似,但是這裡使用了輸入圖片的大小來計算裁剪框的大小。
2、首先,我們獲取了輸入圖片的寬和高。
3、然後,我們根據比例計算裁剪框的大小。在這個例子中,我們將裁剪框大小設置為輸入圖片寬和高的1/4至3/4之間。
4、最後,我們使用相同的方法來打開、裁剪和保存圖片。
五、結論
在本文中,我們介紹了如何使用Python裁剪圖片。通過使用Pillow庫,我們能夠快速、簡便地批量裁剪圖片。我們還展示了如何調整裁剪框的大小和寬高比例。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/308249.html