随笔分类 -  [23]盗乃忒尔

摘要:随着时间的发展,现在的虚拟机技术越来越成熟了,在有些情况下,Java,.Net等虚拟机密集计算的性能已经和C++相仿,在个别情况下,甚至还要更加优秀。本文详细分析几个性能测试案例,探讨现象背后的原因。 阅读全文
posted @ 2019-07-31 23:26 xiaotie 阅读(6631) 评论(15) 推荐(12) 编辑
摘要:网上的视频很多都是分片的flv文件,怎么把他们合为一体呢?GUI工具就不考虑了,不适合批量执行,不适合在后台运行。有没有命令行工具或库可以实现呢?本文提供了C# 版 flvmerge 程序,能够快速合并多个flv文件。 阅读全文
posted @ 2013-11-25 10:42 xiaotie 阅读(7077) 评论(11) 推荐(11) 编辑
摘要:使用Notepad++开发C#,一个复杂点的csscript脚本://css_dir ..\..\lib;//css_ref Geb.Image.dll;//css_ref Geb.Image.ShapeAnalysis.dll;//css_ref Geb.Utils.dll;//css_ref Geb.Utils.WinForm.dll;//css_co /unsafe;using System;using Geb.Image;unsafe class Program{ public static void Main() { ImageArgb32 img = new ImageArgb3. 阅读全文
posted @ 2013-09-03 11:41 xiaotie 阅读(3253) 评论(0) 推荐(0) 编辑
摘要:以前一直用Linqpad在写小程序脚本,但是Linqpad自动完成功能要收费,且不开源,这样的话就不方便扩展了。今天在http://csscriptnpp.codeplex.com/发现了一款C#自动完成的插件:CS-ScriptforNotepad++(http://csscriptnpp.codeplex.com/),遂下载下来试用。试用感觉很不错,不过还有点小缺陷:(1)不支持指针的自动完成(这个一般人用不上,但图像开发需要!);(2)显示自动完成列表的快捷键是Ctrl+Space,很不爽。于是,下载了它的源码,进行了修改,将显示自动完成列表的快捷键修改为Ctrl+/,并且,支持指针的自 阅读全文
posted @ 2013-08-22 11:17 xiaotie 阅读(15295) 评论(44) 推荐(33) 编辑
摘要:asp.net 调用引用 native dll 的 C++/CLI dll 会报错:说是dll或其依赖项找不到。具体原因在于 IIS 只会从系统路径下去查找 native dll,不会查找 Bin 目录下的 native dll。 最简单的解决方法: (1)C++/CLI 项目编译时将dll设置为Delay Loaded Dll: (2)将asp.net项目的Bin目录添加到系统... 阅读全文
posted @ 2013-03-30 01:37 xiaotie 阅读(2055) 评论(0) 推荐(1) 编辑
摘要:怎么玩穿越?从楼梯上摔下?被车撞?被雷电劈?太危险鸟!最新穿越方式:一台 Kinect 即可。 去年上半年开发了一个Kinect项目,这是一个类似于虚拟演播室的项目,它使用 Kinect 实时捕捉图像,将人物抠出来,然后与图像、其它视频或其它程序里的内容实时合成。 过完年了,与对方约定的保密期也过去了,且撰文总结一下,谈谈开发这个项目过程中的体会。 先上图,去年夏天拍的。 在这张图的电... 阅读全文
posted @ 2013-02-24 07:41 xiaotie 阅读(10999) 评论(25) 推荐(15) 编辑
摘要:作为开发软件的程序员,应在力所能及的情况下使用正版软件。最近一直在用VisualStudio 2012 Express Desktop/Web 版本开发项目。VisualStudio 2012 Express 是免费的,功能基本上够用,但是还是有很多不足,如: (1)无法安装扩展;这个很致命,比如,想安装IronPython,没办法;想安装 Mono for Android,没办法。 (2)无... 阅读全文
posted @ 2013-02-22 14:12 xiaotie 阅读(24813) 评论(80) 推荐(45) 编辑
摘要:.Net 下默认没有读写视频的类,要进行视频操作很麻烦,之前用过网上的代码,用的很不爽。AForge.Net 对 ffmpeg 进行了封装,不过它引用的dll有点多,且没提供seek方法,无法跳到指定帧,也有点不爽,俺在 AForge.Net 对FFMPEG 封装的基础上,进行了修改,得到 Geb.Video.FFMPEG 库,现分享出来。 阅读全文
posted @ 2013-01-05 12:25 xiaotie 阅读(10348) 评论(52) 推荐(21) 编辑
摘要:以前写过《值类型不是值类型》一文。今天,就再来个语言游戏:public 的不public,fixed 的不能 fixed。本文将构造一个古怪类型:public字段无法访问,标了fixed关键字却无法fixed。 阅读全文
posted @ 2012-12-31 04:17 xiaotie 阅读(6984) 评论(14) 推荐(13) 编辑
摘要:今天碰到这样一个需求,写的C#库,有时候需要在.net 2.0下编译,有时候需要在.net 4.0下编译,这个库里使用了lambda表达式,使用了扩展方法,使用了几个 System.Core.dll 引入的Action类型。 为了在 .net 2.0 下能够编译成功,我写了一个文件 Patch.cs,定义了 System.Runtime.CompilerServices.ExtensionAtt... 阅读全文
posted @ 2012-11-26 21:31 xiaotie 阅读(7553) 评论(18) 推荐(9) 编辑
摘要:.Net的类型系统比较复杂,很多人经常给绕进来,比如《[原创]慢话interface是值类型还是引用类型》一文。而网上的、书上的关于.Net类型的表述一般是错误的或者不完全的,准确性最高的是MSDN上的表述,但那个表述又太简单了,让人很难理解。本文试着通俗的解释几个关于.Net类型的基础问题。1. 托管与非托管像现实生活中,有体制内和体制外之分,.Net 里也有托管和非托管之分。托管堆、GC这些是托管部分,非托管堆是非托管部分。托管部分叫做组织,体制内,非托管部分叫做群众,体制外。2. 引用类型是体制内的类型有组织关系的,体制内的类型叫做引用类型。体制内的类型(引用类型)有什么特点呢?它不能. 阅读全文
posted @ 2012-09-08 11:51 xiaotie 阅读(5184) 评论(19) 推荐(11) 编辑
摘要:我们玩技术,不是被技术玩。Coding是快乐的,而非苦逼的。.Net/C#这个神器竟然天天有人吐槽。看不下去鸟。在top10语言中,C#是最优美的语言,没有之一。在top10语言中,C#所可用的标准库及可获得其它库是最强大的之一,这个必须带之一,因为有java在。在top10语言中,C#语言是性能最高的语言之一(开unsafe指针后可以和C一较高下,结果100%是C#败,不过性能差距并不大,C#非托管程序性能约为C程序的四分之三),在top10语言中,C#是内存管理机制最完善的语言(即可用GC,又可不用GC,虽然C++也能做到,但是要靠第三方库,且使用起来不直观不方便)。此外,C#的类库极其. 阅读全文
posted @ 2012-06-12 10:52 xiaotie 阅读(34758) 评论(132) 推荐(75) 编辑
摘要:Kinect的彩图和景深图两个图是不对齐的,DepthImageFrame提供了MapToColorImagePoint方法用以计算指定景深图坐标所对应的彩图点。原以为从景深图坐标到彩图坐标是仿射变换关系,因此,在对齐时,在景深图指定了三个点(0,0),(0,400),(400,0),计算这三个点对应的彩图坐标,然后再求出变换矩阵,进行坐标变换。昨天客户反应,当人物走到摄像头的右侧时,会出现图像错位现象: 怀疑是否是景深图和彩图对齐的问题。下面进行详细测试,对景深图每隔10个像素点进行采样,计算对应的彩图坐标,绘制在同一张图上,景深图坐标为红点,彩图坐标为绿点。匹配代码: privateLis 阅读全文
posted @ 2012-03-09 04:36 xiaotie 阅读(3981) 评论(4) 推荐(1) 编辑
摘要:首先,我觉得,一个概念,如果不理解也不影响使用的话,那么,就没必要去理解它、去学习它。闭包就是这样一个概念,你不理解它也能很好的用它。俺这两年写as3程序,是天天在和它打交道,甚至有过一个function套一个,一个方法中套了20多个function的极端例子,但从未深究过它是怎么实现的,它就像水和空气一样,我们不需要知道水是H2O,空气是氧气氮气二氧化碳等的混合物,也活的好好的。 其次,我觉得... 阅读全文
posted @ 2011-08-03 14:18 xiaotie 阅读(46797) 评论(40) 推荐(29) 编辑
摘要:在昨天的博文《WPF/Silverlight的数据绑定设计的真糟糕》中,分析了三大应用场景下WPF/SL下绑定的缺陷。我的应用中有95%以上(甚至99%以上)的绑定都属于那三种应用场景,因此无法接受WPF/SL繁琐的绑定机制。骂不是目的,想办法解决问题是黑客精神的所在。知道缺陷之后,就可以来弥补。刚才花了两个小时时间用扩展方法写了一套新的WPF/SL绑定机制。 本文只是一份简单的草案和思路探索,... 阅读全文
posted @ 2011-02-15 12:45 xiaotie 阅读(3054) 评论(21) 推荐(6) 编辑
摘要:WPF/Silverlight的数据绑定体系设计的真糟糕,几乎每用一次就要在心中骂一次,不知道是哪个家伙设计的,就像Asp.Net中的ViewState一样,拙劣得很: (1)很难用,一些常见的简单场合使用起来很麻烦; (2)想整个搞清楚很杀脑细胞,不是循序渐进的过程; (3)不整个搞清楚就用不好,或者用的很别扭。 总之,就是一个这样的怪胎——简单的场景下使用很麻烦(增加了很多工作量),复... 阅读全文
posted @ 2011-02-14 04:27 xiaotie 阅读(8230) 评论(102) 推荐(18) 编辑
摘要:类型不是类。大多数程序员都知道类是啥,却根本不知道类型是啥。 《标准答案-有多少人能分得清值类型和引用类型?》中的答案是完全正确的。而《有多少人能分得清值类型和引用类型?》这篇文章中的这道面试题是完全没问题的,看似简单但要真正弄清需要极深功底。因为大多数程序员都知道类是啥,根本不知道类型是啥。 很多情况下,简单的概念往往是最难搞清楚的。比如说,什么是价格?什么是企业?1991年诺贝尔经济学奖得... 阅读全文
posted @ 2010-12-07 00:28 xiaotie 阅读(4425) 评论(86) 推荐(12) 编辑
摘要:很多情况下,我们需要对界面上的元素进行拖动,用鼠标在VS中biaji,biaji,biaji,点几个事件,然后再写出一堆代码,浪费时间不说,由IDE自动生成的那些代码实在是太难看,影响心情。本文使用扩展方法,对于这类行为需要进行封装,以使代码更简单简洁。 封装原则如下: (1)要简单,最好是一行代码就搞定; (2)要强大,能用于尽量多的类; (3)要灵活,可适用于尽量多的场景。 阅读全文
posted @ 2010-11-10 17:22 xiaotie 阅读(2349) 评论(6) 推荐(6) 编辑
摘要:Hilditch 细化算法是经典的二值图像细化算法,然而,在网上却很难找到一个详细、正确的介绍和实现。可以找到一辆个 Hilditch 算法的C实现,但缺乏注释,代码可读性也很差。在期刊网上找到几篇论... 阅读全文
posted @ 2010-08-12 03:12 xiaotie 阅读(9155) 评论(5) 推荐(3) 编辑
摘要:同样的算法,为什么会有数量级的性能差异?问题起源于几个月前与一位网友的探讨。这位网友在写婚纱抠图程序。一般来说,婚纱摄影的图像都较大,甚至大至几千万像素。这位网友使用C#开发,他的问题就在于性能。当时建议他使用XNA开发,但问题又出来了:加载一副图像的时间竟需要好几秒!而我自己写的C#加载几千万像素图像及图像转换操作,都是瞬间完成。为什么会有如此大的差别呢?这就是本文要说的。 问题主要处在程序的... 阅读全文
posted @ 2010-07-02 04:59 xiaotie 阅读(4801) 评论(17) 推荐(17) 编辑