python将一个文件夹中的8位的图片等比缩放并填充为统一大小,背景填充为128的红,输出的图片也为8位
时间: 2024-09-28 07:17:33 浏览: 39
在Python中,可以使用PIL(Python Imaging Library)或者其更现代的替代品Pillow库来实现这个功能。以下是一个简单的示例,展示如何遍历文件夹、读取图片、等比例缩放并添加红色背景:
```python
from PIL import Image
def resize_and_fill_folder(input_folder, output_folder, target_size):
for filename in os.listdir(input_folder): # 遍历输入文件夹
if filename.endswith(".png") or filename.endswith(".jpg"): # 只处理常见的图片格式
img = Image.open(os.path.join(input_folder, filename)) # 打开图片
width, height = img.size # 获取原始尺寸
ratio = min(target_size / max(width, height), 1) # 计算缩放比例,保证不失真
new_width, new_height = int(width * ratio), int(height * ratio)
background = Image.new('RGB', (target_size, target_size), (128, 0, 0)) # 创建新的背景,红底128色
bg_box = (0, 0, new_width, new_height) # 裁剪区域
background.paste(img.resize((new_width, new_height)), bg_box) # 缩放并贴入背景
resized_img_path = os.path.join(output_folder, f'resized_{filename}') # 输出文件名
background.save(resized_img_path) # 保存调整后的图片
# 使用函数,传入输入文件夹、输出文件夹和目标大小
resize_and_fill_folder('input_folder_path', 'output_folder_path', 640)
```
阅读全文