当前位置: 首页 > news >正文

联合编程(加载单个工具,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().SubRecords[0];
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存储
//数据库

//存储数据

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

http://www.jsqmd.com/news/324066/

相关文章:

  • 2026 WINTER 2nd
  • Mybatis:
  • 1.30 - 子集 死锁的原因
  • 5.1 batch normalization的技术
  • C++优先队列详解与仿函数应用
  • 2026年知名的微型挖掘机/工程小型挖掘机厂家综合实力参考(2026)
  • 2026年热门的丽水卧螺离心机设备/丽水卧螺离心机厂家采购参考指南
  • 基于微信小程序的安全应急救援平台的设计和实现
  • SpringBoot+Vue 网络海鲜市场系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • 2026中小企业进销存选型指南:为何百万老板都在推荐象过河?
  • 2026年评价高的卧螺离心机厂家真实测评
  • C++模板类的7大典型应用场景总结得非常精准,涵盖了从基础容器到高级元编程的完整演进路
  • 我写的 Markdown 转换工具(Chrome 扩展)在 Chrome 应用商店上线了
  • 前后端分离新闻资讯系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • C++ 中面向对象编程(OOP)核心概念——**类的定义、封装、继承及类层次结构**——的清晰概述
  • 眼镜店库存总对不上?象过河专版:扫码出入库+度数预警,一招搞定!
  • SpringBoot+Vue 政府管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • 面向对象编程中两个关键机制:**对象自身引用(self-reference)** 和 **方法重置(overriding)**,并对比了 C++ 与 Java 的实现差异
  • 【2025最新】基于SpringBoot+Vue的志同道合交友网站管理系统源码+MyBatis+MySQL
  • openclaw终于安装成功了
  • docker 镜像导入导出
  • 2026年评价高的草坪割草机靠谱厂家盘点
  • 2026年热门的丽水离心脱水机设备口碑厂家汇总
  • obsidian 接入 ollama ai
  • 铝材老板看过来!告别“公斤/支数”换算噩梦,这款软件让库存账一秒算清!
  • 智能升级,效率飞跃——建广数科AI助手赋能企业数字化转型
  • 前后端分离医院药品管理系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • Java SpringBoot+Vue3+MyBatis 网络海鲜市场系统系统源码|前后端分离+MySQL数据库
  • 2026年驻马店全铝焊接大板制造厂综合实力TOP5
  • SpringBoot+Vue 新闻资讯系统管理平台源码【适合毕设/课设/学习】Java+MySQL