Image-CSharp:基于WPF和Material Design的图像处理软件项目

Image-CSharp:开源WPF多插件图像处理框架

分支1Tags0
文件最后提交记录最后更新时间
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前

Image-CSharp

基于WPF和Material Design的图像处理软件,模仿Image-Py功能。

功能特性

🎯 精确选择工具

  • 矩形选择工具
  • 椭圆选择工具
  • 多边形选择工具
  • 魔术棒选择工具
  • 智能边缘检测选择

🎨 绘图和标注

  • 画笔和铅笔工具
  • 橡皮擦工具
  • 填充工具
  • 文本标注
  • 几何形状绘制
  • 图层管理

📏 测量工具

  • 直线距离测量
  • 角度测量
  • 面积和周长计算
  • 像素强度测量
  • 批量测量统计

🔧 高级滤镜

  • 模糊滤镜(高斯模糊、运动模糊等)
  • 锐化滤镜(USM锐化、智能锐化等)
  • 边缘检测(Sobel、Laplacian、Canny等)
  • 形态学操作
  • 自定义卷积核

📊 数据分析

  • 图像直方图分析
  • 颜色分布统计
  • 纹理特征提取
  • 形状特征分析
  • 数据导出和报告

⚡ 批处理

  • 批量格式转换
  • 自动化处理流程
  • 宏录制和回放
  • 并行处理优化
  • 进度监控管理

技术架构

🏗️ 架构模式

  • MVVM模式: Model-View-ViewModel设计模式
  • 插件系统: 基于MEF的插件架构
  • 依赖注入: 使用Microsoft.Extensions.DependencyInjection

🎨 UI框架

  • WPF: Windows Presentation Foundation
  • Material Design: MaterialDesignThemes和MaterialDesignColors
  • MVVM工具包: CommunityToolkit.Mvvm

🖼️ 图像处理

  • ImageSharp: SixLabors.ImageSharp用于图像处理
  • 插件扩展: 支持自定义滤镜和工具插件

🔧 核心库

  • Image-CSharp.Core: 核心模型、接口和服务
  • Image-CSharp.Plugins: 插件实现
  • Image-CSharp.Tests: 单元测试

项目结构

Image-CSharp/
├── Image-CSharp.sln                 # 解决方案文件
├── Image-CSharp/                    # 主应用程序
│   ├── Views/                       # WPF视图
│   ├── ViewModels/                  # MVVM视图模型
│   ├── Controls/                    # 自定义控件
│   ├── Converters/                  # 值转换器
│   ├── Resources/                   # 样式和资源
│   ├── Assets/                      # 图标和资产
│   └── App.xaml                     # 应用程序入口
├── Image-CSharp.Core/               # 核心库
│   ├── Interfaces/                  # 接口定义
│   ├── Models/                      # 数据模型
│   ├── Services/                    # 业务服务
│   ├── Events/                      # 事件定义
│   └── Filters/                     # 滤镜实现
├── Image-CSharp.Plugins/            # 插件库
│   ├── Filters/                     # 滤镜插件
│   ├── Tools/                       # 工具插件
│   └── Transforms/                  # 变换插件
└── Image-CSharp.Tests/              # 单元测试

快速开始

环境要求

  • .NET 6.0 SDK
  • Visual Studio 2022 或更高版本
  • Windows 10/11

构建项目

# 还原NuGet包
dotnet restore

# 构建项目
dotnet build

# 运行应用程序
dotnet run --project Image-CSharp/Image-CSharp.csproj

使用Visual Studio

  1. 打开 Image-CSharp.sln
  2. 选择 Image-CSharp 作为启动项目
  3. 按 F5 运行

使用说明

基本操作

  1. 新建图像: 文件 -> 新建 或 Ctrl+N
  2. 打开图像: 文件 -> 打开 或 Ctrl+O
  3. 保存图像: 文件 -> 保存 或 Ctrl+S
  4. 撤销操作: 编辑 -> 撤销 或 Ctrl+Z
  5. 重做操作: 编辑 -> 重做 或 Ctrl+Y

工具使用

  1. 选择工具: 从工具箱中选择所需工具
  2. 调整属性: 在属性面板中调整工具参数
  3. 应用操作: 在画布上执行相应操作

滤镜应用

  1. 选择要处理的图像区域(可选)
  2. 从滤镜菜单选择所需滤镜
  3. 调整滤镜参数
  4. 应用滤镜效果

扩展开发

创建自定义滤镜插件

using ImageCSharp.Core.Interfaces;
using SixLabors.ImageSharp;
using System.ComponentModel.Composition;

[Export(typeof(IImagePlugin))]
[Export(typeof(IFilterPlugin))]
public class CustomFilter : IFilterPlugin
{
    public string Name => "自定义滤镜";
    public string Description => "自定义滤镜描述";
    public string Category => "自定义类别";
    
    public Dictionary<string, object> Parameters { get; set; }
    
    public Image ProcessImage(Image image)
    {
        // 实现滤镜逻辑
        image.Mutate(x => x.ApplyCustomEffect());
        return image;
    }
}

批处理脚本示例

using ImageCSharp.Core.Interfaces;

public class BatchProcessor
{
    private readonly IImageService _imageService;
    
    public void ProcessDirectory(string directory)
    {
        var files = Directory.GetFiles(directory, "*.jpg");
        
        foreach (var file in files)
        {
            var document = _imageService.LoadImage(file);
            
            // 应用滤镜
            _imageService.ApplyFilter(document, new GaussianBlurFilter());
            
            // 调整大小
            _imageService.ResizeImage(document, 800, 600);
            
            // 保存
            _imageService.SaveImage(document, file);
        }
    }
}

许可证

本项目采用 MIT 许可证。

贡献

欢迎提交Issue和Pull Request来改进项目!

联系

如有问题或建议,请通过以下方式联系:

  • 提交GitHub Issue
  • 发送邮件到项目维护者

注意: 这是一个演示项目,展示了如何使用WPF和Material Design创建图像处理软件。在实际生产环境中,可能需要更多的错误处理、性能优化和功能完善。

项目介绍

Image-CSharp:开源WPF多插件图像处理框架

定制我的领域