方法1:使用 Python + Pillow(推荐)
import os
from PIL import Image
import glob
def batch_crop_center(input_folder, output_folder, crop_size):
"""
批量裁剪图片中心
:param input_folder: 输入文件夹路径
:param output_folder: 输出文件夹路径
:param crop_size: (width, height) 裁切后的尺寸
"""
# 创建输出文件夹
os.makedirs(output_folder, exist_ok=True)
# 支持的图片格式
extensions = ['*.jpg', '*.jpeg', '*.png', '*.bmp', '*.gif']
for ext in extensions:
for img_path in glob.glob(os.path.join(input_folder, ext)):
try:
# 打开图片
img = Image.open(img_path)
# 计算中心区域
width, height = img.size
new_width, new_height = crop_size
left = (width - new_width) // 2
top = (height - new_height) // 2
right = left + new_width
bottom = top + new_height
# 裁剪并保存
cropped = img.crop((left, top, right, bottom))
# 生成输出文件名
filename = os.path.basename(img_path)
output_path = os.path.join(output_folder, filename)
cropped.save(output_path)
print(f"已处理: {filename}")
except Exception as e:
print(f"处理 {img_path} 时出错: {e}")
# 使用示例
if __name__ == "__main__":
input_dir = "input_images" # 原图文件夹
output_dir = "cropped_images" # 输出文件夹
crop_size = (500, 500) # 裁切尺寸 (宽, 高)
batch_crop_center(input_dir, output_dir, crop_size)
方法2:使用 ImageMagick(命令行)
#!/bin/bash
# Linux/Mac 批量裁剪中心
input_dir="input_images"
output_dir="cropped_images"
width=500
height=500
mkdir -p "$output_dir"
for img in "$input_dir"/*.{jpg,jpeg,png,bmp}; do
if [ -f "$img" ]; then
filename=$(basename "$img")
# -gravity center: 从中心裁剪
# -extent: 裁切尺寸
convert "$img" -gravity center -extent "${width}x${height}" "$output_dir/$filename"
echo "已处理: $filename"
fi
done
方法3:使用 Python + OpenCV(高级版)
import cv2
import os
import glob
def batch_crop_center_opencv(input_folder, output_folder, crop_width, crop_height):
"""
使用OpenCV批量裁剪图片中心
"""
os.makedirs(output_folder, exist_ok=True)
extensions = ['*.jpg', '*.jpeg', '*.png', '*.bmp']
for ext in extensions:
for img_path in glob.glob(os.path.join(input_folder, ext)):
try:
# 读取图片
img = cv2.imread(img_path)
if img is None:
continue
height, width = img.shape[:2]
# 计算中心区域
start_x = (width - crop_width) // 2
start_y = (height - crop_height) // 2
# 裁剪
cropped = img[start_y:start_y + crop_height,
start_x:start_x + crop_width]
# 保存
filename = os.path.basename(img_path)
output_path = os.path.join(output_folder, filename)
cv2.imwrite(output_path, cropped)
print(f"已处理: {filename}")
except Exception as e:
print(f"处理 {img_path} 时出错: {e}")
使用方法:
Python 脚本:
# 安装依赖 pip install pillow opencv-python # 运行脚本 python crop_images.py
ImageMagick (Linux/Mac):
# 安装ImageMagick sudo apt-get install imagemagick # Ubuntu brew install imagemagick # Mac # 运行脚本 chmod +x crop_center.sh ./crop_center.sh
实用技巧:
-
保持原比例:如果不想强制尺寸,可以先等比例缩放:

def crop_and_resize(input_path, output_path, size): img = Image.open(input_path) # 先缩放到目标尺寸 img.thumbnail(size, Image.LANCZOS) # 再从中心裁剪 width, height = img.size left = (width - size[0]) // 2 top = (height - size[1]) // 2 cropped = img.crop((left, top, left+size[0], top+size[1])) cropped.save(output_path)
-
批量处理不同尺寸:
sizes = [(500, 500), (800, 600), (200, 200)] for size in sizes: folder_name = f"cropped_{size[0]}x{size[1]}" batch_crop_center(input_dir, folder_name, size) -
添加进度条:
from tqdm import tqdm
files = glob.glob(os.path.join(input_folder, '*')) for img_path in tqdm(files, desc="处理中"):
处理逻辑...
选择哪种方法取决于你的需求和环境配置,Python+Pillow 最简单通用,ImageMagick 适合批量命令行操作。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播