C#、WPF个性化照相机制作(一)项目概述和初期准备

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 概述
  • 运行界面效果
  • 搭建项目文件
    • 关于Winform 和 WPF 的取舍
  • 配置
    • 调用的程序包
      • 关于Aforge ffmpeg 和 Opencvsharp
  • 引用


概述

这几个周来导师留了学习C#和WPF的任务,这款相机制作涵盖了我这几周所学的知识。能够实现拍照,调节图像参数, 截图拍摄,添加滤镜等功能。
下面记录一下实现的过程和避雷的点,欢迎大家批评指正。

运行界面效果

C#、WPF个性化照相机制作(一)项目概述和初期准备_第1张图片控件和具体功能:C#、WPF个性化照相机制作(一)项目概述和初期准备_第2张图片
C#、WPF个性化照相机制作(一)项目概述和初期准备_第3张图片根据点击的功能不同弹出不同的按键,执行不同的操作。


提示:以下是本篇文章正文内容,下面案例可供参考

搭建项目文件

新建项目 选择客户端应用程序(WPF):
C#、WPF个性化照相机制作(一)项目概述和初期准备_第4张图片

关于Winform 和 WPF 的取舍

WPF相比于Winform,个人感觉更加灵活,可以设计更多的样式。使得界面更好看。Winform 可能 可以更快捷的设计界面,直接调用提供的控件,不像WPF 需要调用接口。

配置

调用的程序包

打开项目,在Nuget中搜索opencvsharp4 搜索:
C#、WPF个性化照相机制作(一)项目概述和初期准备_第5张图片下载:C#、WPF个性化照相机制作(一)项目概述和初期准备_第6张图片安装这三个程序包。

关于Aforge ffmpeg 和 Opencvsharp

这两个都可以调用笔记本摄像头,两个程序包集成的功能不一样,Opencvsharp是Opencv在C#的调用库,可以进行图像处理等功能 。随着功能的添加,我也从ffmpeg 改成了使用Opencvsharp。

引用

因为中间显示摄像头拍照的功能采用picturebox 是winform提供的控件,所以需要调用配置。(不太明白这东西能不能叫接口,知道的朋友下面评论一下)
有两步:
1.右键点击引用,添加引用勾选:
C#、WPF个性化照相机制作(一)项目概述和初期准备_第7张图片然后点击确定。
2. 在.xaml 文件下添加:
C#、WPF个性化照相机制作(一)项目概述和初期准备_第8张图片具体代码如下:

xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"

具体调用:使用上面编辑的wfi 作为调用变量C#、WPF个性化照相机制作(一)项目概述和初期准备_第9张图片

<wfi:WindowsFormsHost x:Name="pictureBoxHost" ChildChanged="pictureHost_ChildChanged" >
//之间可以添加其他控件 或者是在界面初始化中使用,我采用的是界面中构建picturebox  
//我采用pictureboxHost 命名该调用控件
</wfi:WindowsFormsHost>

打开.cs文件
在初始化后添加代码`:

public Camera()
        {
            InitializeComponent();
            //初始化picturebox
            m_pictureBox = new System.Windows.Forms.PictureBox();
            m_pictureBox.Width = 640;
            m_pictureBox.Height = 480;
            m_pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; 
            //建立toolltip
            m_tp = new System.Windows.Controls.ToolTip();
            m_toolTip = new System.Windows.Forms.ToolTip();
            m_toolTip.SetToolTip(m_pictureBox, "1");
            //控件关系
            m_tp.PlacementTarget = pictureBoxHost;
            pictureBoxHost.Child = m_pictureBox;
            //在picturebox 中添加事件(根据后续功能添加)
            m_pictureBox.Paint += picturebox_Paint;
            m_pictureBox.MouseClick += picturebox_Click;
            m_pictureBox.MouseMove += pictureBox_MouseMove;
            m_pictureBox.MouseUp += pictureBox_MouseUp;
            m_pictureBox.MouseDown += pictureBox_MouseDown;
            

    }

以上是项目建立和项目调用控件、安装包等操作,后续的之后会慢慢补充。

`

你可能感兴趣的:(C#,WPF,个性化照相机制作,wpf,c#,开发语言)