联合编程(加载单个工具,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存储
//数据库

//存储数据

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

相关推荐
淡海水14 小时前
08-03-不可变-ImmutableDictionary-TKey-TValue-与ImmutableHashSet-T-持久化哈希树
数据结构·算法·c#·哈希算法·dictionary·immutable
典典分享指南17 小时前
一品牌多产品线的 GEO 内容矩阵:从策略到落地
java·c#·bash·symfony
今夜有雨.17 小时前
C# 学习文档(零基础入门)
开发语言·学习·c#
软件黑马王子18 小时前
14.事件中心:主要作用和原理
开发语言·前端框架·c#
海盗12341 天前
微软技术周报 2026-08-31~09-07:GPT-6 Astra 登陆 Foundry、M365 全球认证故障复盘、C# 15 封闭层级
gpt·microsoft·c#
reasonsummer1 天前
【办公类-115-01】20260906育儿知识(家园小报)批量制作(2026年9月-2027年6月)
开发语言·数据库·c#
软件黑马王子1 天前
13.缓存池优化:对象上限配置
开发语言·前端框架·c#
唐青枫1 天前
C#.NET StructureMap 从依赖注入到项目实战
c#·.net
fujisheng6611 天前
FUI 编译期装配实践:从反射注册到 Source Generator
c#·unity3d
智码看视界1 天前
.NET 10 推理大模型TensorSharp 3.3.0 部署实测:纯.NET推理引擎反超llama.cpp 1.5倍,DFlash2提速62%
c#·.net·llama.cpp·.net 10·tensorsharp·本地大模型推理·开源推理引擎