本文目录导读:

Python + PIL/Pillow(最常用)
from PIL import Image
def convert_to_grayscale(input_path, output_path):
# 打开图片
img = Image.open(input_path)
# 转换为灰度
gray_img = img.convert('L')
# 保存
gray_img.save(output_path)
# 使用示例
convert_to_grayscale('input.jpg', 'output_grayscale.jpg')
Python + OpenCV
import cv2
def convert_to_grayscale_cv(input_path, output_path):
# 读取图片
img = cv2.imread(input_path)
# 转换为灰度
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 保存
cv2.imwrite(output_path, gray_img)
# 使用示例
convert_to_grayscale_cv('input.jpg', 'output_grayscale.jpg')
批量转换脚本
import os
from PIL import Image
def batch_convert_grayscale(input_folder, output_folder):
# 创建输出文件夹
os.makedirs(output_folder, exist_ok=True)
# 遍历所有图片
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp')):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, f'gray_{filename}')
# 转换
img = Image.open(input_path)
gray_img = img.convert('L')
gray_img.save(output_path)
print(f'已转换: {filename}')
# 使用示例
batch_convert_grayscale('input_images/', 'output_images/')
命令行工具(Imagemagick)
# 安装 Imagemagick 后使用 convert input.jpg -colorspace Gray output.jpg # 批量转换 for f in *.jpg; do convert "$f" -colorspace Gray "gray_$f"; done
Node.js 版本
const sharp = require('sharp');
async function convertToGrayscale(input, output) {
try {
await sharp(input)
.grayscale()
.toFile(output);
console.log('转换完成');
} catch (error) {
console.error('转换失败:', error);
}
}
// 使用示例
convertToGrayscale('input.jpg', 'output_grayscale.jpg');
安装依赖
# Python pip install Pillow opencv-python # Node.js npm install sharp # Imagemagick (Ubuntu/Debian) sudo apt-get install imagemagick # Imagemagick (Mac) brew install imagemagick
选择哪种方法取决于你的需求和环境:
- Pillow:简单易用,适合大多数场景
- OpenCV:适合需要更多图像处理功能
- Imagemagick:命令行操作,适合批量处理
- Sharp:Node.js环境,性能好