自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 收藏
  • 关注

原创 C#实现ROI管理器案例(四)

本文将介绍如何使用C# 绘制和管理不同形状的ROI功能案例。代码实现了绘制矩形、旋转矩形、椭圆、圆形、多边形**等形状的ROI。同时实现了状态变更后的**撤销、重做**功能,以及删除、清除全部**内容的功能。

2025-06-12 13:47:30 657

原创 C#自定义创建与ROI绘制管理(三)- 旋转矩形优化

- 本文介绍如何使用C#实现自定义图像窗体控件,并在图像窗体控件中绘制和管理不同形状图形的功能,后面都将形状图形描述为ROI。今天更新的是旋转矩形URectangle2: 优化旋转矩形旋转后拖动位置变化过大的问题,实现基于某个点拖动调整大小。

2025-06-05 10:05:05 600

原创 C#自定义图像控件和ROI绘制管理(二)

本文将介绍如何使用C#实现自定义图像窗体控件,并在图像窗体控件中绘制和管理不同形状图形的功能,后面都将形状图形描述为ROI。UImage实现基本的图像显示功能,在UImageWindow中实现ROI管理。、ROI跟随图像功能,即图像拖动、平移时,ROI跟随移动。

2025-06-02 23:39:38 770

原创 C#实现矩形跟随图像平移、缩放

本文描述在WinForm程序中自定义图像控件实现图像的显示、拖动、缩放、矩形绘制、矩形拖动功能,以及矩形会跟随图像一起移动和缩放,控件名称UImageRectFollow。 - 对于之前的UImage自定义图像控件就个人感觉代码有点多,容易干扰理解,所以此案例仅用100多行代码实现一个简单的图像控件,并绘制一个矩形跟随图像移动、缩放。简洁便于理解。 - 内容会用于之后的ROI绘制管理案例中,实现ROI跟随图像移动缩放功能。

2025-06-01 09:51:08 269

原创 C#实现自定义图像控件 及 ROI的绘制与管理(一)

本文将介绍如何使用C#实现自定义图像窗体控件,并在图像窗体控件中绘制和管理不同形状图形的功能,后面都将形状图形描述为ROI。- 自定义图像窗体控件UImageWindow,继承UImage。- 主要介绍的是如何实现在图像控件上绘制及管理ROI。代码中使用的是List集合存储ROI。- 通过创建ROI基类,并使用List集合存储管理,在创建不同的ROI对象后将其添加到集合即可。- 如果需要实现创建新的ROI形状类型,可以通过继承ROI基类实现,达到统一管理的效果。

2025-05-30 16:56:33 965

原创 C#自定义图像控件,实现炫酷的RGB像素查看...

本文描述自定义图像控件放大或的像素查看功能的优化点。参考OpenCV的图像窗口,实现放大后显示使用对应颜色填充,并显示像素文本。

2025-05-27 16:19:53 553

原创 C#自定义控件图像放大后的RGB值填充像素效果

本文介绍使用 C# 实现自定义图像控件,该控件提供了图像显示、缩放、平移、像素级查看的视觉辅助功能。 - 控件启用了双缓冲优化绘制性能,支持高精度图像的详细信息展示。 - 该控件是在之前的WinForm图像控件的基础上增加了一些功能。添加了像素格显示、放大RGB值填充像素的炫酷效果。 - 使用可视化方式可以直观地显示图像中每个像素的RGB分量值,同时保持颜色分离显示,便于分析像素颜色组成。

2025-05-26 10:50:06 587

原创 C#实现WPF绘制网格图像背景...

本文描述如何使用WPF实现自定义的网格控件UGridControl。该控件是通过使用两种颜色交替填充形成的网格,一般作为图像显示控件的背景。控件支持自定义网格大小和颜色配置,并通过高效的绘图机制实现平滑渲染。

2025-05-23 14:00:30 837

原创 C#实现WPF自定义图像控件UImage...

本文介绍了如何基于WPF实现自定义图像控件UImage,该控件支持图像加载、缩放、平移、像素信息查看等功能。控件包含状态栏显示图像尺寸、缩放比例、鼠标位置坐标和像素颜色值,并提供简洁的界面交互。

2025-05-23 13:52:55 741

原创 C#系统桌面截图功能实现(三)

本文描述了如何使用C# 实现WinForms桌面截图程序。该程序实现了截图模式:全屏截图、工作区截图和区域选择截图,并包含简单的图片保存功能。核心内容包括:屏幕区域选择、DPI感知处理、实时尺寸显示、图片保存等。

2025-05-18 00:21:38 926

原创 C#自定义图像显示控件UVCanvas

本文介绍了一个名为UVCanvas的自定义C#图像显示控件,该控件实现了以下核心功能:支持图像显示、缩放(鼠标滚轮)、平移(鼠标拖拽)和双击重置。棋盘格背景绘制(可自定义网格大小和颜色。实时显示鼠标位置对应的图像坐标及像素RGB值。提供图像坐标变化的事件回调(ImagePixPointEvent)

2025-05-16 21:24:42 871

原创 C#实现Windows桌面截图功能(二)...

本文描述如何使用C#实现Windows桌面截图功能,允许局部截图。通过设置窗体透明度实现截图窗体,创建SetProcessDPIAware方法并在初始化时调用,实现使用桌面缩放时获取正确的截图区域。

2025-05-12 23:58:31 372

原创 C#实现Windows桌面截图功能...

本文介绍了如何使用C#开发一个简单的Windows桌面截图程序。通过该案例,读者可以学习到Windows窗体应用(WinForms)的开发知识,包括GDI+绘图技术、文件对话框的使用以及事件驱动编程的核心概念。程序实现了基本的屏幕截图功能,如捕获全屏、预览图像和保存截图文件。文章详细描述了实现步骤,包括获取屏幕边界、创建位图对象、屏幕内容捕获、内容传递和显示截图编辑器窗口。此外,还提供了主窗体和截图编辑窗体的代码示例,展示了如何通过点击按钮截图、显示图像并保存截图文件。

2025-05-12 10:45:15 754

原创 C#实现Window系统桌面锁定效果

本文介绍了如何在C#中实现Windows系统锁定屏幕的效果。通过使用Windows API中的SetForegroundWindow和GetForegroundWindow方法,程序能够强制将指定窗口设置为前台窗口,从而锁定屏幕。

2025-05-10 10:15:28 707

原创 C#如何实现Image无损转Icon

本文介绍了如何使用C#实现图像无损转换为图标(Icon)。通常使用Icon.FromHandle(image.GetHicon())方法转换图标会导致图像模糊,而通过自定义方式可以避免这一问题。文章详细说明了如何通过手动填写ICO文件的头部信息,并结合图像数据生成高清图标。代码示例展示了两种转换方式:自定义转换和直接使用Icon类转换,并比较了它们的视觉效果。自定义方式通过写入ICO文件头、图像数据等步骤,确保生成的图标与原图一致。最后,文章提供了完整的C#代码实现,并鼓励读者点赞、留言讨论或关注公众号获取

2025-05-10 10:04:18 613

原创 Halcon实现颜色分类识别

本文主要描述并示例演示了如何使用Halcon实现的欧几里得分类(Euclidian classification),进行颜色识别在彩色图像上展示分类器的训练和应用实现颜色分类功能。案例中创建了对红、蓝、绿三种颜色进行分类识别。

2025-05-08 09:48:46 410

原创 Halcon网状产品表面破损缺陷检测

Halcon 广泛应用于工业自动化、医学成像、科研等领域。它提供了强大的图像处理和分析工具,帮助用户实现高精度的视觉检测、测量、识别和定位任务。本文描述学习Halcon的过程,Halcon包含了很多算子单独学习某个算子是比较枯燥的,结合案例实操可以增加对此学习的兴趣。下面是halcon案例中的网状产品表面破损缺陷检测的案例。

2025-05-08 09:40:18 592

原创 C#实现ModbusTCP从站(三)

本文描述如何使用C#原生的Socket类实现ModbusTCP从站功能,ModbusTCP从站是作为响应设备(服务器端)被动接收并处理主站(客户端)的请求,通过使用Socket创建从站服务,用于侦听主站(客户端)连接,获取请求及数据响应。项目实现了线圈(Coils)和保持寄存器(Holding Registers)的数据临时缓存功能,其中线圈是2进制数据,寄存器是16位整形数据。所以可以创建bool数组(boo[])和ushort数组(ushort[])存储数据。

2025-05-06 18:56:30 1396

原创 C#实现ModbusTCP主站通讯(二)

本文在《C#实现ModbusTCP通讯》的基础上,扩展了读写int和float数据的功能,并支持多种字节序(ABCD、BADC、CDAB、DCBA)的读写操作。文章详细介绍了字节序的概念及其在数据存储中的不同排列方式,如大端序和小端序。通过C#代码示例,展示了如何在ModbusTCP通讯中实现int和float数据的读写,并提供了界面操作说明。运行环境为Windows11、Visual Studio 2022和.Net Framework 4.8.0。文章还提供了相关代码片段,包括按钮事件处理、数据转换方法

2025-05-03 15:59:44 853

原创 C#实现ModbusTCP主站通讯...

Modbus TCP 是一种基于 TCP/IP 协议的工业通信协议。废话不多说,本文描述如何使用System.Net.Sockets库实现ModbusTCP通讯,通过Socket对象发送报文请求、接收响应数据实现ModbusTCP数据的读写功能,详细内容下面展开描述。至此本案例展示了如何使用Scoket实现ModbusTCP通讯功能。大概就是基于TCP通讯,将数据按照指定MBAP格式填入发送即可。最后稍微做一些数据验证处理就可以了,通过案例学习编程是ge有趣的。

2025-05-01 14:39:28 1136

原创 C#实现Modbus RTU主站通信...

MainForm类代码大概实现如下功能:(二)ModbusRtuMaster类Mobus主站类实现如下功能:结语通过此案例学习基本的ModbusRTU功能,刚开始学习,暂时不想它的实现原理,先实现功能。通过使用Winform中自带的控件,编写一个简单的界面,通过完成案例的反馈,获取学习的兴趣感。希望文章能对你有帮助,既是分享,也是备份。

2025-04-26 23:10:11 790

原创 C#实现串口通讯功能

自动获取本地串口。根据传入串口基本属性参数打开串口。串口数据的发送接收功能(ASCII和HEX格式)。ASCII和HEX相互转换。[Category[ Category("UserProperty") ] [ Description("轮廓半径") ] public int Radius {set {if(radius!= value) {

2025-04-23 10:55:34 1308

原创 Halcon实现矩形查找...

本文描述如何使用Halcon实现矩形查找、显示测量到的轮廓点,并显示矩形轮廓的功能。

2025-04-23 10:40:45 395

原创 【C#】Halcon实现卡尺找圆

如何使用C#联合Halcon实现卡尺找圆,主要思路是通过在绘制圆形ROI对象时,给绘制的对象绑定事件:如附加(OnAttach)、拖拽(OnDrag)、调整大小(OnResize),当触发这些操作时,获取计量模型轮廓结果,即可实现圆形卡尺的拖动调整位置、大小。通过此案例学习C#联合Halcon实现卡尺找圆功能。学习如何创建绘制对象、获取绘制对象的参数,根据这些参数创建卡尺。匹配图像中的圆,卡尺可以拖动实现调整位置、大小。如有疑问,欢迎留言讨论!

2025-04-11 21:52:37 562

原创 【C#】学习之图形绘制:圆形卡尺

本文描述了如何在Form窗体程序上的控件绘制圆形带卡尺图形。支持调整位置、大小、卡尺数量、卡尺宽度、卡尺长度。功能实现思路:通过提取卡尺的基本属性,通过窗体界面控件调整参数值,实现卡尺工具的动态绘制。

2025-04-03 19:06:27 357

原创 【C#】C#学习之OpenCv实现模版匹配案例

本文使用C#结合OpenCV实现基本的模版匹配功能。通过自定义图像显示控件显示原图,使用OpenCvSharp库实现模版匹配功能。通过该案例既能学习到如何自定义控件、又能学习图像匹配相关的知识,应该是个不错的项目。如有疑问,欢迎留言讨论!也可以加入微信公众号 [编程笔记in] ,一起交流学习!

2025-04-03 18:57:54 585 1

原创 【C#】Winform窗体任意控件绘制形状图形(实现添加、删除、选中、移动、缩放功能)

本文描述了如何使用Winform窗体中的控件,绘制形状(如:矩形),实现添加、删除、选中、移动、缩放。

2025-03-31 13:44:31 646

原创 【C#】Winform自定义图像控件实现滚动缩放效果、拖动显示图像。

PictureBox 是 Windows Forms (WinForms) 中的一个内置控件,专门用于在窗体上显示图像,其可以显示多种格式的图像(如:BMP、JPEG、GIF、PNG、ICO 等)。使用方法,将自定义控件创建在同一个命名空间下,点击生成无报错后,即可在工具箱中查看选择自定义控件。拖拽到当前窗体即可。如果是创建自己的类库,并引用这个类库,引用时可能得报错原因,目标框架不同。编程笔记in你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

2025-03-29 11:40:38 793

原创 【C#】WinForm自定义控件及窗体

本文介绍了如何创建Winform窗体、控件,自定义窗体或控件的样式和窗体的基本功能。

2025-03-22 11:47:07 696

原创 【C#】CS学习之Modbus通讯

Modbus 从站广泛应用于工业自动化领域:1、传感器数据采集(如温度、压力等)2、执行器控制(如电机、阀门等)3、设备监控与故障诊断。Modbus 从站(Slave)是 Modbus 通信协议中的响应设备,负责接收并执行来自主站(Master)的请求。Modbus 从站是被动设备,它不能主动发起通信,只能响应主站的请求。从站的主要功能包括:1、接收主站的指令(如读取数据或执行操作)。2、执行相应的操作(如读取寄存器值或设置参数)。3、返回响应数据或错误码给主站。

2025-03-20 22:18:19 605

原创 【C#】Winform调用NModbus实现Modbus TCP 主站通讯

C#调用NModbus实现Modbus TCP 主站通讯,Modbus是一种串行通信协议,是工业领域全球最流行的协议之一。

2025-03-19 17:12:16 897 5

原创 【C#】WPF+ Ollama实现本地Deepseek模型对话v1.4

C#实现本地AI会话功能 。1. 新增根据聊天记录回复的功能。2. 优化了部分ViewModel,将对应Model字段、属性移到Model中,方便后续扩展。3. 新增读取外部数据回复问题功能,目前支持txt文件。4. 新增添加图片提问题功能,模型需要支持视觉(如:minicpm-v:latest)。5. 优化了类结构,创建对应的Model(MainWindowModel),将所有字段、属性移到Model。6. 新增聊天记录窗体,修改了窗体加载时,加载聊天记录的功能。将其拆分成一个视图。

2025-03-12 17:25:34 601

原创 【python】运行Janus-Pro-1B文生图功能

本文描述如何使用python + vscode 实现本地部署Janus-Pro-1B实现文生图。

2025-03-12 15:44:35 580

原创 【C#】如何实现手写Ollama服务交互,实现本地模型对话。

案例代码实现了与Ollama的HTTP交互,通过使用HttpClient、JSON序列化和错误处理,提供了一个简洁的异步文本生成接口。适合直接调用本地Ollama服务的场景,更多功能,可以后续拓展。

2025-03-10 10:40:22 1386

原创 【C#】WPF给ListBox中的每一项添加右键菜单功能

可以使用ContextMenu 在控件上实现右键点击显示菜单。可以给菜单添加多个菜单项(MenuItem),每个菜单项可以绑定事件或命令。ContextMenu 默认不继承父控件的,但可以使用逐级向上绑定到。

2025-03-07 09:34:08 1415

原创 【C#】WPF实现命令绑定

C# 命令绑定,实现有些控件不支持直接绑定命令,调用其他依赖实现命令的绑定。

2025-02-28 17:51:35 564

原创 【C#】WPF+ Ollama 实现本地 Deepseek模型对话

1、创建新的聊天。2、记录保存的功能。3、模型选择功能。

2025-02-25 15:18:07 1597 2

原创 【C#设计模式(23)——模板方法模式(Template Method Pattern)】

【C#设计模式(23)——模板方法模式(Template Method Pattern)】在抽象类中封装算法的结构,具体的实现步骤由子类定义,从而达到不改变算法结构的,允许子类重定义方法内容。

2025-01-14 11:20:02 455

原创 【C#】特性

C#特性学习、主要是用在数据库连接时如何动态创建对应的表,正常开发应该使用如Entity Framework等ORM框架实现自动创建生成。

2024-12-28 17:32:14 485

原创 【C#设计模式(22)——策略模式(Stratege Pattern)】

将每个算法封装在独立的可互换的策略类中,方便在运行时选择不同的算法。

2024-12-28 10:11:42 580

WinForm自定义控件及窗体

WinForm(Windows Forms)是Microsoft.NET框架中的技术,用于开发Windows桌面应用程序。它提供了一套丰富的控件和组件。通过拖放控件、编写事件处理程序等方式快速构建用户界面。 通过属性窗口定制这些控件的外观和行为。 通过数据绑定,将UI控件与数据源连接,实现数据的展示和更新。 通过上面的方法可以帮助开发者高效地创建桌面窗体应用程序,尤其适合初学者和需要快速开发的项目。 资源代码是如何创建Winform窗体,并自定义窗体样式和窗体的基本功能。 1、窗体关闭、最大化、最小化、适应。 2、无边框窗体移动、调整窗体大小。 3、菜单展开折叠。

2025-03-22

CS学习之Modbus主从站通讯功能

​Modbus TCP/IP:基于以太网和TCP/IP协议栈,将Modbus协议封装在TCP/IP协议中,适用于通过网络进行远程通信的场合,是目前工业以太网中常用的通信协议之一。 本资源简单实现了如何在在C#的Winform应用程序中使用NModbus库实现Modbus通讯,包括读取保持寄存器、以及相应的UI界面设计和事件处理。 在Modbus网络中,有一个主设备(通常是控制器或上位机)和多个从设备(如传感器、执行器等)。主设备发起通信请求,从设备根据请求进行响应,从设备不能主动向主设备发送数据。 Modbus 从站(Slave)是 Modbus 通信协议中的响应设备,负责接收并执行来自主站(Master)的请求。 Modbus 从站是被动设备,它不能主动发起通信,只能响应主站的请求。从站的主要功能包括: 1、接收主站的指令(如读取数据或执行操作)。 2、执行相应的操作(如读取寄存器值或设置参数)。 3、返回响应数据或错误码给主站。

2025-03-20

CS学习之Modbus通讯-从站

本文详细描述了如何在在C#的Winform应用程序中使用NModbus库实现Modbus通讯,包括读取保持寄存器、以及相应的UI界面设计和事件处理。 Modbus 从站广泛应用于工业自动化领域: 1、传感器数据采集(如温度、压力等) 2、执行器控制(如电机、阀门等) 3、设备监控与故障诊断。 Modbus 从站(Slave)是 Modbus 通信协议中的响应设备,负责接收并执行来自主站(Master)的请求。 Modbus 从站是被动设备,它不能主动发起通信,只能响应主站的请求。从站的主要功能包括: 1、接收主站的指令(如读取数据或执行操作)。 2、执行相应的操作(如读取寄存器值或设置参数)。 3、返回响应数据或错误码给主站。 实现步骤: 1、创建TcpListener并启动 侦听 2、创建Modbus从站数据存储 3、初始化数据 4、创建Modbus从站 5、创建Modbus TCP从站网络 6、添加从站到网络 7、异步侦听网络

2025-03-20

C#实现Tcp通信服务端、客户端数据的发送与接收,发送到指定终端、群发

在C#中,​Socket TCP通信是一种基于连接的、可靠的网络通信方式,通常用于在不同计算机上的应用程序之间建立稳定的通信链路。此案例是关于C#中Socket TCP通信的实现过程。 ① TCP通信的基本概念 TCP(Transmission Control Protocol)是一种面向连接的协议,它通过三次握手建立连接,确保数据在传输过程中不丢失、不重复,并按序到达。 ②服务器端一般的实现步骤 ​1、创建 Socket 对象:用于监听客户端的连接请求。 ​2、绑定IP地址和端口:将 Socket 绑定到指定的IP地址和端口。 ​3、创建和绑定终端。 ​4、接受客户端连接:使用 Listen() 方法接受客户端的连接请求,并返回一个Socket 对象。 ​5、发送和接收数据:通过 NetworkStream 对象与客户端进行数据的发送和接收。 ②客户端一般的实现步骤 ​1、创建 Socket 对象。 ​2、设置终端IP及端口,使用 Connect() 方法连接到服务器的IP地址和端口。 3、使用Socket 自带的Send(),Receive()方法发送和接收数据。

2024-05-07

C#之WPF+OllamaSharpe实现本地模型对话功能v1.4

Ollama本地模型对话、选择本地文件、本地图像对话 1、新增根据聊天记录回复的功能。 2、优化了部分ViewModel,将对应Model字段、属性移到Model中,方便后续扩展。 3、新增读取外部数据回复问题功能,目前支持txt文件。 4、新增添加图片提问题功能,模型需要支持视觉(如:minicpm-v:latest)。 5、优化了类结构,创建对应的Model(MainWindowModel),将所有字段、属性移到Model。 6、新增聊天记录窗体,修改了窗体加载时,加载聊天记录的功能。将其拆分成一个视图。 7、移除了折叠栏功能,更新为Grid区域的显示与隐藏。 将聊天记录列表从主窗体中分离)。 8、更新记录文件加载功能,显示提问日期。 新增选择文件类型设置预览图标。 9、新增功能,新聊天后第一次提问完成后,保存的记录刷新到记录列表、记录删除功能。 10、新增功能,创建新窗体判断显示Ollama服务运行状态。

2025-03-12

C#手动实现Ollama本地对话,开启Ollama服务后,发送HTTP请求

C#调用OllamaSharpe库实现Ollama本地对话,然后思考着能否自己实现这个功能。经过一番查找,和查看OllamaSharpe源码发现确实可以。其实就是开启Ollama服务后,发送HTTP请求。 ## 基本流程 1、启动Ollama服务进程。 2、创建HttpClient对象。 3、创建请求体(参数:模型名称、提示语、是否流式生成)。 4、将请求体序列化为JSON。 5、创建HTTP请求内容。 6、发送POST请求,并确保请求成功。 7、读取并返回响应内容,并解析相应字符串。 8、返回结果。

2025-03-10

C#调用NModbus实现Modbus TCP 主站通讯

C#调用NModbus实现Modbus TCP 主站通讯 --- Modbus是一种串行通信协议,是工业领域全球最流行的协议之一。 Modbus RTU:一种二进制协议,采用紧凑的数据帧格式,通信效率较高。通常用于串行通信链路,如RS - 485或RS - 232 ,在工业自动化领域应用广泛。 Modbus ASCII:采用ASCII码进行数据传输,数据帧可读性强,但传输效率相对较低,同样基于串行通信。 ​Modbus TCP/IP:基于以太网和TCP/IP协议栈,将Modbus协议封装在TCP/IP协议中,适用于通过网络进行远程通信的场合,是目前工业以太网中常用的通信协议之一。 --- ​主从模式:在Modbus网络中,有一个主设备(通常是控制器或上位机)和多个从设备(如传感器、执行器等)。主设备发起通信请求,从设备根据请求进行响应,从设备不能主动向主设备发送数据。 --- 实现功能: 1、连接从站服务。 2、写入数值到指定寄存器 3、定时读取寄存器值 4、定时心跳检测通讯状态。

2025-03-19

python运行Janus-Pro-1B文生图功能案例配置操作说明-备份

python运行Janus-Pro-1B文生图功能案例配置操作说明-备份,应当是free的。

2025-03-12

【C#之WPF+OllamaSharpe实现离线AI对话,调用Markdig格式化显示交互结果】

1、通过此项目学习了WPF。 2、通过此项目了解了基本的MVVM模式,WPF的数据绑定,属性变更,以及如何通过实现ICommand接口进行命令触发。3 、简单实现了使用C#和OllamaAPI实现AI交互界面。 4、简单调用了Markdig库 将交互数据以md格式显示。

2024-12-04

C#实现本地AI聊天功能(WPF+OllamaSharpe+Markdig.WPF)

WPF+OllamaSharpe实现本地聊天功能。 Ollama 是一个开源的大型语言模型(LLM)平台,提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等多种自然语言处理任务。 还提供了方便的界面和 API,使得从文本生成、对话系统到语义分析等任务都能快速实现。 相关依赖: OllamaSharpe:启用本地Ollama服务 Markdig.wpf : Markdown格式化输出功能。 Microsoft.Xaml.Behaviors.Wpf :解决部分不能进行命令绑定的控件实现命令绑定功能。 实现功能: 1、添加折叠栏展开|折叠功能。 2、视图切换功能 1)系统设置 2) 聊天 3、关闭窗体时提示是否关闭,释放相关资源。 4、添加首页功能,和修改新聊天功能。点击新聊天会创建新的会话(Chat)。 5、窗体加载时传递Ollama对象。 6、添加了窗体加载时,加载聊天记录的功能。 7、添加AI聊天功能,输出问题及结果到UI,并使用Markdown相关的库做简单渲染。 8、优化了构造函数,使用无参构造,方便在设计器中直接绑定数据上下文。

2025-02-25

【C#联合halcon实现绘制ROI功能】

【C#联合halcon实现绘制ROI功能】

2024-12-25

【WPF + halcon实现二维码识别】

【WPF + halcon实现二维码识别】

2024-12-09

【WPF实现RichTextBox添加文本、自动滚动】

WPF实现RichTextBox添加文本、自动滚动

2024-11-30

CSharp联合halcon实现模板匹配

CSharp联合halcon实现模板匹配 1、加载并显示图像功能。 2、图像拖动缩放功能。 3、绘制ROI:矩形、方向矩形、圆形、椭圆形。 4、创建模板:参数修改、模板轮廓显示。 5、匹配模板:参数修改、匹配轮廓显示、匹配结果显示。

2024-08-21

Github上优秀的.NET Core项目

Github上优秀的.NET Core项目

2024-10-21

C# 使用TIBCO中间件通信:发送、接收

C# 使用TIBCO中间件通信:发送、接收

2024-05-06

C# Winform 基于SerialPort类实现串口通信,ASCII数据收发(打开、关闭、接收、发送)

实现COM口的(打开、关闭、接收、发送),以ASCII的格式收发数据。

2024-05-06

C#使用Winform实现简单的编辑器:可编译、运行、关键字、注释高亮显示

Form1代码

2023-06-04

C#使用Winform原生代码实现ROI管理器案例

此代码是使用C# 绘制和管理不同形状的ROI功能案例。代码实现了绘制矩形、旋转矩形、椭圆、圆形、多边形等形状的ROI。同时实现了状态变更后的撤销、重做功能,以及删除、清除全部内容的功能。 本文主要介绍的是旋转矩形的绘制,如何实现基于当前鼠标调整功能。完善之前实现的旋转矩形绘制功能,鼠标拖动调整后的矩形跳动问题。

2025-06-12

C#自定义图像控件和ROI绘制管理(矩形、旋转矩形、圆形、跟随图像移动、截取ROI区域)

本资源介绍如何使用C#实现自定义图像窗体控件,并在图像窗体控件中绘制和管理不同形状图形的功能,后面都将形状图形描述为ROI。 - 自定义图像窗体控件UImageWindow,继承UImage(在我之前发表的文章中有介绍)。 - 主要介绍的是如何实现在图像控件上绘制及管理ROI。代码中使用的是List集合存储ROI。 - 通过创建ROI基类,并使用List集合存储管理,在创建不同的ROI对象后将其添加到集合即可。 - 如果需要实现创建新的ROI形状类型,可以通过继承ROI基类实现,达到统一管理的效果。

2025-06-02

C#实现ROI绘制管理功能(矩形、旋转矩形、圆形...)

本资源介绍如何使用C#实现自定义图像窗体控件,并在图像窗体控件中绘制和管理不同形状图形的功能,后面都将形状图形描述为ROI。 - 自定义图像窗体控件UImageWindow,继承UImage(在我之前发表的文章中有介绍)。 - 主要介绍的是如何实现在图像控件上绘制及管理ROI。代码中使用的是List集合存储ROI。 - 通过创建ROI基类,并使用List集合存储管理,在创建不同的ROI对象后将其添加到集合即可。 - 如果需要实现创建新的ROI形状类型,可以通过继承ROI基类实现,达到统一管理的效果。

2025-06-01

C# 实现之绘制矩形跟随图像平移、缩放

此资源描述在WinForm程序中自定义图像控件实现图像的显示、拖动、缩放、矩形绘制、矩形拖动功能,以及矩形会跟随图像一起移动和缩放,控件名称UImageRectFollow。 - 实现功能: - 1、显示图像并保持纵横比。 - 2、鼠标滚轮缩放图像。 - 3、拖动图像。 - 4、在图像上绘制矩形(ROI)。 - 5、拖动矩形。 - 6、缩放或拖动图像时,矩形会正确跟随变化。

2025-06-01

C#实现WPF自定义图像控件

本资源介绍了如何基于WPF实现自定义图像控件UImage,该控件支持图像加载、缩放、平移、像素信息查看等功能。控件包含状态栏显示图像尺寸、缩放比例、鼠标位置坐标和像素颜色值,并提供简洁的界面交互。 在进行图像处理或图像查看时,经常需要实现图像的缩放、平移和像素信息查看等基础功能,下面将介绍如何使用WPF实现可复用的自定义控件UImage,该控件封装上述的这些功能,实现如下功能: 1、支持图像加载和显示。 2、鼠标滚轮缩放功能。 3、鼠标拖拽平移功能。 4、双击重置视图。 5、实时显示鼠标位置和像素颜色值。 6、状态栏显示图像信息和缩放比例。 自定义图像控件UImage还算是比较完善的。通过封装为独立控,方便复用。 提供了较为完整的交互功能(如:支持缩放、平移、重置等常见图像操作,提供详细的图像信息和像素数据)。 控件还做了基本的资源管理,如图像资源的加载、释放。不是直接操作像素,而是使用WPF变换来提高效率,优化性能。 该控件适用于需要显示和查看图像的WPF应用程序,可作为基础组件进一步扩展功能,如添加图像处理、标注等功能。

2025-05-23

C#实现Windows系统桌面截图功能

此程序实现了三种截图模式:全屏截图、工作区截图和区域选择截图,并包含简单的图片保存功能。 核心内容包括:屏幕区域选择、DPI感知处理、实时尺寸显示、图片保存等。 关键技术点: 屏幕捕获:通过Graphics.CopyFromScreen方法实现屏幕内容捕获。 DPI感知处理:使用SetProcessDPIAware API应对高DPI屏幕环境。 透明窗体:通过设置窗体透明度实现区域选择界面。 鼠标交互处理:重写鼠标事件实现区域选择和实时反馈。 图像处理:支持截图后的图片保存功能。 核心内容: 主窗体(MainForm)。 截图窗体(FrmScreenshot)。 编辑窗体(FrmScreenshotEditor)。 其中截图窗体实现了最核心的区域选择功能,通过半透明覆盖层和实时矩形绘制提供了直观的用户体验

2025-05-18

C#自定义图像显示控件

本文介绍了自定义C#图像显示控件UVCanvas,该控件实现了以下核心功能:支持图像显示、缩放(鼠标滚轮)、平移(鼠标拖拽)和双击重置。棋盘格背景绘制(可自定义网格大小和颜色。实时显示鼠标位置对应的图像坐标及像素RGB值。提供图像坐标变化的事件回调(ImagePixPointEvent)。图像显示:支持设置Image属性并自动居中。 鼠标拖拽平移 滚轮缩放(基于鼠标位置的滚动缩放) 双击重置视图 实时显示鼠标位置的图像坐标 显示当前像素RGB值 通过事件对外提供坐标信息 总之自定义控件UVCanvas是一个实现了图像显示的控件,通过优化渲染和设计事件交互,提供图像查看的基础,特别适合需要精确坐标定位的场景(如图像处理工具)。

2025-05-17

C#实现Windows桌面截图功能(二)

本文描述如何使用C#实现Windows桌面截图功能,允许局部截图。通过设置窗体透明度实现截图窗体,创建SetProcessDPIAware方法并在初始化时调用,实现使用桌面缩放时获取正确的截图区域。

2025-05-13

C#实现Windows桌面截图功能

本资源实现了使用C#开发一个简单的Windows桌面截图程序。通过该案例,读者可以学习到Windows窗体应用(WinForms)的开发知识,包括GDI+绘图技术、文件对话框的使用以及事件驱动编程的核心概念。程序实现了基本的屏幕截图功能,如捕获全屏、预览图像和保存截图文件。文章详细描述了实现步骤,包括获取屏幕边界、创建位图对象、屏幕内容捕获、内容传递和显示截图编辑器窗口。此外,还提供了主窗体和截图编辑窗体的代码示例,展示了如何通过点击按钮截图、显示图像并保存截图文件。通过该案例,读者可以理解实际开发中的关键流程,如UI设计、功能逻辑实现和异常处理。最后,文章鼓励读者通过案例学习编程,并提供了项目源码和进一步学习的资源。

2025-05-12

C#之Image无损转Icon

本文描述如何使用C# 实现图像转图标。正常情况下我们会直接使用Icon类的Icon.FromHandle(image.GetHicon())方法进行图像转Icon图标,但是众所周知的是这个方法的缺点是转换的图标会模糊、与原图不一致。我们可以使用自定义填写数据的方式实现,如下图蓝色区域为Icon文件的头部信息,通过查看图像的头部信息,我们只需要按位填入对应的数值并填入原图byte[]类型数据即可创建Icon图像。 预 留:(地址00-01)(设置0) 类 型:(地址02-03)(1=ICO) 图片数量:(地址04-05)(默认1) 图像宽高:(地址06-07)(图标大小16、32…) 颜色数量:(地址08)(如果>=8bpp 设置0 ) 预 留:(地址09)(设置0) 颜色平面:(地址10-11)(默认1) 数据大小:(地址14-17)(图像数据长度) 数据偏移:(地址18-21)(设置22,即图像数据起始位)

2025-05-10

C#使用Socket实现ModbusTCP通讯从站功能

如何使用C#原生的Socket类实现ModbusTCP从站功能,ModbusTCP从站是作为响应设备(服务器端)被动接收并处理主站(客户端)的请求,通过使用Socket创建从站服务,用于侦听主站(客户端)连接,获取请求及数据响应。 1、处理客户端功能码: ① 处理线圈读取(功能码0x01)。 ② 处理保持寄存器读取(功能码0x03)。 ③ 处理线圈写入(功能码0x05)。 ④ 处理寄存器写入(功能码0x06)。 ⑤ 处理多线圈写入(功能码0x0F)。 ⑥ 处理多寄存器写入(功能码0x10)。 2、实现功能: 创建设置和获取线圈和寄存器数据的方法,基本功能如(①②③④),方法是直接设置或获取数组的值,没有使用Modbus协议。属于测试功能,仅限测试时使用(正常情况不建议直接修改值)。 ① 获取单个或多个线圈的值。 ② 获取单个或多个寄存器的值。 ③ 设置单个或多个线圈。 ④ 设置单个或多个寄存器。 ⑤ 支持多客户端连接。 ⑥ 显示或隐藏请求报文。 ⑦ 显示或隐藏相应报文。 ⑧ 定时读取功能。

2025-05-06

C#实现串口通讯:实现ASCII和HEX格式、数据转换等功能

C#实现串口通讯:实现ASCII和HEX格式、数据转换等功能。 此案例实现使用C#实现串口通讯功能,通过 System.IO.Ports命名空间中的 SerialPort实现如下功能: 1、自动获取本地串口。 2、根据传入串口基本属性参数打开串口。 3、串口数据的发送接收功能(ASCII和HEX格式)。 4、ASCII和HEX相互转换。 内容大概如下: 1、创建一些使用到的字段 2、窗体初始化、加载 3、创建方法实现通讯状态、数据接收、消息更新、控件状态更新 4、创建按钮事件实现:打开串口、发送数据 5、发送格式变更、以ASCII或HEX格式发送 6、创建串口参数变更方法 7、创建数据发送HEX、数据转换的方法 8、创建自定义控件、用于显示串口打开状态

2025-04-23

C# ModbusTCP主站通讯 自定义实现(二)

C#使用Socket类实现ModbusTCP通讯,实现基本的读写功能,并增加了读写int和float的数据功能、字节序读写功能 如下功能: 1、读取线圈(功能码:0x01)。 2、读取离散输入(功能码:0x02)。 3、读取保持寄存器(功能码:0x03)。 4、读取输入寄存器(功能码:0x04)。 5、写单个线圈(功能码:0x05)。 6、写单个寄存器(功能码:0x06)。 7、写多个线圈(功能码:0x0F)。 8、写多个寄存器(功能码:0x10)。

2025-05-05

计算机视觉 :C#+Halcon卡尺找圆

本资源描述了如何使用C#联合Halcon实现卡尺找圆,主要思路是通过在绘制圆形ROI对象时,给绘制的对象绑定事件:如附加(OnAttach)、拖拽(OnDrag)、调整大小(OnResize),当触发这些操作时,获取计量模型轮廓结果,即可实现圆形卡尺的拖动调整位置、大小。 一、基本步骤: 1、创建计量模型 2、添加计量对象(圆形测量) 3、设置计量模型参数 4、在图像中应用计量模型 5、获取测量结果(圆形卡尺、匹配结果) 二、主要算子: (1)CreateMetrologyModel 用于创建计量模型对象 (2)AddMetrologyObjectCircleMeasure 用于创建一个圆形测量对象,方便进行精确的圆形边缘检测和测量。 (3)SetMetrologyObjectParam 用于设置计量模型对象参数。 (4)ApplyMetrologyModel 用于将计量模型应用到图像。 (5)获取结果算子 GetMetrologyObjectMeasures 用于获取测量轮廓(卡尺)。 GetMetrologyObjectResultContour 用于获取匹配轮廓。 GetMetrologyObjectResult 根据输入获取不同的结果参数。

2025-04-11

本资源描述了如何在Form窗体程序上的控件绘制圆形带卡尺图形 支持调整位置、大小、卡尺数量、卡尺宽度、卡尺长度

本文描述了如何在Form窗体程序上的控件绘制圆形带卡尺图形。 支持调整位置、大小、卡尺数量、卡尺宽度、卡尺长度。 功能实现思路:通过提取卡尺的基本属性,通过窗体界面控件调整参数值,实现卡尺工具的动态绘制。 MainForm 窗体代码 主窗体添加四个参数调节控件(滑动块),实现动态调节卡尺参数:圆形半径,卡尺数量,卡尺宽度、卡尺高度。

2025-04-03

C#学习之OpenCv实现模版匹配案例

本文描述了如何使用C#基于OpenCvSharpe实现模版匹配功能,其中实现了下功能: 1、图像加载; 2、模版加载、绘制、保存功能; 3、模版匹配功能。

2025-04-03

CS学习之自定义控件图像控件-滚动缩放拖动显示图像

【摘要】 本文描述了如何使用Winform创建用户图像控件、实现滚动缩放效果,拖动显示图像。 PictureBox 是 Windows Forms (WinForms) 中的一个内置控件,专门用于在窗体上显示图像,其可以显示多种格式的图像(如:BMP、JPEG、GIF、PNG、ICO 等)。 PictureBox 内置了如下几种图像显示方式: Normal:图像放置在控件的左上角,不缩放。 StretchImage:拉伸图像以填充控件。 AutoSize:调整控件大小以适应图像。 CenterImage:图像居中显示,不缩放。 Zoom:按比例缩放图像,保持纵横比。 上面的图像显示方法只能实现基本的图像功能。如果想要实现更好的体验效果。还需要自定义一些功能,下面就是自定义一个图像用户控件实现滚动鼠标缩放图像、鼠标拖动显示图像。

2025-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除