您当前位置:设计在线网 >> 矢量图像技术 >> 浏览文章

利用VC++开发ASP图像处理组件-vc 图像的灰度处理

分享到:
本文章讲述了利用VC++开发ASP图像处理组件-vc 图像的灰度处理.

一、VC++中

的DC环境及GUI有关的各种对象

在Windows中有各种图形用户界面GUI(Graphics User Interface)对象,当我们在进行绘图时就需要利用这些对象。而各种对象都拥有各种属性,下面首先介绍几种GUI对象和拥有的属性。

(一)、GUI有关的各种对象

在Windows中有各种图形用户界面GUI(Graphics User Interface)对象,当我们在进行绘图时就需要利用这些对象。而各种对象都拥有各种属性,下面首先介绍几种GUI对象和拥有的属性。

字体对象CFont

字体对象CFont用于输出文字时选用不同风格和大小的字体。可选择的风格包括:是否为斜体,是否为粗体,字体名称,是否有下划线等。

刷子CBrush对象

刷子CBrush对象决定填充区域时所采用的颜色或模板。对于一个固定色的刷子来讲它的属性为颜色,是否采用网格和网格的类型如水平的,垂直的,交叉的等。也可以利用8*8的位图来创建一个自定义模板的刷子,在使用这种刷子填充时系统会利用位图逐步填充区域。

画笔CPen

画笔CPen对象在画点和画线时有用。它的属性包括颜色,宽度,线的风格,如虚线,实线,点划线等。

位图CBitmap对象

位图CBitmap对象可以包含一幅图像,可以保存在资源中。

CPalette调色板

CPalette调色板是一种颜色映射接口,它允许应用程序在不影响其他应用程序的前提下,可以充分利用输出设备的颜色描绘能力。

此外系统中还拥有一些库存GUI对象,你可以利用CDC::SelectStockObject(SelectStockObject( int nIndex )选入这些对象,它们包括一些固定颜色的刷子,画笔和一些基本字体。 如: BLACK_BRUSH 黑色刷子

NULL_BRUSH 空刷子

WHITE_PEN 白色画笔

DEVICE_DEFAULT_FONT 默认字体

在Windows中使用GUI对象必须遵守一定的规则。首先需要创建一个合法的对象,不同的对象创建方法不同。然后需要将该GUI对象选入DC中,同时保存DC中原来的GUI对象。如果选入一个非法的对象将会引起异常。在使用完后应该恢复原来的对象,这一点特别重要,如果保存一个临时对象在DC中,而在临时对象被销毁后可能引起异常。有一点必须注意,每一个对象在重新创建前必须销毁,下面的代码演示了这一种安全的使用方法:OnDraw(CDC* pDC) { a) CPen pen1,pen2; b) pen1.CreatePen(PS_SOLID,2,RGB(128,128,128));//创建画笔对象一 c) pen2.CreatePen(PS_SOLID,2,RGB(128,128,0));//创建画笔对象二 d) CPen* pOldPen=(CPen*)pDC->SelectObject(&pen1);//选择对象进DC e) drawWithPen1... f) (CPen*)pDC->SelectObject(&pen2);//选择对象进DC g) drawWithPen2... h) pen1.DeleteObject();//再次创建前先销毁 i) pen1.CreatePen(PS_SOLID,2,RGB(0,0,0));//再次创建对象 j) (CPen*)pDC->SelectObject(&pen1);//选择对象进DC k) drawWithPen1... l) pDC->SelectObject(pOldPen);//恢复 } OnDraw(CDC* pDC) 函数是VC中最常见的图形输出刷新函数,参数pDC 为CDC类的一个指针,我们通过它进行画图操作。

代码a行定义CPen 类的两个画笔对象pen1,pen2;分别在行b,c 调用CPen 类成员函数CreatePen 创建两个实心画笔, 其颜色RGB值分别为RGB(128,128,128), RGB(128,128,0)。行d 将新创建的画笔pen1选入当前设备上下文DC环境并将旧画笔保存在pOldPen里,这样在e行输出的图形或文本线条将以pen1的属性填充。f, g 行选入画笔二并输出。i,j 行销毁画笔一并且创建RGB(0,0,0)色的画笔,k行输出。最后一行l行将旧画笔选入当前DC环境,输出完毕。字体对象,刷子对象及位图对象的使用方法同上,具体使用将在下面的实例中描述。

在绘图时都需要一个DC对象,DC(Device Context设备环境)对象是一个抽象的作图环境,可能是对应屏幕,也可能是对应打印机或其它。这个环境是设备无关的,所以在对不同的设备输出时只需要使用不同的设备环境就行了,而作图方式可以完全不变。

(二)、D

推荐阅读:
VC++和VC++.net中与图像处理有关的几个概念、结构和类
基于VC.NET的GDI+图像处理
引用 浅谈用VC6.0单文档进行数字图像处理(下)
上一篇:VC数字图像(BITMAP)处理编程讲座
下一篇:没有了
推荐文章  
赞助商链接  
热门排行  
主题推广  
中国设计在线网 All Rights Reserved. 互联网违法和不良信息举报
信息产业部备案号:湘ICP备09001063号