【VB开源代码栏目提醒】:网学会员在VB开源代码频道为大家收集整理了“利用VB控制Word程序实现BMP文件快速压缩 - 计算机教材“提供大家参考,希望对大家有所帮助!
第9卷 第5期 2009年3月09521287203 科 学 技 术 与 工 程ScienceTechnologyandEngineering Vol19 No15 Mar.2009Ζ 2009 Sci1Tech1Engng1利用
VB控制Word程序实现BMP文件快速压缩罗 兰 陈 芳浙江林学院信息工程学院临安311300摘 要 在计算机应用过程中通常会或多或少产生一些BMP图形文件但是BMP文件较大当需要对图像进行压缩时希望能够利用通用资源来实现。
VB程序调用Word程序可以轻松快捷完成单幅或多幅BMP文件的压缩与保存。
关键词
VB Word BMP 压缩中图法分类号 TP311.1 文献标志码 A2008年11月19日收到第一作者简介:罗 兰1979—女硕士研究生研究方向:计算机应用技术、图像处理。
BMP是一种与硬件设备无关的图像文件格式它采用位映射存储格式除了图像深度可选以外不采用其他任何压缩因此BMP文件所占用的空间很大。
但是在计算机使用中常常要产生很多的BMP文件例如截图图像数据采集时。
当要存储或数据传输等就希望将BMP文件压缩后使用现在压缩软件很多但是对于不喜欢安装第三方
软件和喜欢用通用资源来编程的人们而言本文将给出一些有益的启发。
1 压缩原理与设计利用通用资源的压缩原理很简单把需要转化的BMP文件插入到Word文档中然后将Word文档保存为网页格式既完成了压缩。
这样的压缩方法对任何安装了Word程序的
计算机都可以完成而且手工方法也可以完成。
但是为了实现压缩自动化必须考虑自动压缩以及压缩后的文件的命名、存放和显示等程序过程。
具体的设计思路如图1所示。
删除非JPG文件是为了删除保存Word文档时候生存的文件夹和文件否则直接删除内有文件的图1 BMP文件
压缩流程文件夹程序容易报错。
建立存放文件夹主要是为了使用者查找方便而建立程序在插入BMP文件时候获得文件路径然后在给路径下建立新文件夹用来存储压缩后的文件。
2 压缩方法与实现压缩方法与实现将按照压缩的
设计思路通过
VB程序来完成。
2.1
VB中应用API函数选择BMP文件选择使用API函数主要是语法简单程序易于控制和程序可移植性好等优点具体引用方法是在APIViewer.exe声明中查找需要的函数、数据结构和数据常量如本段中只要引用GetOpenFileName函数、OPENFILENAME数据结构以及OFN开头的数据常量即可具体的解析
代码如下1:DimiAsInteger?? 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.netDimfnAsOPENFILENAMEWithfn .lStructSizeLenfn .hInstanceApp.hInstance .hwndOwnerMe.hwnd .lpstrFileSpace250 .nMaxFile255 .lpstrFilter3.bmpvbNullChar3.bmp .flagsOFN_EXPLOREROrOFN_ALLOWMULTISELECTEndWithGetOpenFileNamefn‘弹出选择BMP文件的“打开”对话框fileASplitfn.lpstrFilevbNullChar ‘分离文件路径和文件名保存在fileA数组Fori1ToUBoundfileA-2Text1.TextText1.TextfileAi ‘在界面上的text框中显示BMP文件名Next图2图2 BMP文件“打开”对话框2.2
VB中应用Word程序启动
VB的exe工程后在菜单“工程”中选择“引用”在若干
列表中选择“MicrosoftWord11.0ObjectLibrary。
Office2003为Word11.0Of2fice2000的是9.0OfficeXP的是10.0。
而未安装Office的计算机中则无法引用此项2。
引用Word程序后就可以在
VB中申明和使用Word
程序了其解析程序段如下:DimwaAsNewWord.ApplicationDimwdAsDocumenDimiAsIntegerwa.VisibleFalse Word程序界面不可见Setwdwa.Documents.Add打开一个新文档Fori1ToUBoundfileA??2 fileA存储BMP文件目录和文件名的数组 wd.Application.Selec2tion.InlineShapes.AddPicturefileA0fileAi将目录下的所有指定BMP文件插入文档中Nextwd.SaveAsFileName:C:1.htmFileFormat:wdFormatH2TML以网页格式保存
文档wd.Close:wa.Quit 关闭Word
文档并退出Word程序SetwdNothing:SetwaNothing 退出内存资源2.3 提取压缩后文件提取压缩文件包括JPG文件的命名到复制JPG文件的整个过程需要引用FindNextFile等几个查找文件的API函数具体过程如下。
j23UBoundfileA-1ReDimnewfilej 申明存储压缩文件数组的长度hFindFirstFilec:1.files3.3fd 查找保存后Word文档中的JPG文件Ifh0Then Do rtFindNextFilehfd Iffd.dwFileAttributesFILE_ATTRIBUTE_DIRECTORYThen nInStr1fd.cFileName. newfileiLeftfd.cFileNamen 3剔除文件后缀名得到文件名。
ii1 EndIf LoopWhilert0EndIfFindCloseh结束查找压缩文件过程DimsaAsSECURITY_ATTRIBUTESDimInPathAsStringInPathfileA02jpg CreateDirectoryInPathsa 在BMP文件位置创建新文件夹Fori0ToUBoundnewfile IfRightnewfilei3jpgThen DeleteFilec:1.filesnewfilei 删除非JPG文件 Else fileAInti/21LeftfileAInti/21LenfileAInti/21-4.jpg 将JPG文件改为与BMP文件同名 FileCopyc:1.filesnewfileiInPathfileAInti/21 复制JPG文件到新建文件夹8821科 学 技 术 与 工 程9卷?? 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net DeleteFilec:1.files”newfilei 删除原来文档中JPG文件 EndIfNextDeleteFilec:1.htm 删除保存Word文档时的页面文件RemoveDirectoryc:1.files 删除保存Word文档时的文件夹ShellExecuteMe.hwndopenInPath1 打开新建文件夹提示完成压缩3。
3 结论与分析该程序不仅解决了利用计算机的通用资源来快速压缩BMP文件
问题而且不产生任何垃圾文件属于绿色软件范畴。
对压缩的技术要求很低对于没有图像学知识的人们也能很好掌握此方法。
该程序的不足地方是计算机必须安装了Word程序而且对于JPG文件的压缩参数不能控制因为整个过程是由Word程序按照默认参数压缩。
因此为了保证该程序容错性能在应用该程序中再添加检测Word程序安装情况的
代码效果更好。
参 考 文 献1 李爱玲李湘江.基于VBA的WORD文档自动评阅技术研究.科学技术与工程20087:4859—48632 《WindowsAPI参考大全》编写组.WindowsAPI参考大全.北京:电子工业出版社20013 邵 洁.VisualBasic程序设计.南京:东南大学出版社2006QuickCompressionofBMPFilesinWordApplicationbyVBLUOLanCHENFangCollegeofInformationEngineeringZhejiangForestryUniversityLin’an311300P1R1ChinaAbstract MoreorlessBMPfilesareproducedduringcomputerbeingusedbutBMPfilesarebigwhenaBMPfileneedsbecompressedthecommonresourcesincomputerareexpectedtodoit.ItπseasyandquickthatasingleormultiBMPfileiscompressedinWordapplicationbyVB.Keywords
VB Word BMP compression上接第1286页LoadIdentificationBasedonNeuralNetworkHOUPei2zhongLiWei2boPettyOfficerDepartmenttheA
cademyofEquipmentCommandandTechnologymBeijing102249P1R1ChinaAbstract Themethodofloadidentificationbasedonneuralnetworkhasbeenproposed.Itisaquestionwithgreatpracticalsignificanceforthepowersupplysystem.Key
words neuralnetwork loadidentification supplysystem98215期罗 兰等:利用
VB控制Word程序实现BMP文件快速压缩 ?? 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net