计算机图形湖南大学 chapter-10 多媒体编程

发布时间 : 星期四 文章计算机图形湖南大学 chapter-10 多媒体编程更新完毕开始阅读

第10讲 图象处理编程工具的介绍,简单的多媒体编程

[E] Deskew

[E] Despeckle DstClipHeight DstClipLeft DstClipTop DstClipWidth DstHeight DstLeft DstTop DstWidth

方法:旋转位图使其变正,常用于扫描图象的自动纠斜 方法:去除位图中的小斑点 属性:指定目标剪切矩形的高度 属性:指定目标剪切矩形的左坐标 属性:指定目标剪切矩形的上坐标 属性:指定目标剪切矩形的宽度 属性:指定目标矩形的高度 属性:指定目标矩形的左坐标 属性:指定目标矩形的上坐标 属性:指定目标矩形的宽度 方法:制作浮雕效果

属性:指定控件是否使能

[P] Emboss Enabled

EnableMethodErrors 属性:指示控件是否导致了系统错误

[P] EnableProgressEvent

属性:指示控件是否产生一个进度状态的事件,用来指示已经完成的百分比 [P] EnableTwainEvent属性:为真时,表示支持多页扫描,每扫一页产生一个TwainPage事件 Fill 方法:用指定颜色填充位图 Flip ForceRepaint ForePalette

方法:上下反转位图 方法:重画位图

属性:当为真时,将使用控件的调色板作为前景调色板 方法:Gamma校正

方法:获得位图的设备上下文

方法:获得控件客户区的设备上下文 方法:从控件位图中获得设备相关位图 方法:从控件位图中获得设备无关位图 方法:获得指定文件的信息 方法:获得颜色直方图 方法:获得调色板

方法:返回一个Picture的对象,是位图的一个拷贝 方法:将彩色图转成256级灰度图 方法:半影调效果

方法:使用直方图指定中间亮度,用以增加图象的对比度 方法:直方图均衡化

[P] GammaCorrect GetBitmapDC GetClientDC [P] GetDDB

[P] GetDIB GetFileInfo [P] GetHistogram GetPalette [P] GetPicture Grayscale Halftone [P] HistoContrast [P] HistoEqualize

[P] HistogramTable 属性:得到指定强度级别的颜色出现的次数 [P] Hue 方法:改变图象色调 hWnd InfoBits

属性:得到控件的窗口句柄

属性:得到指定图象文件每个像素所占的比特数 属性:得到指定图象文件所用的压缩方法 属性:得到指定图象文件的格式 属性:得到指定图象文件的高度

属性:对于多页图象文件,指示出该页的页号 属性:用来指示PhotoCD文件格式的分辨率 属性:得到文件大小

属性:得到要调入该文件,其位图所占的内存大小 属性:得到指定图象文件的宽度 方法:改变图象的亮度

phoneix的Photoshop

InfoCompress InfoFormat InfoHeight

InfoPage [P] InfoPCDRes InfoSizeDisk InfoSizeMem InfoWidth Intensity

- 5 -

第10讲 图象处理编程工具的介绍,简单的多媒体编程

[P] IntensityDetect 方法:用来检测指定范围内的颜色

Invert 方法:反色,制作底片效果 KeyDown KeyPress

事件:当用户按下键盘时,触发该事件

事件:当用户按下并抬起键盘时,触发该事件

事件:当用户抬起键盘时,触发该事件 方法:调入一个图象文件到位图中

方法:在JFIF或者LEAD CMP压缩文件中调入一幅Thumbnail图象 方法:中值滤波

方法:马赛克效果

事件:当鼠标按钮按下时,触发该事件 属性:用户定制的鼠标光标形状 事件:当鼠标移动时,触发该事件

属性:已有的鼠标光标形状(如沙漏,箭头等等) 事件:当鼠标按钮抬起时,触发该事件

事件:控件的某一部分需要重画时,触发该事件 属性:指定抖动方法,是顺序的还是误差传递的 属性:指定显示效果,如卷帘,淡入,淡出

KeyUp Load [P] LoadStamp [P] Median [P] Mosaic MouseDown MouseIcon MouseMove MousePointer MouseUp Paint

PaintDither [P] PaintEffect

PaintPalette 属性:当用只能显示256色或更低的设备显示高颜色数位图时,用来指定调色板的模式,是用固定的调色板,还是用最佳调色板

[P] PaintWhileLoad 属性:当为真时,调入图象的同时就在屏幕上显示,当为假时,全部调入后才在屏幕上显示 Paste

方法:将图象数据从剪切板粘贴到指定的位图

属性:指定PCD文件的分辨率

方法:增加海报效果,即将颜色数重新量化成较少的级别

[P] PCDRes [P] Posterize

PrintEnd 方法:结束打印工作 PrintStart 方法:开始打印工作

[P] ProgressStatus 事件:进度事件,用来得到已经完成的百分比 ReleaseBitmapDC 方法:释放位图设备上下文 ReleaseClientDC

方法:释放客户区设备上下文

[P] RemapIntensity 方法:使用一个查找表来改变位图的颜色值 [P] RemapTable 属性:RemapIntensity方法中用到的查找表 Render 方法:在任何设备上下文中打印或者显示图象 Resize 事件:当控件第一次显示或者大小改变时触发该事件 Reverse Rotate

方法:水平反转位图 方法:旋转位图 属性:橡皮筋的高度 属性:橡皮筋的左坐标 属性:橡皮筋的上坐标

RubberBandHeight RubberBandLeft RubberBandTop

RubberBandVisible 属性:为真时,橡皮筋可见 RubberBandWidth 属性:橡皮筋的宽度 [P] Saturation Save 方法:

方法:改变图象的饱和度

将图象存成文件

[P] SaveWithStamp 方法:将位图存成包括一幅Thumbnail图象的JPEG或者LEAD CMP文 件

ScaleHeight ScaleLeft

属性:控件客户区高度 属性:控件客户区左坐标

phoneix的Photoshop

- 6 -

第10讲 图象处理编程工具的介绍,简单的多媒体编程

ScaleMode

ScaleTop ScaleWidth Scroll

属性:控件的丈量单位,如厘米,像素,英寸等等 属性:控件客户区上坐标 属性:控件客户区宽度

事件:当滚动时,触发该事件

方法:将一设备相关位图拷贝,并将该拷贝指派到控件上 方法:将一设备无关位图拷贝,并将该拷贝指派到控件上 方法:指定目标剪切矩形 方法:指定目标矩形

[P] SetDDB [P] SetDIB SetDstClipRect SetDstRect

[P] SetPicture 方法:将一Picture对象拷贝,并将该拷贝指派到控件上 SetRubberBandRect 方法:指定橡皮筋矩形 SetSrcClipRect SetSrcRect [P] Sharpen [P] Shear Size

方法:指定源剪切矩形 方法:指定源矩形 方法:锐化 方法:错切 方法:放缩

[P] SpatialFilter 方法:用指定的滤波器处理,如LAPLACE,SOBEL,EMBOSS等等 SrcClipHeight 属性:指定源剪切矩形的高度 SrcClipLeft SrcClipTop SrcClipWidth SrcHeight SrcLeft SrcTop SrcWidth

属性:指定源剪切矩形的左坐标 属性:指定源剪切矩形的上坐标 属性:指定源剪切矩形的宽度 属性:指定源矩形的高度 属性:指定源矩形的左坐标 属性:指定源矩形的上坐标 属性:指定源矩形的宽度

[P] StretchIntensity

方法:对比度扩展

Trim 方法:在指定的矩形区域内剪切图象 TwainAcquire 方法:扫描(Twain标准) [P] TwainPage TwainSelect [P] Underlay UserPalette VersionDate VersionLevel VersionMajor

事件:当进行多页扫描时,每扫完一页触发该事件(Twain标准) 方法:选择扫描仪(Twain标准)

方法:将两幅结合起来,使得一幅图做另一幅图的文理 属性:指定调色板中的某一项颜色 属性:版本日期

属性:版本级别(EXPRESS 或者PROFESSIONAL) 属性:主版本号 属性:副版本号

属性:当前版本的全名 属性:版本时间

VersionMinor VersionProduct VersionTime

表10.2 LeadTools的事件,属性,方法列表

4. 源代码例子:

LeadTools的帮助做的特别好,这一点非常吸引人。每一个事件,方法,属性都有很详细的说明,后面都附有一个详细的例子。而且例子有很多种版本,如VC版,VB版,Delphi版,Access版,这样使用不同编程语言的程序员都能从中获得直接的帮助。

好了,介绍了这么多LeadTools的功能,下面我们给出一个最简单的利用LeadTools例子,其功能是显示任意一幅图(当然是Lead能支持的文件格式),图被缩放成和控件一样大小。

phoneix的Photoshop

- 7 -

第10讲 图象处理编程工具的介绍,简单的多媒体编程

实例:用Lead显示一幅图

步骤1:打开VC++5.0,用MFC AppWizard (exe)新建一个Project,起名为TestLead。要注意的是在Step1中,选定\,Step2中,选定\,其它过程全部采用缺省值。 步骤2:把Lead控件添加到工具条中,方法是:1..打开Project->Add To Project->Components and Controls菜单(其它的VC版本,如4.0;4.1;4.2,为Insert->Component?菜单),出现对话框,选择“Registered ActiveX Controls”那个目录(其它的VC版本为\Controls\那一页);2.选中\Std Control\那一项,如下图所示:

图10.1 Lead控件

然后按下Insert菜单即可;3.如果没有该项,找到lead32.ocx文件所在的目录(一般为95的系统目录),选择该文件,按下Insert按钮即可(其它VC版本的操作方法是:按下Customize?菜单,出现一个新的对话框,按下Import?菜单,找到lead32.ocx文件所在的目录,选择该文件,按下Import按钮,再按下OK按钮,然后做2所做的工作即可)。按下Close按钮,关闭Component对话框。插入该控件后,会出现一个对话框,提示你新增加了两个类Clead和Cpicture,选择Ok。打开对话框资源,选择ID为IDD_TESTLEAD_DIALOG的对话框,这时可以看到该控件已经添加到工具条中,如下图所示:

图10.2 Lead控件添加到工具条中

步骤3:将Lead控件从工具条拖到对话框中,设置好合适的大小,右击该控件,选择Property菜单,设置其ID属性为IDC_LEAD1,删除“TODO: Place form controls on this dialog”的静态文本。

phoneix的Photoshop

- 8 -

联系合同范文客服:xxxxx#qq.com(#替换为@)