一、Kodak控件介绍
映像KODAKIMG.EXE是Windows 95/ 98/NT 和 Windows 2000中用于图像扫描、浏览和编辑的附件程序(在WINDOWS安装过程中是可选的),分为自由版和专业版(需另外购买)。在Windows的安装过程中,4个OCX Kodak控件(Kodak图像编辑控件、Kodak图像管理控件、Kodak图像扫描控件及Kodak图像缩略图控件)随着自由版映像程序的安装也被一同安装。这四个控件被允许用于任何的Windows开发工具中来开发与图像有关的软件产品。当然,自由版的映像程序限制并隐藏了这四个控件的一些属性和方法;比如,编辑控件的DeSpeckle方法仅限于结合专业版的映像程序使用。另外值得一提的是,专业版的映像程序通过引入新的图像OCR控件提供了扩展的图像处理能力。还有,Windows映像程序并没有随着Windows ME及Windows XP一同分发。在新的系统中,微软想以“图像与电传浏览程序”和“扫描仪与相机向导”取而代之。要在新系统上使用Windows映像程序,必须另行购买Windows映像程序专业版本;但如果从Windows 2000系统升级到XP,依然有映像程序及四个控件可用。
1. Kodak图像管理控件(非可视化方式)
本控件提供以下功能来管理图像文件:
1) 创建与删除目录;
2) 创建与删除图像文件;
3) 打开、保存与打印图像文档;
4) 添加、插入和替换包含多幅图像的图像文件(如tiff)中的图像;
5) 管理图像文件的属性;
2. Kodak图像编辑控件(可视化方式)
Kodak图像编辑控件提供了显示、注释和操纵图像的功能。而且,这个注释功能是从OCX控件内部提供的。该控件支持一下文件格式:AWD,GIF,TIFF,BMP,JPG,WIFF,DCX,PCX和XIF。
注意:AWD格式在Windows NT 4.0中不能使用。GIF和WIFF仅能在Windows 98中使用。
图像注释
Kodak图像编辑控件提供了图像注释功能,这通过几个属性,方法及事件来实现。注释功能允许应用程序给当前显示的图像添加注释。注释类型包括:Straight Line,Freehand Line,Hollow Rectangle,Filled Rectangle,Image Embedded,Image Reference,Text,Text Stamp,Text From File和Attack-a-Note。
图像注释功能可以通过编程来控制,也可以通过激活一个标准的图像注释工具栏来实现而不需要一句编程。
图像操纵
图像编辑控件提供许多属性,方法和事件让开发者实现图像的操纵。遗憾的是,其大多只能在专业版中使用。自由版提供了诸如:旋转,倒转和剪贴板操作等基本功能。
3. Kodak图像扫描控件(非可视化方式)
Kodak图像扫描控件提供通过TWAIN接口来扫描文档的功能,能同符合TWAIN协议的任何扫描仪和数字相机通讯。本控件提供下列功能:
1) 应用程序可以扫描与保存图像文档;
2) 扫描单幅或多幅的图像文档;
3) 可以在已存在的文档中添加或插入多幅已实现的图像。
4. Kodak图像缩略图控件(可视化方式)
本控件提供显示多页图像文件的缩略图预览功能。其典型应用是:与Kodak图像管理控件结合给多页图像文件添加、插入或删除一个页面。
二、用Koda控件开发软件及注意事项
1. 使用Koda图像控件编程
在Windows平台Visual Basic6开发环境中,只需在工程中包含Kodak图像控件即可用于开发。方式是:点击菜单“Project”-“components”,在组件对话框中,勾选Kodak图像四控件。随后,四控件出现在控件工具栏中,拖动或双击这些控件到VB表单上即可。
2. 用映像程序专业版开发软件的说明
开发过程中如果使用了Windows映像程序的专业版相应控件提供的一些属性、方法、事件或参数,那么要求终端用户机器上也应安装映像程序专业版本。当然,这个专业版本是需要破费的。
3. 关于编译和分发软件的说明
开发商可以用Koda图像控件来开发图像软件,但是这四个控件不可以随同软件的分发而一同发放给客户。既然这些控件随同Windows 95, 98 NT and 2000一起安装,这也就基本限定了开发出来的图像软件只能在这几个安装了Windows映像程序附件的Windows平台上使用。这样以来,用这四个控件开发出来的软件必须同对应版本的Koda图像控件一同编译。而且,终端用户在安装软件之前还必须安装对应版本的映像程序附件。
注意:打包时,一定不要把Kodka图像四控件与应用程序一块打包,因为这样是不能够正确安装Windows映像程序的。取而代之的是,终端用户应独立地安装映像程序以确保所有需要的控件的正确安装与注册。必要的话,可以再次从Windows安装CD上重装映像程序附件。
实践篇
一、 Kodak图像编辑控件应用举例
1) ImgEdit控件的主要属性是控制扫描图像的分辨率、图像的宽高、是否允许对图像进行局部选择等;其主要方法有拷贝、剪切图像到粘贴板,从粘贴板复制图像,旋转、放缩、 镜像图像;打印、保存、刷新图像等。
下面是使用这个控件的一些小例。
‘从剪贴板粘贴图象
Private Sub Paste_Click()
if (imgedit1.IsClipboardDataAvailable and imgedit1.ImageDisplayed ) then
‘从剪贴板粘贴图象,其参数为Imgedit的显示区域的起始坐标
imgedit1.ClipboardPaste(selleft,seltop)
end if
End Sub
‘镜像图像
Private Sub Flip_Click()
if imgedit1.ImageDisplayed then
imgedit1.Flip ‘镜像图像
end if
End Sub
‘旋转图象
Private Sub Rotate_Click()
if imgedit1.ImageDisplayed then
imgedit1.RotateRight ‘向右旋转图象
end if
End Sub
‘实现剪切
Private Sub Rotate_Click()
imgedit1.DrawSelectionRect(selleft, seltop,selwidth,selheight) ‘进行图象局部选择
imgedit1.ClipboardCut(selleft,seltop, selwidth,selheight) ‘剪切所选区域
End Sub
2) 另外,与ImgEdit控件绑定在一起的还有一个ImgAnnTool按钮控件,这一控件对应映像程序中的“批注”工具栏。下面这个例子可以通过“批注”工具栏操作ImgEdit控件中的图像。只需如下极简代码便OK。
Private Sub Form_Load()
With ImgEdit1
.FitTo 0 'BEST_FIT
.DisplayBlankImage 1700, 2200
.ShowAnnotationToolPalette ‘随后可使用“批注”工具栏操作当前图像文件
End With
End Sub
二、Kodak图像扫描控件应用举例
1) ImgScan控件的主要属性有:
a、FileType:图像的文件类型(该构件支持三种:TIFF,BMP,AWD);
b、ScanTo:返回或设置被扫描图像的目的;
可取值 含义
0 (缺省) 显示被扫描的图像.
1 显示被扫描的图像并写入一个文件.
2 把图像写入一个文件
3 以模板方式把图像写入文件并显示.
4. 以模板方式把图像写入文件
5 传真被扫描的图像
注意:如果取缺省值0,必须和 Wang ImgEdit 构件配合使用。
c、DestImageControl:Wang ImgEdit构件名;
d、Zoom:图像的放缩比例
2) ImgScan 的主要方法:
OpenScanner :打开扫描仪;
CloseScanner :关闭扫描仪;
StartScan : 开始扫描;
StopScan : 停止扫描
3) ImgScan使用举例
下面的程序段说明了如何使用Kodak图像扫描控件扫描一份文档,并把它保存在函数参数指定的文件名中。注意,窗体中Kodak图像扫描控件命名为ImgScan1。
Private Function ScanTheImage(ByVal TheImageFile As String) As Boolean
Dim ReturnValue As Long
Dim TestString As String
If ImgScan1.ScannerAvailable then
ReturnValue = ImgScan1.OpenScanner()
ImgScan1.PageOption = 2
ImgScan1.FileType = 1
ImgScan1.PageType = 1
ImgScan1.CompressionType = 4
ImgScan1.CompressionInfo = 1
ImgScan1.ScanTo = 2 ‘保存为文件
ImgScan1.image = TheImageFile ‘图像将被保存
ImgScan1.ShowSetupBeforeScan = True
ImgScan1.MultiPage = True
ReturnValue = ImgScan1.StartScan()
DoEvents
ImgScan1.CloseScanner
TestString = Dir(TheImageFile)
If TestString <> "" Then
ScanTheImage = True
End If
Else
Msgbox “扫描设备尚不可用”
Exit function
End If
End Function
三、联合应用举例
本文附加了eiStream公司的Windows映像程序控件开发参考例程中的“Imaging Sample”一例(此程序在Windows 98/VB6下调试通过)。本例程对除了ImgOCR外四个自由控件的主要功能作了详细讨论。详见源程序” Imaging Sample.rar”。
四、小结
以上四个Kodak控件主要威力在于:图像注释功能、多页图像文件的的管理能力、缩略图预览功能、图像扫描功能。对于专业版本,还有图像OCR功能。以上仅为抛砖引玉,读者可以结合Windows的HELP文件夹下的帮助文件Imgocxd.hlp等有关资料详细研究。