联合编程(加载单个工具,ini读写,图片读写,setting存储)

加载单个工具例子

//保存到一个地方 让vs进行读取

namespace 加载单个pma工具

{

public partial class Form1 : Form

{

CogPMAlignTool pma;

public Form1()

{

InitializeComponent();

cogRecordDisplay1.Fit();

}

//窗体加载事件

private void Form1_Load(object sender, EventArgs e)

{

//加载vpp资源(重点)
pma = CogSerializer.LoadObjectFromFile("模版匹配.vpp") as CogPMAlignTool;//位置
//Subject 属性 工具展示的内容
cogPMAlignEditV21.Subject = pma;
//MessageBox.Show("加载成功");

}

private void button1_Click(object sender, EventArgs e)

{

if (pma==null)
{
MessageBox.Show("加载失败");
return;
}
OpenFileDialog dia = new OpenFileDialog();//文件对话框
dia.Filter = "All Image Files|*.jpg;*.png;*.jpeg;*.ico;*.tif;*.tiff;*.idb;*.bmp\"";
dia.Title = "请选择文件";
if (dia.ShowDialog() == DialogResult.OK)
{
Bitmap map = Image.FromFile(dia.FileName) as Bitmap;//加载图片路径
pma.InputImage = new CogImage8Grey(map);//转成8位灰图赋值给pma

}

}

private void button2_Click(object sender, EventArgs e)

{

if (pma ==null)
{
MessageBox.Show("加载资源失败");
return;
}
pma.Run();
//record 展示一条记录
//CreateLastRunRecord 创建最近的运行记录
//SubRecords 子记录
cogRecordDisplay1.Record = pma.CreateLastRunRecord().SubRecords0;
cogRecordDisplay1.Fit();

}

}

}

ini格式读写

namespace ini文件存储读取

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

// FileStream a = new FileStream(@"1", FileMode.Open, FileAccess.Write);

//StreamWriter a2 = new StreamWriter(a, Encoding.UTF8);

}

//写入

private void button2_Click(object sender, EventArgs e)

{

//1 写入指定节点指定的键 (没用则创建一个新键)
//IniAPI.INIWriteValue("C:\\Users\\12345\\OneDrive\\Desktop\\1.ini","net","ip","333");
//2 删除节点
//IniAPI.INIDeleteSection("C:\\Users\\12345\\OneDrive\\Desktop\\1.ini","data");
//3 删除键
//IniAPI.INIDeleteKey("C:\\Users\\12345\\OneDrive\\Desktop\\1.ini","net","ip");

}

//读取

private void button1_Click(object sender, EventArgs e)

{

// //1 获取所有的节点名称
//string\[\] s1 = IniAPI.INIGetAllSectionNames("C:\\Users\\18060\\OneDrive\\Desktop\\1.ini");
// foreach (string item in s1)
// {
// richTextBox1.Text += item +"\n";
// }

// 2 获取所有的items
//string\[\] s1 = IniAPI.INIGetAllItems("C:\\Users\\18060\\OneDrive\\Desktop\\1.ini","net");
//foreach (string item in s1)
//{
// richTextBox1.Text += item + "\n";
//}
// 3 获取对应节点的键的值(重要)
//string s1 = IniAPI.INIGetStringValue("C:\\Users\\18060\\OneDrive\\Desktop\\1.ini","net","ip","");
//richTextBox1.Text = s1;

}

}

}

图片读写操作

namespace 图片读写操作

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

方法一

private void button1_Click(object sender, EventArgs e)

{

//1 创建CogImageFileTool工具
CogImageFileTool fileTool = new CogImageFileTool();
OpenFileDialog dia = new OpenFileDialog();//文件对话框
dia.Filter = "All Image Files|*.jpg;*.png;*.jpeg;*.ico;*.tif;*.tiff;*.idb;*.bmp\"";
dia.Title = "请选择文件";
if (dia.ShowDialog() == DialogResult.OK)
{
//可以获取选择文件的路径
//fileTool.Operator.Open 打开fileTool工具
//参数1 路径
//参数2 读取fileTool工具
// 2 使用fileTool工具读取图片
fileTool.Operator.Open(dia.FileName,CogImageFileModeConstants.Read);
// 3 运行工具
fileTool.Run();
// 4 获取输出图 展示
cogRecordDisplay1.Image = fileTool.OutputImage;
// 5 自适应大小
cogRecordDisplay1.Fit();

}

}

private void button2_Click(object sender, EventArgs e)

{

CogImageFileTool fileTool = new CogImageFileTool();
//保存控件展示的图片
//把控件图片赋值给工具的输入图参数中
fileTool.InputImage = cogRecordDisplay1.Image;
//fileTool.Operator.Open 打开fileTool工具
//参数1 路径
//参数2 写入fileTool工具
// 2 使用fileTool工具写入图片
fileTool.Operator.Open(@"1.png", CogImageFileModeConstants.Write);
// 3 运行工具
fileTool.Run();

}

方法二

//使用位图进行读取展示

private void button3_Click(object sender, EventArgs e)

{

OpenFileDialog dia = new OpenFileDialog();//文件对话框
dia.Filter = "All Image Files|*.jpg;*.png;*.jpeg;*.ico;*.tif;*.tiff;*.idb;*.bmp\"";
dia.Title = "请选择文件";
if (dia.ShowDialog() == DialogResult.OK)
{
Bitmap bit = Image.FromFile(dia.FileName) as Bitmap;

CogImage8Grey bit1 = new CogImage8Grey(bit);//转化8位灰图
CogImage24PlanarColor bit2 =new CogImage24PlanarColor(bit);//转化为24位彩色图
cogRecordDisplay1.Image = bit2; //展示图片
cogRecordDisplay1.Fit();

}

}

//使用位图进行写入保存

private void button4_Click(object sender, EventArgs e)
{
string path = Directory.GetCurrentDirectory()+"\\data";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string path2 = path + "\\1.png";
//if (!File.Exists(path2))
//{
// return;
//}

//CreateContentBitmap创建位图内容
//参数1 把图片转成位图
Bitmap map = cogRecordDisplay1.CreateContentBitmap(Cognex.VisionPro.Display.CogDisplayContentBitmapConstants.Image)as Bitmap;
map.Save(path+$"\\{DateTime.Now:yyyyMMddhhmmss}.png");

}

}

setting存储

private void button1_Click(object sender, EventArgs e)

{

Settings set = Settings.Default;//获取配置对象
set.name = textBox1.Text;
set.age =int.Parse(textBox2.Text);
set.weight = float.Parse(textBox3.Text);
set.sex = bool.Parse(textBox4.Text);
set.Save();//保存更改

}

//读取数据

private void button2_Click(object sender, EventArgs e)

{

Settings settings = Settings.Default;
string name = settings.name;//获取配置表数据
int age = settings.age;
float weight = settings.weight;
bool sex = settings.sex;
richTextBox1.Text = name+"\n"+age+"\n"+weight+"\n"+sex;

}

//持久化存储
//json格式 {"age":10}
//file文件存储
//二进制存储方式
//csv存储格式 姓名,年龄
// 张三,10
//setting存储格式
//ini存储格式 net
// IP = 127.0.0.1
// port = 8080
//xml存储
//数据库

//存储数据

//内存存储: 数据类型存储方式 数组,字典,集合

相关推荐
samble1 小时前
从零搭建灌装监控系统(十二):配置系统,原子写入与容错
c#·wpf·mvvm·modbus·工业控制
流形填表4 小时前
题库去重实战:基于题干指纹的重复题清理
开发语言·c#
开开心心就好10 小时前
以图搜图找重复图片,本地工具离线就能用
javascript·智能手机·ffmpeg·c#·ocr·word·音视频
QQ_216962909611 小时前
基于C#(Asp.net)电竞陪玩信息管理系统的设计与实现
java·大数据·spring boot·微信小程序·c#·云计算·asp.net
未来之窗软件服务20 小时前
C# 截图源码支持自动保存-东方仙盟
c#·仙盟创梦ide·东方仙盟·电脑工具
UIU1141 天前
-7 / 2 在 C 里是 -3,在 Python 里是 -4,谁算错了?
c++·学习·c#
wflynn1 天前
GitHub 今日推荐|REDox:64 位 token 表示结构化数据,内存占用降 70% 支持多格式互转
开源·c#·github
驰骋工作流1 天前
C#/.NET 开源BPM工作流引擎6大常用对比选型分析驰骋BPM驰骋低代码低代码工作流引擎
开源·c#·.net
en.en..1 天前
C语言 fp与fd 区别详解
c#
淡海水2 天前
02-02-原理篇-分代GC
算法·unity·c#·游戏引擎·.net·gc