本文目录导读:

Python + PIL/Pillow(最推荐)
import os
from PIL import Image, ImageOps
def batch_add_border(input_folder, output_folder, border_size=20, border_color='white'):
"""
批量给图片添加边框
参数:
input_folder: 输入文件夹路径
output_folder: 输出文件夹路径
border_size: 边框大小(像素)
border_color: 边框颜色(可以是颜色名称或RGB元组)
"""
# 创建输出文件夹(如果不存在)
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 支持的图片格式
supported_formats = ('.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tiff')
# 遍历所有图片文件
for filename in os.listdir(input_folder):
if filename.lower().endswith(supported_formats):
try:
# 打开图片
img_path = os.path.join(input_folder, filename)
img = Image.open(img_path)
# 添加边框
img_with_border = ImageOps.expand(
img,
border=border_size,
fill=border_color
)
# 保存图片
output_path = os.path.join(output_folder, f'bordered_{filename}')
img_with_border.save(output_path)
print(f"✅ 已处理: {filename}")
except Exception as e:
print(f"❌ 处理 {filename} 时出错: {str(e)}")
# 使用示例
if __name__ == "__main__":
# 设置参数
input_folder = "input_images" # 输入图片文件夹
output_folder = "bordered_images" # 输出文件夹
# 添加白色边框
batch_add_border(
input_folder=input_folder,
output_folder=output_folder,
border_size=50, # 边框大小
border_color='white' # 边框颜色
)
# 或者使用RGB颜色
# border_color=(255, 0, 0) # 红色边框
带更多功能的版本
import os
from PIL import Image, ImageOps, ImageDraw
import argparse
class ImageBorderAdder:
def __init__(self):
self.supported_formats = ('.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tiff')
def add_border(self, input_path, output_path, border_size=20,
border_color='white', border_style='solid'):
"""
添加边框的完整功能版本
border_style: 'solid', 'double', 'gradient'
"""
img = Image.open(input_path)
if border_style == 'solid':
# 实心边框
result = ImageOps.expand(img, border=border_size, fill=border_color)
elif border_style == 'double':
# 双线边框
result = ImageOps.expand(img, border=border_size, fill=border_color)
# 添加内边框
inner_border_size = border_size // 2
result = ImageOps.expand(result, border=inner_border_size,
fill='black' if border_color == 'white' else 'white')
elif border_style == 'gradient':
# 渐变边框(简化版)
result = self._add_gradient_border(img, border_size)
else:
result = ImageOps.expand(img, border=border_size, fill=border_color)
result.save(output_path)
return True
def _add_gradient_border(self, img, border_size):
"""创建渐变边框"""
w, h = img.size
new_w, new_h = w + 2*border_size, h + 2*border_size
# 创建渐变背景
gradient = Image.new('RGB', (new_w, new_h), 'white')
draw = ImageDraw.Draw(gradient)
# 简单渐变效果
for i in range(border_size):
color_value = int(255 * (1 - i/float(border_size)))
draw.rectangle(
[i, i, new_w-1-i, new_h-1-i],
outline=(color_value, color_value, color_value),
width=1
)
# 粘贴原图到中心
gradient.paste(img, (border_size, border_size))
return gradient
def batch_process(self, input_folder, output_folder, **kwargs):
"""批量处理所有图片"""
if not os.path.exists(output_folder):
os.makedirs(output_folder)
success_count = 0
error_count = 0
for filename in os.listdir(input_folder):
if filename.lower().endswith(self.supported_formats):
try:
input_path = os.path.join(input_folder, filename)
# 自定义输出文件名
name, ext = os.path.splitext(filename)
output_filename = f"{name}_bordered{ext}"
output_path = os.path.join(output_folder, output_filename)
self.add_border(input_path, output_path, **kwargs)
print(f"✅ {filename} → {output_filename}")
success_count += 1
except Exception as e:
print(f"❌ 错误处理 {filename}: {str(e)}")
error_count += 1
print(f"\n📊 处理完成: {success_count} 成功, {error_count} 失败")
# 使用示例
if __name__ == "__main__":
# 批量处理
adder = ImageBorderAdder()
# 添加实心边框
adder.batch_process(
input_folder="input_images",
output_folder="output_images",
border_size=30,
border_color='white',
border_style='solid' # 或 'double'/'gradient'
)
使用 ImageMagick 命令行工具
#!/bin/bash
# 保存为 add_border.sh
INPUT_DIR="input_images"
OUTPUT_DIR="output_images"
BORDER_SIZE=20
BORDER_COLOR="white"
# 创建输出目录
mkdir -p "$OUTPUT_DIR"
# 批量处理图片
for img in "$INPUT_DIR"/*.{jpg,jpeg,png,bmp,tiff,webp}; do
if [ -f "$img" ]; then
filename=$(basename "$img")
echo "处理: $filename"
# 使用ImageMagick添加边框
convert "$img" -bordercolor "$BORDER_COLOR" -border "${BORDER_SIZE}x${BORDER_SIZE}" \
"$OUTPUT_DIR/bordered_$filename"
echo "✅ 完成: $filename"
fi
done
echo "🎉 所有图片处理完成!"
使用建议
-
安装依赖:
pip install Pillow
-
调整参数:
border_size: 边框像素大小border_color: 颜色名称或RGB值border_style: 边框样式
-
运行方式:
- 将图片放入
input_images文件夹 - 运行脚本后结果保存在
output_images文件夹
- 将图片放入
-
自定义颜色:
border_color = (128, 64, 0) # RGB格式 border_color = 'red' # 颜色名称 border_color = '#FF0000' # 十六进制
选择最适合您需求的方案即可,Python脚本方式最灵活,命令行方式最简单快捷。
版权声明:足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播