触摸屏幕签字实现,免汉王等设备SDK对接
一个偶然机会得知,触摸屏可替代签批屏,其原理就是通过GraphicsPath来记录触摸过的坐标点,再通过Paint事件实时绘制到屏幕上,下面对类进行了封装,封装类似汉王签批屏的模式,主要流程如下:
1、初始化
/// <summary>/// 初始化/// </summary>/// <param name="_signname"></param>/// <param name="_panel"></param>public void Init(string _signname, Panel _panel){try{SignBox.Parent = _panel;SignBox.Left = 0;SignBox.Top = 0;SignBox.Width = _panel.Width;SignBox.Height = _panel.Height;SignBox.Paint += SignBox_Paint;SignBox.MouseDown += SignBox_MouseDown;SignBox.MouseMove += SignBox_MouseMove;SignName = _signname;}catch (Exception ex){LogHelper.Debug(ex);}}
2、记录绘制轨迹
private void SignBox_MouseMove(object sender, MouseEventArgs e){if (e.Button == System.Windows.Forms.MouseButtons.Left){try{mousePath.AddLine(e.X, e.Y, e.X, e.Y);}catch (Exception ex){MessageBox.Show(ex.Message);}}SignBox.Invalidate();}private void SignBox_MouseDown(object sender, MouseEventArgs e){if (e.Button == System.Windows.Forms.MouseButtons.Left){mousePath.StartFigure();}}
3、绘制
private void SignBox_Paint(object sender, PaintEventArgs e){try{myUserColor = System.Drawing.Color.Black;myAlpha = 255;Pen CurrentPen = new Pen(Color.FromArgb(myAlpha, myUserColor), myPenWidth);e.Graphics.DrawPath(CurrentPen, mousePath);}catch (Exception ex){LogHelper.Debug(ex);}}
4、保存签字信息
/// <summary>/// 签字/// </summary>/// <returns></returns>public bool Sign(){bool Ret = false;try{if (mousePath.PointCount > 0){using (SavedBitmap = new Bitmap(SignBox.Width, SignBox.Height)){SignBox.DrawToBitmap(SavedBitmap, new Rectangle(0, 0, SignBox.Width, SignBox.Height));SavedBitmap.Save(SignName);Ret = true;}}}catch (Exception ex){LogHelper.Debug(ex);}return Ret;}
5、重签
/// <summary>/// 清除/// </summary>public void Clear(){try{using (Graphics gra = SignBox.CreateGraphics()){gra.Clear(Color.White);}mousePath.Reset();}catch (Exception ex){LogHelper.Debug(ex);}}
6、释放
/// <summary>/// 释放/// </summary>public void Uinit(){try{if (SavedBitmap != null) SavedBitmap.Dispose();if (mousePath != null) mousePath.Dispose();}catch (Exception ex){LogHelper.Debug(ex);}}
效果如图
触摸屏幕签字实现,免汉王等设备SDK对接相关推荐
- c语言 sdk,适用于 C 语言的 Azure IoT 设备 SDK
您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 适用于 C 的 Azu ...
- 宇视科技设备SDK获取方式
Q:宇视科技设备SDK获取方式 A:宇视科技现已将SDK开发包放置在官网 [首页] > [服务与培训] >[下载中心] >[SDK开发] http://cn.uniview.com/ ...
- android usb麦克风阵列,语音设备 SDK 麦克风阵列建议
您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 语音设备 SDK 麦克 ...
- 海康威视设备SDK调用,是否支持IP通道的思考
最新看海康设备SDK demo,感觉有点问题,现在把它记录写下来,做个记录.这个事情从本质上来说,不值得说,但还是详细分享一下. BOOL CRealPlayDlg::DoLogin() {Updat ...
- 支付宝免密代扣签约SDK后台拼接(JAVA代码)
支付宝免密代扣签约SDK后台拼接(JAVA代码) 我是在做小程序时遇到的困难,在多方支持下才发现支付宝官方文档有很大的漏洞0.0,所以附上完整成功版供大家使用.开发时请结合支付宝官方免密代扣签约文档. ...
- 证件身份证识别设备SDK
证件身份证识别设备SDK 一.证件身份证识别设备应用背景 海关在管理旅客出境.入境时,需要旅客出示有效身份证证件(身份证.电子护照.港澳通行证.军官证.驾驶证.回乡证.户口本等),相关工作人员需要登记 ...
- python基于海康设备SDK的二次开发(三)
(最近重新修改了下SDK,因为在两个车间各安装了一台设备) 再次使用下这张图 今天是海康设备SDK二次开发的第三天,也是最后一次,因为这次将进入功能开发程序阶段,前面两次已经做好了全部的前期工作 . ...
- 大华、海康SDK对接,使用javacv+流媒体服务实现实时播放和回放
最近需要对接大华和海康摄像头,用SDK的方式,实现登录.OSD设置.预览.回放等功能,其他的功能都还好,实时预览和回放,里面涉及的东西太多了,对于刚接触摄像头开发相关的小伙伴来说,简直要崩溃,而且这方 ...
- 交换机crc错误是什么意思_OSN1800设备LDX对接S9706交换机,交换机持续有CRC错误告警...
问题描述 组网:A交换机(10GLAN)----LDX--(波分链路)--LDX----(10GLAN)B交换机. OSN1800设备LDX对接S9706交换机,A侧交换机持续有CRC错误告警,B侧交 ...
最新文章
- 神经网络的演变与发展(Part 2)
- python xlwings下载_Python学习随笔:使用xlwings读取和操作Execl文件
- Django模型层(models.py)之多表操作
- linux输入法源,Manjaro Linux 添加源及输入法
- WEB-UI自动化测试实践
- kubernetes RC(Replication Controller)和RS(Replicaset)的作用和区别
- windows10操作系统开启以及关闭测试模式
- AI改变现代商业的25种方式
- android视频加速播放
- 【013】故宫博物院数字文物库-让文物随时可赏
- ps界面为啥突然变大了_PS教程丨皮肤美白修饰
- 1012循环神经网络 RNN 的实现
- Linkerd 2.10(Step by Step)—设置服务配置文件
- 项目管理高手常用的10种图表!
- PWM调光线性恒流LED恒流芯片X10S
- 用Android实现计算器
- ecshop做淘宝客
- android 图片凸出
- C语言实现的一个交互小程序(一)
- 双时格林函数演练总结