在好例子网,分享、交流、成长!
您当前所在位置:首页 → Python 开发实例 → 常用Python方法 → 批量图片滤镜与特效处理工具:灰度/模糊/锐化/浮雕/边缘检测等10种特效一键应用、实时预览对比、批量处理导出

批量图片滤镜与特效处理工具:灰度/模糊/锐化/浮雕/边缘检测等10种特效一键应用、实时预览对比、批量处理导出

常用Python方法

下载此实例

实例介绍

运行效果

🚀 实例简介

一款基于 Python Tkinter 开发的批量图片滤镜与特效处理桌面工具。支持10种常用图片特效(灰度模式、高斯模糊、边缘检测、浮雕效果、锐化增强、轮廓提取、细节增强、亮度提升、对比度增强等),可一次性导入多张图片,实时预览滤镜效果,一键批量处理并导出PNG文件。

💻 核心代码

"""批量图片滤镜与特效处理工具 - 支持10种特效一键应用、实时预览、批量导出"""
import tkinter as tk
from tkinter import ttk, filedialog, messagebox
from PIL import Image, ImageFilter, ImageEnhance
import os, platform

CHINESE_FONT = "WenQuanYi Zen Hei" if platform.system() == "Linux" else "Microsoft YaHei"

# 10种滤镜定义
FILTERS = {
    "原始图像": lambda img: img,
    "灰度模式": lambda img: img.convert("L").convert("RGB"),
    "高斯模糊": lambda img: img.filter(ImageFilter.GaussianBlur(radius=3)),
    "边缘检测": lambda img: img.filter(ImageFilter.FIND_EDGES),
    "浮雕效果": lambda img: img.filter(ImageFilter.EMBOSS),
    "锐化增强": lambda img: img.filter(ImageFilter.SHARPEN),
    "轮廓提取": lambda img: img.filter(ImageFilter.CONTOUR),
    "细节增强": lambda img: img.filter(ImageFilter.DETAIL),
    "亮度提升": lambda img: ImageEnhance.Brightness(img).enhance(1.5),
    "对比度增强": lambda img: ImageEnhance.Contrast(img).enhance(1.8),
}

class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("批量图片滤镜与特效处理工具")
        self.geometry("900x650")
        self.configure(bg="#f0f0f0")
        self.files = []
        self.current_filter = "原始图像"
        self._build_ui()

    def _build_ui(self):
        # 顶部标题
        tk.Label(self, text="🎨 批量图片滤镜与特效处理工具", font=(CHINESE_FONT, 18, "bold"), bg="#f0f0f0", fg="#333").pack(pady=10)
        # 文件操作区
        frame_top = ttk.LabelFrame(self, text="文件操作", padding=10)
        frame_top.pack(fill="x", padx=15, pady=5)
        ttk.Button(frame_top, text="📂 选择图片文件", command=self._select_files).pack(side="left", padx=5)
        self.lbl_count = tk.Label(frame_top, text="已选择 0 张图片", font=(CHINESE_FONT, 11), bg="#f0f0f0")
        self.lbl_count.pack(side="left", padx=10)
        # 滤镜选择区
        frame_filter = ttk.LabelFrame(self, text="选择滤镜特效", padding=10)
        frame_filter.pack(fill="x", padx=15, pady=5)
        self.filter_var = tk.StringVar(value="原始图像")
        for i, name in enumerate(FILTERS.keys()):
            rb = tk.Radiobutton(frame_filter, text=name, variable=self.filter_var, value=name,
                                font=(CHINESE_FONT, 11), bg="#f0f0f0", command=self._preview)
            rb.grid(row=i//5, column=i%5, padx=8, pady=3, sticky="w")
        # 预览区
        frame_preview = ttk.LabelFrame(self, text="效果预览", padding=5)
        frame_preview.pack(fill="both", expand=True, padx=15, pady=5)
        self.canvas = tk.Canvas(frame_preview, bg="#ffffff", height=280)
        self.canvas.pack(fill="both", expand=True)
        # 底部操作
        frame_bottom = ttk.Frame(self, padding=10)
        frame_bottom.pack(fill="x", padx=15, pady=5)
        ttk.Button(frame_bottom, text="🚀 批量应用并导出", command=self._batch_export).pack(side="right", padx=5)
        self.lbl_status = tk.Label(frame_bottom, text="就绪", font=(CHINESE_FONT, 11), bg="#f0f0f0", fg="green")
        self.lbl_status.pack(side="left", padx=10)

    def _select_files(self):
        paths = filedialog.askopenfilenames(title="选择图片", filetypes=[("图片文件", "*.png *.jpg *.jpeg *.bmp *.webp")])
        if paths:
            self.files = list(paths)
            self.lbl_count.config(text=f"已选择 {len(self.files)} 张图片")
            self._preview()

    def _preview(self):
        """预览当前选中滤镜效果"""
        if not self.files:
            return
        self.current_filter = self.filter_var.get()
        try:
            img = Image.open(self.files[0])
            img.thumbnail((400, 270))
            filtered = FILTERS[self.current_filter](img.copy())
            # 显示到canvas
            from PIL import ImageTk
            self._photo = ImageTk.PhotoImage(filtered)

💡 适用场景

  • 自媒体配图批量处理
  • 电商产品图片美化
  • 设计素材特效加工
  • 教学演示图片滤镜原理

标签:

实例下载地址

批量图片滤镜与特效处理工具:灰度/模糊/锐化/浮雕/边缘检测等10种特效一键应用、实时预览对比、批量处理导出

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享!

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警