📄 chap10.htm
字号:
<html>
<!-- Mirrored from www.lgui.net/column/book1/chap10.htm by HTTrack Website Copier/3.x [XR&CO'2005], Mon, 21 Mar 2005 13:20:28 GMT -->
<head>
<meta http-equiv=Content-Type content="text/html; charset=GB2312">
<link rel=Edit-Time-Data href="chap10.files/editdata.html" >
<title>前 言</title>
<style><!--
.Normal
{text-align:justify;
text-justify:inter-ideograph;
text-indent:24.95pt;
line-height:20.0pt;
font-size:12.0pt;
font-family:"Times New Roman";}
.a
{text-align:center;
text-indent:0pt;
line-height:20.0pt;
font-size:12.0pt;
font-family:"Times New Roman";}
-->
</style>
</head>
<body lang=ZH-CN link=blue vlink=purple class="Normal" bgcolor="#FFFFFF">
<div style='layout-grid:16.3pt'>
<h1><a name="_Toc486331912"></a><a name="_Toc486332912"></a><a
name="_Toc486339021"></a><a name="_Toc454810886"></a><a name="_Toc454856660"><span><span>第<span
lang=EN-US>10</span></span></span></a><span><span><span style='font-family:黑体;"Times New Roman"'>章</span><span>
</span></span></span><span><span><span style='font-family:黑体;"Times New Roman"'>图象处理编程工具及简单的多媒体编程</span></span></span></h1>
<p style='line-height:18.0pt'><span style='font-family:宋体;
"Times New Roman"'>在前九章,我们主要是介绍一些数字图象处理的基本原理和算法,很多细节和优化的算法都没有提,所以程序的通用性和效率并不理想。其实有很多优秀的图象处理编程工具,功能强大,速度很快。在实际的编程中,可以调用它们提供的功能来满足我们自己的需求,提高了编程效率和代码的正确性。</span></p>
<p style='line-height:18.0pt'><span style='font-family:宋体;
"Times New Roman"'>在这一章里,将介绍图象处理编程工具</span><span
lang=EN-US>LeadTools(OCX)</span><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>。给出的例程中要用到</span><span
lang=EN-US>Visual C++(</span><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>以下简称</span><span
lang=EN-US>VC)</span><span style='font-family:宋体;
"Times New Roman"'>的</span><span lang=EN-US>AppWizard</span><span
style='font-family:宋体;"Times New Roman"'>和</span><span lang=EN-US>MFC</span><span style='font-family:
宋体;"Times New Roman"'>的一些特性,不熟悉</span><span
lang=EN-US>C++</span><span style='font-family:宋体;
"Times New Roman"'>的读者可以先看看相关的参考书。</span></p>
<h2> <span
lang=EN-US>10.1</span> <a name="_Toc486331913"></a><a
name="_Toc486332913"></a><a name="_Toc486339022"></a><a name="_Toc454810887"></a><a
name="_Toc454856661"><span><span>LeadTools</span></span></a></h2>
<p style='line-height:18.0pt'><span lang=EN-US>LeadTools(OCX)</span><span
style='font-family:宋体;"Times New Roman"'>是</span><span lang=EN-US>Lead Technologies</span><span
style='font-family:宋体;"Times New Roman"'>公司出品的一款功能强大的图象处理编程工具,目前的最新版本是</span><span lang=EN-US>Lead8.0(1997.7.25)</span><span
style='font-family:宋体;"Times New Roman"'>。</span><span lang=EN-US>LeadTools</span><span
style='font-family:宋体;"Times New Roman"'>实质上是一个</span><span lang=EN-US>OCX</span><span
style='font-family:宋体;"Times New Roman"'>控件。先来说说什么是</span><span lang=EN-US>OCX</span><span
style='font-family:宋体;"Times New Roman"'>控件?</span></p>
<p style='line-height:18.0pt'><span style='font-family:宋体;
"Times New Roman"'>如果你用过</span><span
lang=EN-US>Visual Basic</span><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>或者</span><span
lang=EN-US>Delphi</span><span style='font-family:宋体;
"Times New Roman"'>一类的可视化编程工具,那么对控件这个概念一定不会陌生,就是那些工具条上的小按钮,如</span><span
lang=EN-US>EditBox</span><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>,</span><span
lang=EN-US>Grid</span><span style='font-family:宋体;
"Times New Roman"'>,</span><span lang=EN-US>ImageBox</span><span
style='font-family:宋体;"Times New Roman"'>,</span><span lang=EN-US>Timer</span><span style='font-family:
宋体;"Times New Roman"'>等等。每个控件都有自己的事件</span><span
lang=EN-US>(</span><span style='font-family:宋体;
"Times New Roman"'>事件</span><span lang=EN-US>) </span><span
style='font-family:宋体;"Times New Roman"'>、方法</span><span lang=EN-US>(</span><span style='font-family:
宋体;"Times New Roman"'>方法</span><span
lang=EN-US>)</span><span style='font-family:宋体;
"Times New Roman"'>和属性</span><span lang=EN-US>(</span><span
style='font-family:宋体;"Times New Roman"'>属性</span><span lang=EN-US>)</span><span style='font-family:
宋体;"Times New Roman"'>。使用了控件的编程非常容易。首先,在程序的设计阶段可以设置一些属性,如大小,位置,标题</span><span
lang=EN-US>(caption)</span><span style='font-family:宋体;"Times New Roman";"Times New Roman"'>等等;在程序运行阶段,可以更改这些属性,还可以针对不同的事件,调用不同的方法来实现对该控件的控制。控件就好象一块块的积木,程序要做的事只是将这些积木搭起来。控件的最大好处是可以重复使用,甚至可以在不同的编程语言之间使用,例如你可以在</span><span
lang=EN-US>VB</span><span style='font-family:宋体;
"Times New Roman"'>中嵌入用</span><span lang=EN-US>VC</span><span
style='font-family:宋体;"Times New Roman"'>开发的控件。</span></p>
<p style='line-height:18.0pt'><span style='font-family:宋体;
"Times New Roman"'>控件的本质是微软公司的对象链接和嵌入</span><span
lang=EN-US>(OLE)</span><span style='font-family:宋体;
"Times New Roman"'>标准。由于它充分利用了面向对象的优点,使得程序效率得到了很大的提高,从而得到了广泛的应用。国外有很多公司就是专门制作各种各样控件的。控件的最早形式是以</span><span
lang=EN-US>.VBX</span><span style='font-family:宋体;
"Times New Roman"'>的格式出现的,后来变成了</span><span lang=EN-US>.OCX</span><span
style='font-family:宋体;"Times New Roman"'>。由于</span><span lang=EN-US>Internet</span><span
style='font-family:宋体;"Times New Roman"'>的广泛流行,微软公司推出了</span><span lang=EN-US>ActiveX</span><span
style='font-family:宋体;"Times New Roman"'>技术,就是从</span><span lang=EN-US>OLE</span><span
style='font-family:宋体;"Times New Roman"'>发展起来的,加入了</span><span lang=EN-US>WWW</span><span
style='font-family:宋体;"Times New Roman"'>上的功能。所以目前最流行的是</span><span lang=EN-US>ActiveX</span><span
style='font-family:宋体;"Times New Roman"'>控件。</span></p>
<p style='line-height:18.0pt'><span style='font-family:宋体;
"Times New Roman"'>介绍完了</span><span
lang=EN-US>OCX</span><span style='font-family:宋体;
"Times New Roman"'>控件的概念,下面我们以</span><span lang=EN-US>Lead Version5.1</span><span style='font-family:宋体;
"Times New Roman"'>为例,来看看</span><span lang=EN-US>LeadTools</span><span
style='font-family:宋体;"Times New Roman"'>究竟有哪些功能?</span><span lang=EN-US>Lead
Version5.1</span><span
style='font-family:宋体;"Times New Roman"'>可以在正版</span><span lang=EN-US>MicroSoft
Visual C++4.1</span><span
style='font-family:宋体;"Times New Roman"'>安装光盘中</span><span lang=EN-US>Msdev\samples\ocx\leadtools</span><span
style='font-family:宋体;"Times New Roman"'>和</span><span lang=EN-US>Msdev\redist\redist</span><span
style='font-family:宋体;"Times New Roman"'>下找到,主要是</span><span lang=EN-US>4</span><span
style='font-family:宋体;"Times New Roman"'>个文件,</span><span lang=EN-US> Lead51n.dll</span><span
style='font-family:宋体;"Times New Roman"'>,</span><span lang=EN-US>Lead32.ocx</span><span
style='font-family:宋体;"Times New Roman"'>,</span><span lang=EN-US>Lead.lic</span><span
style='font-family:宋体;"Times New Roman"'>,</span><span lang=EN-US>Ltocx.hlp</span><span
style='font-family:宋体;"Times New Roman"'>。如果你想了解</span><span lang=EN-US>LeadTools</span><span
style='font-family:宋体;"Times New Roman"'>的最新信息,可以访问以下</span><span lang=EN-US>www</span><span
style='font-family:宋体;"Times New Roman"'>网址:</span><span lang=EN-US><a
href="http://www.leadtools.com/" ><span style='color:windowtext;text-decoration:
none;text-underline:none'>http://www.leadtools.com/</span></a></span><span
style='font-family:宋体;"Times New Roman"'>。</span></p>
<p style='line-height:18.0pt'><span lang=EN-US>LeadTools</span><span
style='font-family:宋体;"Times New Roman"'>主要有以下几大功能:</span></p>
<p style='line-height:18.0pt;
'> <span
lang=EN-US>(1)<span style='font:7.0pt "Times New Roman"'> </span></span> <span
style='font-family:宋体;"Times New Roman"'>对显示设备的全面支持:在显示时,你的程序中无需考虑是哪种显示模式,如</span><span lang=EN-US>16</span><span
style='font-family:宋体;"Times New Roman"'>色还是真彩色。</span><span lang=EN-US>LeadTools</span><span
style='font-family:宋体;"Times New Roman"'>为你做了所有的事。当然你也可以通过设置参数获得对显示设备更多的控制。你还可以实现自己的调色板。</span></p>
<p style='line-height:18.0pt;
'> <span
lang=EN-US>(2)<span style='font:7.0pt "Times New Roman"'> </span></span> <span
style='font-family:宋体;"Times New Roman"'>支持多种文件格式:表</span><span lang=EN-US>10.1</span><span
style='font-family:宋体;"Times New Roman"'>是</span><span lang=EN-US>LeadTools</span><span
style='font-family:宋体;"Times New Roman"'>所支持的常用文件格式,其中读表示用</span><span lang=EN-US>LeadTools</span><span
style='font-family:宋体;"Times New Roman"'>能打开的文件格式,写表示</span><span lang=EN-US>LeatTools</span><span
style='font-family:宋体;"Times New Roman"'>能存成的文件格式:</span></p>
<p align=center style='text-align:center;
line-height:18.0pt'><b><span style='font-family:宋体;
"Times New Roman"'>表</span>10.1 LeadTools</b><b><span
style='font-family:宋体;"Times New Roman"'>支持的常用文件格式</span><span lang=EN-US></span></b></p>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<td width=189 valign=top class="Normal">
<p align=center style='text-align:center;
line-height:18.0pt'><span style='font-size:10.5pt; font-family:宋体;"Times New Roman"'>文件格式</span><span lang=EN-US style='font-size:10.5pt;
'></span></p>
</td>
<td width=189 valign=top class="Normal">
<p align=center style='text-align:center;
line-height:18.0pt'><span style='font-size:10.5pt; font-family:宋体;"Times New Roman"'>读</span><span lang=EN-US style='font-size:10.5pt;
'>(</span><span style='font-size:10.5pt;font-family:宋体;"Times New Roman"'>位</span><span lang=EN-US style='font-size:10.5pt;
'>/</span><span style='font-size:10.5pt;font-family:宋体;"Times New Roman"'>象素</span><span lang=EN-US style='font-size:10.5pt;
'>)</span></p>
</td>
<td width=189 valign=top class="Normal">
<p align=center style='text-align:center;
line-height:18.0pt'><span style='font-size:10.5pt; font-family:宋体;"Times New Roman"'>写</span><span lang=EN-US style='font-size:10.5pt;
'>(</span><span style='font-size:10.5pt;font-family:宋体;"Times New Roman"'>位</span><span lang=EN-US style='font-size:10.5pt;
'>/</span><span style='font-size:10.5pt;font-family:宋体;"Times New Roman"'>象素</span><span lang=EN-US style='font-size:10.5pt;
'>)</span></p>
</td>
</tr>
<tr>
<td width=189 valign=top class="Normal">
<p style='line-height:18.0pt'><span
lang=EN-US style='font-size:10.5pt;'>JFIF</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>:一种常用的</span><span
lang=EN-US style='font-size:10.5pt;'>Jpeg</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>文件格式,</span><span
lang=EN-US style='font-size:10.5pt;'>LeadTools</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>支持</span><span
lang=EN-US style='font-size:10.5pt;'>YUV 4:4:4, 4:2:2, 4:1:1(</span><span style='font-size:10.5pt; font-family:宋体;"Times New Roman"'>彩色</span><span lang=EN-US style='font-size:10.5pt;
'>)YUV 4:0:0(</span><span style='font-size:10.5pt;
font-family:宋体;
"Times New Roman"'>灰度</span><span lang=EN-US
style='font-size:10.5pt;'>)</span></p>
</td>
<td width=189 valign=top class="Normal">
<p style='line-height:18.0pt'><span
lang=EN-US style='font-size:10.5pt;'>8 (</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>灰度</span><span
lang=EN-US style='font-size:10.5pt;'>)</span></p>
<p style='line-height:18.0pt'><span
lang=EN-US style='font-size:10.5pt;'>24(</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>彩色</span><span
lang=EN-US style='font-size:10.5pt;'>)</span></p>
</td>
<td width=189 valign=top class="Normal">
<p style='line-height:18.0pt'><span
lang=EN-US style='font-size:10.5pt;'>8 (</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>灰度</span><span
lang=EN-US style='font-size:10.5pt;'>)</span></p>
<p style='line-height:18.0pt'><span
lang=EN-US style='font-size:10.5pt;'>24(</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>彩色</span><span
lang=EN-US style='font-size:10.5pt;'>)</span></p>
</td>
</tr>
<tr>
<td width=189 valign=top class="Normal">
<p style='line-height:18.0pt'><span
lang=EN-US style='font-size:10.5pt;'>JFIF</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>:另一种常用的</span><span
lang=EN-US style='font-size:10.5pt;'>Jpeg</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>文件格式,</span><span
lang=EN-US style='font-size:10.5pt;'>LeadTools</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>支持</span><span
lang=EN-US style='font-size:10.5pt;'>YUV 4:4:4, 4:2:2, 4:1:1(</span><span style='font-size:10.5pt; font-family:宋体;"Times New Roman"'>彩色</span><span lang=EN-US style='font-size:10.5pt;
'>)YUV 4:0:0(</span><span style='font-size:10.5pt;
font-family:宋体;
"Times New Roman"'>灰度</span><span lang=EN-US
style='font-size:10.5pt;'>)</span></p>
</td>
<td width=189 valign=top class="Normal">
<p style='line-height:18.0pt'><span
lang=EN-US style='font-size:10.5pt;'>8 (</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>灰度</span><span
lang=EN-US style='font-size:10.5pt;'>)</span></p>
<p style='line-height:18.0pt'><span
lang=EN-US style='font-size:10.5pt;'>24(</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>彩色</span><span
lang=EN-US style='font-size:10.5pt;'>)</span></p>
</td>
<td width=189 valign=top class="Normal">
<p style='line-height:18.0pt'><span
lang=EN-US style='font-size:10.5pt;'>8 (</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>灰度</span><span
lang=EN-US style='font-size:10.5pt;'>)</span></p>
<p style='line-height:18.0pt'><span
lang=EN-US style='font-size:10.5pt;'>24(</span><span
style='font-size:10.5pt;font-family:宋体;"Times New Roman";"Times New Roman"'>彩色</span><span
lang=EN-US style='font-size:10.5pt;'>)</span></p>
</td>
</tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -