# 导入必要的库
from PIL import Image, ImageFilter
import os
# 定义常量
默认保存路径 = "已保存的图片"
灰度滤镜 = "灰度"
模糊滤镜 = "模糊"
边缘检测滤镜 = "边缘检测"
默认图片格式 = "PNG"
# 创建保存目录(如果不存在)
if not os.path.exists(默认保存路径):
os.makedirs(默认保存路径)
def 打开图片(图片路径):
"""打开指定路径的图片"""
try:
图像对象 = Image.open(图片路径)
print(f"成功打开图片: {图片路径}")
return 图像对象
except Exception as 异常:
print(f"无法打开图片: {异常}")
return None
def 调整大小(图像对象, 目标宽度, 目标高度):
"""调整图片大小"""
尺寸 = (目标宽度, 目标高度)
调整后图像 = 图像对象.resize(尺寸)
print(f"图片大小调整为: {目标宽度}x{目标高度}")
return 调整后图像
def 应用滤镜(图像对象, 滤镜类型):
"""应用指定类型的滤镜"""
if 滤镜类型 == 灰度滤镜:
返回图像 = 图像对象.convert("L") # 转换为灰度
print("应用灰度滤镜")
elif 滤镜类型 == 模糊滤镜:
返回图像 = 图像对象.filter(ImageFilter.GaussianBlur(radius=2)) # 高斯模糊
print("应用模糊滤镜")
elif 滤镜类型 == 边缘检测滤镜:
返回图像 = 图像对象.filter(ImageFilter.FIND_EDGES) # 边缘检测
print("应用边缘检测滤镜")
else:
返回图像 = 图像对象
print("未应用滤镜")
return 返回图像
def 保存图片(图像对象, 保存路径, 图片格式=默认图片格式):
"""保存图片到指定路径"""
try:
图像对象.save(保存路径, 图片格式)
print(f"图片已保存到: {保存路径}")
except Exception as 异常:
print(f"保存图片失败: {异常}")
def 主程序():
# 用户输入图片路径
图片路径 = input("请输入图片路径(例如: C:\\图片\\test.jpg): ")
# 打开图片
图像对象 = 打开图片(图片路径)
if 图像对象 is None:
return
# 调整大小(示例:500x300)
调整后图像 = 调整大小(图像对象, 500, 300)
# 应用滤镜(选择灰度、模糊、边缘检测中的一种)
滤镜类型 = input("请输入滤镜类型(灰度/模糊/边缘检测): ").strip()
滤镜后图像 = 应用滤镜(调整后图像, 滤镜类型)
# 生成保存路径
文件名 = os.path.basename(图片路径)
保存路径 = os.path.join(默认保存路径, f"处理后的_{文件名}")
# 保存图片
保存图片(滤镜后图像, 保存路径)
# 运行主程序
if __name__ == "__main__":
主程序() |