【C#】
莫干
这个作者很懒,什么都没留下…
展开
-
绘图操作时报错“无法从带有索引像素格式的图像创建 Graphics 对象”
如下代码会出现“无法从带有索引像素格式的图像创建 Graphics 对象”异常Bitmap bitmap = new Bitmap(fileName);Graphics graphics = Graphics.FromImage(bitmap);解决方法为DrawImage到一个空的图片。 OpenFileDialog dialog = new OpenFil原创 2017-11-20 13:48:12 · 3052 阅读 · 0 评论 -
Halcon读取jpg格式图片失败的处理方法
halcon读取jpg格式图片时,抛异常。最先想到的方法是用windows的画图软件或者PicPix软件将jpg格式的图片另存为BMP格式,但图片数量较多,这种方法不可取。如下的方法,利用Graphics类中的DrawImage方法重新绘制不带图片格式的Bitmap,而后save为BMP格式的图片。代码如下: OpenFileDialog dialog = new OpenFileD原创 2017-11-28 20:43:29 · 5147 阅读 · 0 评论 -
新建DataSet和DataTable,并从中提取数据到文本
DataTable dt = new DataTable();DataRow dr;dt.Columns.Add(new DataColumn("整数值 ", typeof(Int32)));dt.Columns.Add(new DataColumn("字符串值 ", typeof(string)));dt.Columns.Add(new DataColumn("日期时间值 ", type原创 2017-12-08 17:16:14 · 1434 阅读 · 0 评论 -
实现图片沿水平和竖直方向翻转(旋转180度)
相机旋转180度,为了不改变原有的算法,最好的方法是将图片旋转180,这样就和之前拍摄的图片一致了。最先想到的方法是在basler相机中设置,但只找到了ReverseX,不满足要求。查阅左飞的图像处理书,他介绍了基于GDI+ 中DrawImage实现翻转的方法,分辨率为2592*1944的图片,耗时260ms,太慢了,这种方法不可取。实现代码如下 private Bitmap原创 2017-11-22 16:30:40 · 13833 阅读 · 1 评论 -
实现下拉文本框的输入提示功能
winform中已经实现了类似的功能List listInit = new List(); private void Form1_Load(object sender, EventArgs e) { listInit.Add("A1"); listInit.Add("A2"); list原创 2017-12-13 09:56:19 · 5587 阅读 · 0 评论 -
.net 中Bitmap和Halcon中HObject的相互转换
public void BitmapToHObjectBpp24(Bitmap bmp, out HObject image) { try { Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height); Bi原创 2017-11-20 10:49:31 · 14633 阅读 · 10 评论 -
.net dll或者exe避免被反编译的方法
1. 使用商业版混淆器软件2. 核心代码用C++封装dll,提供给.net 调用原创 2018-01-06 13:26:54 · 3889 阅读 · 0 评论 -
DevExpress控件显示弹出注册对话框的应对方法
删除Properties下的license.licx,目前来看是可以的原创 2018-01-16 17:38:25 · 5344 阅读 · 1 评论 -
C#工作线程访问控件
摘自stackoverflow:https://stackoverflow.com/questions/14703698/invokedelegateIf you want to modify a control ,it must be done in the thread in which the control was created. This Invoke method allows原创 2017-10-31 15:16:18 · 295 阅读 · 0 评论 -
C#终止线程的方法
微软的文档中不建议以Abort的方式终止线程。比如终止线程的瞬间,FileStream没有释放,会出现问题,等等。Framework4.0提供了标准取消模式:协作式取消(Cooperative Cancellation),写了个小Demo进行验证开启两个线程,分别向对应文本框中添加信息。 public void Thread1st() {原创 2017-11-01 16:52:12 · 56811 阅读 · 1 评论 -
C# 字符串操作
//*******************【split】********************** string str = "yyyy-MM-dd"; string[] splitArray = str.Split('-'); //splitArray[0]:yyyy splitArray[1]:MM splitArray[2]:dd原创 2017-11-01 11:27:03 · 226 阅读 · 0 评论 -
C#图片处理之:亮度和对比度的校正
转载自:http://blog.csdn.net/ki1381/article/details/1539487亮度和对比度应该是最常见的处理要求了。就算是N年前9寸黑白电视机也必有这两个旋钮。亮度调整算法很简单。对每一个像素的RGB值同时加上或减去一个特定的值就可以了。当然由于RGB取值范围都是在[0,255]的,所以要考虑到越界的问题。 ///转载 2017-09-28 14:13:11 · 2087 阅读 · 0 评论 -
委托类型定义时new和直接赋值两种方式
public int delegate DelegateFunc(int a,int b);public int AddFunction(int a,int b){console.writeline("{0}",a+b);}DelegateFunc functionDe = new DelegateFunc( AddFunction) 和Delegate原创 2017-10-16 13:16:35 · 1556 阅读 · 0 评论 -
C#读写数据是否为原子操作
Reads and writes of the following data types are atomic:bool, char, byte, sbyte, short, ushort, uint, int, float, and reference types.Reads and writes of doubles isn't atomic.原创 2017-10-19 14:15:22 · 1185 阅读 · 0 评论 -
C# using 三种使用方式
转载自:http://www.cnblogs.com/fashui/archive/2011/09/29/2195061.html1.using指令。using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到。 例如:using System; 一般都会出现在*.转载 2017-10-27 10:16:12 · 229 阅读 · 0 评论 -
C# 程序间通信的两种方式
一 读写txt方式多个程序同事读写一个txt时,按如下的方式,可确保程序安全。FileStream fStream = new FileStream(strPath,XXX,FileAccess.ReadWrite,FileShare.ReadWrite) //write string txtFullPath = "F:\\Signal\\signal.原创 2017-10-19 13:10:34 · 4902 阅读 · 0 评论 -
C# Bitmap图像处理(含增强对比度的三种方法)
Bitmap类Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下:1. GetPixel方法和SetPixel方法:获取和设置一个图像的指定像素的颜色.2. PixelFormat属性:返回图像的像素格式.3. Palette属性:获取和设置图像所使用的颜色调色板.4. H...原创 2017-11-08 14:17:22 · 31430 阅读 · 1 评论 -
视觉检测基础(C#)
1. 两种取图方式1)生产消费者队列。临界区2)GetPicture 返回图片2. 图像处理1)输入图像2)输出处理结果true or false3. 多线程1)线程开启2)线程暂停。设备运行异常暂停,可恢复3)线程终止。不要使用Abort,建议while判断中加flag4. 信息交互1)进程间通信。例如与ShopFloor交互2)设备间通信。So...原创 2017-10-31 14:04:20 · 8389 阅读 · 0 评论 -
C# Halcon编程出现异常:“试图加载格式不正确的格式”
将项目属性中的目标平台 改为Any CPU,运行正常。原因不明原创 2017-10-24 10:39:28 · 3607 阅读 · 0 评论 -
请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配
转载自:http://blog.csdn.net/xfz0330/article/details/51477769在c#中引入c++生成的dll,出现了如下问题:对 PInvoke 函数“GAProject!GAProject.Form1::Add”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管转载 2018-01-17 15:34:52 · 937 阅读 · 0 评论