![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图像处理
文章平均质量分 82
hotcan
Hotcan, 80后技术老炮儿,云计算和数字化技术的创业者。创业公司被收购之后,负责云和数字化转型业务。
展开
-
使用GDI+进行开发的一些问题(2)
问题2,System.OutOfMemoryException首先我们还是来看一段代码: Bitmap bmpTemp =newBitmap(image); Bitmap bmp =newBitmap(bmpTemp); bmpTemp.Dispose(); Bitmap bmp2 = bmp.Clone(newRectangle(1,原创 2013-01-27 22:43:31 · 354 阅读 · 0 评论 -
使用GDI+进行开发的一些问题(8)
问题8,修改图像的RGB以及色调,饱和度和亮度。最简单的办法,很容易,就是用之前的LockBits,然后直接修改R,G,B的数值,具体的就不多说了。在GDI+里面,Color有3个方法,分别是GetHue(), GetSaturation(), GetBrightness()。它是图像的色调,饱和度和亮度。其中Hue取值为[0,360),表示当前颜色在哪一个角度,Saturation和Brig原创 2013-01-29 13:58:01 · 462 阅读 · 0 评论 -
使用GDI+进行开发的一些问题(11)
问题11,ICM 2.0转换图像我在前面几章里面提到过ColorMatrix,可以将图像的色彩进行仿射变换。但是如果要对图像的色彩进行非线性变换的话,那就必须用到更强悍的API了。在Windows早期,有一套标准的色彩管理的API,叫做ICM 2.0 (Image Color Management 2.0)。在Windows Vista 以后,这套API升级成了WCS 1.0 (Windows原创 2013-01-29 14:41:17 · 756 阅读 · 0 评论 -
使用GDI+进行开发的一些问题(9)
问题9,ColorMatrix的使用图像的本质是什么?对不同的人来说这是不同的东西。在计算机的世界中,啥东西都是数据,图像也是一种数据。从自然界的光变成计算机的数据,需要通过采样和量化的处理。图像在计算机中,其实是一个二维数组,从数学上来说,这其实是一个矩阵。图像中的每一个点都是个四维向量,也就是(R,G,B,A), 在RGBA色彩空间中,我们可以使用一个矩阵对每一个点(R,G,B,A)作矩阵原创 2013-01-29 14:27:17 · 431 阅读 · 0 评论 -
使用GDI+进行开发的一些问题(6)
问题6,多帧图像多帧图像是指在一幅图像中有多个帧,支持多帧图像的格式不多,只有TIFF和GIF。其他格式都不能作为多帧图像存储。其中TIFF可以支持很多页,GIF动画也支持多帧。使用GDI+可以生成多帧TIFF,却没办法实现GIF动画的生成,有可能是因为专利的缘故。首先让我们来看看怎么样在生成多帧的TIFF图像。 publicvoid CreateMultiframeTIF原创 2013-01-28 11:43:08 · 420 阅读 · 0 评论 -
使用GDI+进行开发的一些问题(5)
问题5,透明,半透明和不透明这是个大题目。在WinForm/WPF里面我们经常会看到一些关于透明的属性,比如Backcolor里面可以选择Transparent, Form里面有一个叫Opacity的属性。都是和透明以及透明度相关的。在其实是在GDI+应用层上的一些东西,在这里我就不讲了。主要从更基本的地方讲起,其中还包括两块完全不同的内容。1.Alpha我们在上一讲中提到了Pixel原创 2013-01-27 23:05:27 · 454 阅读 · 0 评论 -
使用GDI+进行开发的一些问题(4)
问题4,读图是快了,处理怎么还是慢?GDI+的Bitmap类提供了两个罪恶的函数GetPixel, SetPixel,用来获取某个像素点的颜色值。这个2个函数如果只调用一次两次也就罢了,万一我想把整张图片加红一点,用下面的代码,我估计你等到黄花菜都凉了,还没有算完呢。 看看下面的代码是怎么写的。 FileStream fs =newFileStream(image原创 2013-01-27 22:52:13 · 389 阅读 · 0 评论 -
使用GDI+进行开发的一些问题(1)
1.GDI+的前世今生GDI+全称图形设备接口,Graphics Device Interface (GDI) ,他的爸爸叫做GDI, 用C写的。Windows XP出来以后用C++重新写了一下,变成了GDI+。从.NET Framework 1.0开始,GDI+就被正式封装在了.NET Framework里面,并被广泛地应用到了所有和图形图像相关的程序中。不幸的是,这个GDI+引入了微软有史原创 2013-01-26 23:24:59 · 651 阅读 · 0 评论 -
GDI+中的一些问题.序
2008年我加入换到微软商业事务平台组的时候,写过一系列文章,是关于GDI+的用法的。为了支持技术博客迁移到CSDN的想法,我把当年写的一些文章做一些修改,逐步迁移到CSDN上来。这里技术专家比较多,如果发现有什么问题,也请不吝赐教。在手工迁移的过程中,我会删掉一下当初不必要的废话,与时俱进地增加了一些内容。原创 2013-01-26 20:24:58 · 255 阅读 · 0 评论 -
使用GDI+进行开发的一些问题(3)
问题3,为啥读个图那么慢?一般来说,读图可以用以下几种方法: publicstaticImage FromFile(string filename); publicstaticImage FromFile(string filename,bool useEmbeddedColorManagement); publicstatic原创 2013-01-27 22:49:30 · 385 阅读 · 0 评论 -
使用GDI+进行开发的一些问题(7)
问题7,颜色修正我最近一直在颜色空间中纠结,前面讲的透明不透明只是一种特殊的颜色。今天我准备要讲的是真正的修正颜色。我们使用的数码相机有不同的型号,感光的CCD性能也是不一样的,再加上天气或者周围光线的原因,我们排出来的照片可能会偏色。此外,为了做一些特殊处理,可能需要将照片中某一个特殊的区域颜色进行修正。比如脸色可以变得更好一点,或者头发更黑一点等等。这个Topic很大,我会花好几个星期来讲原创 2013-01-28 11:48:35 · 462 阅读 · 0 评论 -
使用GDI+进行开发的一些问题(10)
问题10. Graphics的几个属性。今天我来讲讲Graphics在DrawImage里的几个的属性。Graphics是GDI+里面的大拿,可以用来画线,画矩形,甚至可以用来画各种各样的材质。通过不同的Pen,Brush来实现。具体的使用方法是所有想用GDI+的同学的基础,我就不详细讲了,具体可以参考MSDN:http://msdn.microsoft.com/en-us/lib原创 2013-01-29 14:38:01 · 422 阅读 · 0 评论