from PIL import Image
# Step 1: 打开一个现有的图片文件
with Image.open('original.jpg') as img:
# 查看原始图片尺寸
print(f"Original image size: {img.size}")
# Step 2: 转换图片格式 (例如,从JPEG转换为PNG)
# 这里我们不需要显式调用转换方法,因为在保存时指定格式即可完成转换
img.save('converted.png', format='PNG')
# Step 3: 可选操作 - 调整图片大小
resized_img = img.resize((800, 600), resample=Image.LANCZOS) # 使用 Lanczos 算法保持质量
# 如果想要保持原图宽高比,同时缩放到某个最大边长,可以这样做:
# max_size = (800, 600) # 指定最大宽度和高度
# resized_img = img.resize(img.thumbnail(max_size))
# Step 4: 保存调整大小后的图片到另一个文件
resized_img.save('resized_and_converted.png', format='PNG')
# 若同时要将图片转换为灰度模式再保存
gray_resized_img = resized_img.convert('L') # 转换成灰度图片
gray_resized_img.save('gray_resized_converted.png', format='PNG')
print("Conversion and resizing completed.")
在这个例子中:
?我们首先打开名为original.jpg的JPEG格式图片文件。
?直接保存为PNG格式,实现了格式转换。
?然后,通过resize()方法调整图片尺寸至800x600像素,这里采用了高质量的重采样滤波器LANCZOS。
?保存调整大小后的图片到新文件resized_and_converted.png。
?再将调整大小后的图片转换为灰度模式,并保存为gray_resized_converted.png。
请注意,在实际应用中,应当处理好可能出现的异常,比如文件未找到或其他I/O错误。在上述代码中,通过with语句来确保图片文件在操作完成后被正确关闭。
本文暂时没有评论,来添加一个吧(●'◡'●)