编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

pil库修改图片格式

wxchong 2024-06-10 16:53:11 开源技术 21 ℃ 0 评论

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语句来确保图片文件在操作完成后被正确关闭。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表