关于从文件加载位图
摘要:在1.x的时候就遇到过位图没有释放造成图片文件无法使用的问题.今天使用2.0写代码的时候又发生了. 主要情况如下: 使用Bitmap b = new Bitmap("filename");创建位图.一般情况下,在b.Dispose();后可以解锁文件. 后改用using语句使其自动释放. 但在释放位图前,如果使用了Bitmap bnew = b.Clone() as Bitmap;将造成图片文件...
阅读全文
关于C#中枚举打印机
摘要:引言 前段时间为客户开发一套打印机配套的软件,对C#中调用打印机做了些研究。 问题 .Net Framework 1.1给我们提供了一个PrinterSettings类,以提供指定有关文档打印方式的信息,其中包括打印文档的打印机。其中的静态属性InstalledPrinters可以使我们获取安装在计算机上所有打印机的名称。 但是可惜的是,该属性仅仅能够提供已安装的打印机的名称。对于获取该打...
阅读全文
位图以Jpeg格式,不同质量保存C#代码
摘要:/**//// /// 把位图保存为jpeg格式,并可以这是保存质量/// /// 位图/// 文件名/// 保存质量/// 质量范围0-100,类型为longprivate void JpegSave( Bitmap b, string name, long quality ){ ImageCodecInfo myImageCodecInfo; Encoder myEn...
阅读全文
C#位图处理指针问题
摘要:今天整理算法的时候发现在过去在c++中用UINT指针访问32位ARGB位图时,每次偏移量正好一个象素,所以直接使用“++”而不是“+= 4”。同理,当直接用座标访问时,应使用“i * stride / 4 + j” 而不是“i * stride + j”。但转移到c#代码时发现,如果同样使用uint指针访问位图,当stride等于width*4时可能不会有问题,一旦noffset不为0,将会出现...
阅读全文
关于色彩转换
摘要:今天整理了以前的色彩转换算法,RGB,YMCK,HSL,HSV的算法基本没有问题。 但是在RGB转换Lab的算法中,发现和PS中的数值有差异。 找了N久资料,终于找到一个网站,http://www.easyrgb.com/math.html 发现除了算法和原来的存在差异,而且该网站中的算法还涉及到相关的参数标准,不同的标准使用不同的参数,在Observer. = 2°, Illuminant =...
阅读全文