提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 概述
- 运行界面效果
- 搭建项目文件
- 关于Winform 和 WPF 的取舍
- 配置
- 调用的程序包
- 关于Aforge ffmpeg 和 Opencvsharp
- 引用
概述
这几个周来导师留了学习C#和WPF的任务,这款相机制作涵盖了我这几周所学的知识。能够实现拍照,调节图像参数, 截图拍摄,添加滤镜等功能。
下面记录一下实现的过程和避雷的点,欢迎大家批评指正。
运行界面效果
控件和具体功能:
根据点击的功能不同弹出不同的按键,执行不同的操作。
提示:以下是本篇文章正文内容,下面案例可供参考
搭建项目文件
新建项目 选择客户端应用程序(WPF):
关于Winform 和 WPF 的取舍
WPF相比于Winform,个人感觉更加灵活,可以设计更多的样式。使得界面更好看。Winform 可能 可以更快捷的设计界面,直接调用提供的控件,不像WPF 需要调用接口。
配置
调用的程序包
打开项目,在Nuget中搜索opencvsharp4 搜索:
下载:安装这三个程序包。
关于Aforge ffmpeg 和 Opencvsharp
这两个都可以调用笔记本摄像头,两个程序包集成的功能不一样,Opencvsharp是Opencv在C#的调用库,可以进行图像处理等功能 。随着功能的添加,我也从ffmpeg 改成了使用Opencvsharp。
引用
因为中间显示摄像头拍照的功能采用picturebox 是winform提供的控件,所以需要调用配置。(不太明白这东西能不能叫接口,知道的朋友下面评论一下)
有两步:
1.右键点击引用,添加引用勾选:
然后点击确定。
2. 在.xaml 文件下添加:
具体代码如下:
xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
具体调用:使用上面编辑的wfi 作为调用变量
<wfi:WindowsFormsHost x:Name="pictureBoxHost" ChildChanged="pictureHost_ChildChanged" >
//之间可以添加其他控件 或者是在界面初始化中使用,我采用的是界面中构建picturebox
//我采用pictureboxHost 命名该调用控件
</wfi:WindowsFormsHost>
打开.cs文件
在初始化后添加代码`:
public Camera(){InitializeComponent();//初始化pictureboxm_pictureBox = new System.Windows.Forms.PictureBox();m_pictureBox.Width = 640;m_pictureBox.Height = 480;m_pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; //建立toolltipm_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;}
以上是项目建立和项目调用控件、安装包等操作,后续的之后会慢慢补充。
`