![](https://i-blog.csdnimg.cn/direct/0c122599dcdb45e5b56105224b4fe7e2.png)
cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ImageFile;
using Cognex.VisionPro.QuickBuild;
using Cognex.VisionPro.ToolBlock;
using Cognex.VisionPro.ToolGroup;
namespace 拍照_保存_实时显示_关闭相机
{
public partial class Form2 : Form
{
public CogAcqFifoTool acq;
public ICogImage Image;
public CogJob Job;
public CogJobManager JobManager;
public CogToolGroup toolGroup;
public CogToolBlock tb;
public Form2(CogAcqFifoTool acqFifoTool,CogToolBlock toolBlock)
{
InitializeComponent();
acq= acqFifoTool;
tb= toolBlock;
}
private void returnMain_Click(object sender, EventArgs e)
{
this.Close();
}
private void takephoto_Click(object sender, EventArgs e)
{
if (acq.Operator == null)
{
MessageBox.Show("相机连接失败", "相机设备");
}
else
{
acq.Run();
cogRecordDisplay1.Fit();
cogRecordDisplay1.Image=acq.OutputImage;
}
}
private void shownow_Click(object sender, EventArgs e)
{
if (shownow.Text.Equals("实时显示"))
{
shownow.Text = "关闭实时";
cogRecordDisplay2.Fit();
cogRecordDisplay2.StartLiveDisplay(acq.Operator,false);
}
else
{
shownow.Text = "实时显示";
cogRecordDisplay2.StopLiveDisplay();
cogRecordDisplay2.Image=new CogAcqFifoTool().OutputImage;
}
}
private void savepicture_Click(object sender, EventArgs e)
{
DialogResult s=MessageBox.Show("Image","是否要保存",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
if(s==DialogResult.Yes)
{
SaveImage();
MessageBox.Show("保存成功");
}
else
{
MessageBox.Show("已取消");
}
}
private void SaveImage()
{
string path=Directory.GetCurrentDirectory()+@"\Image";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
CogImageFileTool cogImageFile=new CogImageFileTool();
cogImageFile.InputImage=acq.OutputImage;
string imagen = $"{DateTime.Now.ToString("yyyyMMddHHmmss")}.bmp";
cogImageFile.Operator.Open($"{path}\\{imagen}",CogImageFileModeConstants.Write);
cogImageFile.Run();
}
private void savetb_Click(object sender, EventArgs e)
{
string path = Directory.GetCurrentDirectory() + @"\VIP\block.vpp";
tb.Run();
CogSerializer.SaveObjectToFile(tb, path);
}
private void entertb_Click(object sender, EventArgs e)
{
JobManager=CogSerializer.LoadObjectFromFile(Directory.GetCurrentDirectory()+@"\VIP\QuickBuild1.vpp")as CogJobManager;
Job = JobManager.Job(0);
toolGroup=Job.VisionTool as CogToolGroup;
cogJobEdit1.Subject = Job.VisionTool as CogToolGroup;
cogToolBlockEditV21.Subject = tb;
}
}
}
cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;
namespace _3_拍照_保存_实时显示_关闭相机
{
public partial class Form1 : Form
{
public CogAcqFifoTool fifoTool;
public string path=Directory.GetCurrentDirectory()+@"\VIP\acq.vpp";
public CogToolBlock cogToolBlock;
public ICogImage cogImage;
public Form1()
{
InitializeComponent();
bt();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (fifoTool.Operator != null)
{
fifoTool.Operator.FrameGrabber.Disconnect(false);
}
}
private void Form1_Load(object sender, EventArgs e)
{
fifoTool=CogSerializer.LoadObjectFromFile(path)as CogAcqFifoTool;
cogAcqFifoEditV21.Subject = fifoTool;
fifoTool.Run();
}
private void button1_Click(object sender, EventArgs e)
{
if(fifoTool.Operator == null)
{
MessageBox.Show("相机连接失败");
}
else
{
Form2 form2 = new Form2(fifoTool,cogToolBlock);
form2.ShowDialog();
}
}
private void bt()
{
cogToolBlock = CogSerializer.LoadObjectFromFile(Directory.GetCurrentDirectory() + @"\VIP\ToolBlock.vpp") as CogToolBlock;
}
}
}