第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 -