摘要:在高校學(xué)籍管理工作中,學(xué)生圖像信息的管理工作十分重要。文章根據(jù)學(xué)籍管理中圖像處理存在的檢索困難、處理數(shù)量大、圖片檢查與調(diào)整需求多等諸多問題,利用Excel VBA編程開發(fā)出簡(jiǎn)易圖像處理系統(tǒng),可實(shí)現(xiàn)對(duì)圖片文件進(jìn)行檢索、重命名、修改尺寸、自動(dòng)旋轉(zhuǎn)、格式轉(zhuǎn)換、圖像壓縮等多種處理功能。在編程過程中,采用流程化設(shè)計(jì)方式,依據(jù)圖片文件處理需求可將不同功能任意組合,并將最終處理完畢的圖片文件保存到指定位置。該系統(tǒng)的開發(fā)實(shí)現(xiàn)了圖像文件管理的自動(dòng)化,極大地提高了工作效率。
關(guān)鍵詞:學(xué)籍管理;Excel VBA;圖像處理;自動(dòng)化
中圖分類號(hào):TP311
文獻(xiàn)標(biāo)志碼:A
0 引言
伴隨著數(shù)字化信息時(shí)代的到來,加快信息化建設(shè),實(shí)現(xiàn)數(shù)字化、自動(dòng)化辦公將成為必然的發(fā)展趨勢(shì)。學(xué)籍照片管理是學(xué)校教務(wù)管理工作中非常重要的一部分,特別是在高校,每學(xué)期采集的學(xué)生照片數(shù)量少則幾千多則上萬。因此,如何便捷高效地檢索、檢查以及處理照片是教務(wù)管理人員必須解決的問題。目前,有很多可用于圖像處理以及管理的軟件,如大家熟悉的PS(Photoshop)、ACDSee、QQ影像等,但是這些軟件無法實(shí)現(xiàn)批量、多功能處理的工作需求。如果需要對(duì)大量照片進(jìn)行檢索,重命名,修改圖片尺寸、大小、格式、方向等,必需開發(fā)出一套專業(yè)的自動(dòng)化處理工具。
Microsoft Office是日常工作中應(yīng)用最為廣泛的一款辦公軟件,Excel作為其應(yīng)用程序之一,擁有較強(qiáng)的數(shù)據(jù)儲(chǔ)存和處理能力。Visual Basic宏語(yǔ)言(Visual Basic for Application,VBA)是一種面向?qū)ο蟮目梢暬幊陶Z(yǔ)言,語(yǔ)法簡(jiǎn)單易學(xué),交互性強(qiáng)[1]。VBA語(yǔ)言寄生于應(yīng)用程序,目的在于增強(qiáng)應(yīng)用程序的功能,實(shí)現(xiàn)自動(dòng)化操作[2]。Excel集成了VBA編程環(huán)境,具有類型豐富的對(duì)象庫(kù),利用Excel VBA編程不僅可以實(shí)現(xiàn)功能強(qiáng)大的數(shù)據(jù)處理能力,還可用于處理圖像文件。本文將以甘肅開放大學(xué)學(xué)籍照片管理為原型,運(yùn)用Excel VBA編程開發(fā)一套簡(jiǎn)易圖像處理系統(tǒng)。
1 需求功能分析
在學(xué)籍工作中,由于工作內(nèi)容的不同,對(duì)照片的處理需求有所不同,有以下幾個(gè)方面:批量檢索需要的照片,被檢索的照片可能存在于不同的文件夾中,需要將這些照片存放到同一個(gè)文件夾;將大量的照片按照指定名稱重新命名;自動(dòng)檢查照片的尺寸、大小、方向、格式等是否符合要求,如果與要求不符,則進(jìn)行修改。在不同的工作內(nèi)容中,有的只需要進(jìn)行某一項(xiàng)操作,有的需要同時(shí)進(jìn)行好幾項(xiàng)操作。因此,在圖像處理系統(tǒng)的設(shè)計(jì)中,必須考慮所有的功能操作都是可以實(shí)現(xiàn)自由選擇組合的。綜上所述,簡(jiǎn)易圖像處理系統(tǒng)的功能結(jié)構(gòu)如圖1所示。
2 界面設(shè)計(jì)
VBA作為一種可視化的編程語(yǔ)言,可以在其編輯環(huán)境下直接進(jìn)行系統(tǒng)界面設(shè)計(jì)。進(jìn)入VBA編輯窗口后,點(diǎn)擊插入用戶窗體,在屬性工具欄修改窗體名稱為Myform,Caption屬性為“圖像處理系統(tǒng)”[3]。點(diǎn)擊工具欄插入需要的控件,修改其尺寸及位置,并對(duì)
其屬性進(jìn)行修改[4]。系統(tǒng)界面如圖2所示。
整個(gè)系統(tǒng)界面主要分為3個(gè)區(qū)塊。第一個(gè)區(qū)塊功能主要用于選擇Excel數(shù)據(jù)文件、圖片查找目錄以及處理后的圖片的保存位置,并將選擇后的文件名和路徑顯示在文本框中,用一個(gè)框架控件將所需的文本框和命令按鈕控件放置到一起。第二個(gè)區(qū)塊是圖片處理功能區(qū),一個(gè)框架控件包含一個(gè)可實(shí)現(xiàn)功能,修改框架的Caption屬性可顯示功能名稱。修改尺寸功能需要插入復(fù)合框控件,用于選擇修改尺寸的方式,可按照原有尺寸比例修改,亦可給長(zhǎng)邊或短邊一個(gè)固定值的方式進(jìn)行修改,并增加了自定義方式,自定義方式可分別輸入長(zhǎng)邊和短邊的尺寸;自動(dòng)旋轉(zhuǎn)功能分別插入兩個(gè)選項(xiàng)按鈕控件和標(biāo)簽控件,提供兩種選擇,即當(dāng)圖片寬大于高時(shí)逆時(shí)針或順時(shí)針旋轉(zhuǎn)90°;重命名圖片功能添加一個(gè)復(fù)選框按鈕和標(biāo)簽按鈕,當(dāng)復(fù)選框的Value屬性為True時(shí),可按照Excel文件中的數(shù)據(jù)對(duì)圖片重命名;格式轉(zhuǎn)換功能需要添加一個(gè)復(fù)選框控件,用于選擇轉(zhuǎn)換的格式;圖像壓縮功能同樣添加一個(gè)復(fù)選框控件,可以選擇不同的壓縮方式,本系統(tǒng)設(shè)計(jì)了按比例壓縮和按指定大小兩種壓縮方式。在下方插入3個(gè)命令按鈕控件,一個(gè)用于復(fù)原功能區(qū)的設(shè)置以便重新設(shè)定需要的功能,一個(gè)用于執(zhí)行程序,一個(gè)用于退出程序。第三個(gè)區(qū)塊是一個(gè)標(biāo)簽控件,主要是為介紹系統(tǒng)的使用方法。
3 功能實(shí)現(xiàn)
Excel VBA作為一種面向?qū)ο蟮目梢暬幊陶Z(yǔ)言,可通過各種事件(操作)來觸發(fā)一段程序代碼。當(dāng)界面設(shè)計(jì)好后,雙擊控件可進(jìn)入控件事件的代碼編輯窗口,選擇相應(yīng)的事件過程,寫入需要執(zhí)行的程序代碼即可。
3.1 定義公共變量和自定義函數(shù)
在代碼編輯窗口,首先定義字符型公共變量 File、cfolder、bfolder,分別用來記錄Excel數(shù)據(jù)文件名、查找文件目錄,保存文件夾路徑。編寫兩個(gè)自定義函數(shù),都可以定義FileDialog對(duì)象變量,引用不同的對(duì)象方法可以選擇文件夾或文件。在執(zhí)行事件過程中,可以顯示選擇對(duì)話框,兩個(gè)自定義函數(shù)返回值均是字符串型。
3.2 事件過程
(1)窗體的activate事件過程[5]。這一事件過程是當(dāng)窗體被激活時(shí)對(duì)不同控件的屬性進(jìn)行初始化設(shè)置。所有的文本框控件的Value值設(shè)置為空,Locked 屬性設(shè)置為False[6];復(fù)選框和選項(xiàng)按鈕控件的Value值設(shè)置為False[7];復(fù)合框控件用List方法和Array函數(shù)添加值序列,將ListIndex值設(shè)置為0,這是顯示序列中的第一個(gè)值,作為功能提示性信息,Style屬性設(shè)置為2,目的在于使得復(fù)合框只可選擇而不能輸入其他值。
(2)“選擇Excel數(shù)據(jù)文件”命令按鈕的click事件過程[8]。首先調(diào)用自定義函數(shù) Selected_File(),并將返回值賦值給變量File。如果File值為空,則顯示提示對(duì)話框,提示未選擇Excel文件,否則對(duì)應(yīng)的文本框顯示出選擇的文件名。
(3)“選擇查找位置”命令按鈕的click事件過程[8]。調(diào)用自定義函數(shù)Selected_Folder(),將返回值賦值給變量cfolder,如果cfolder值為空,則顯示提示對(duì)話框,提示未選擇查找位置,否則對(duì)應(yīng)的文本框顯示出選擇的查找目錄,位置可以是一個(gè)磁盤或文件夾,文件夾下可包含子文件夾。
(4)“選擇保存位置”命令按鈕的click事件過程[8]。調(diào)用msgbox函數(shù),顯示提示對(duì)話框,提示“選擇的文件夾會(huì)被清空(包括子文件夾),請(qǐng)確保無重要文件”,這一步驟在于確保所選擇的文件夾為空文件夾,以防止刪掉原有數(shù)據(jù);再調(diào)用自定義函數(shù) Selected_Folder(),將返回值賦值給變量bfolder。如果bfolder值為空,則顯示提示對(duì)話框,提示未選擇保存位置,否則對(duì)應(yīng)的文本框顯示出選擇的文件夾路徑。
(5)修改尺寸功能復(fù)合框控件和文本框控件的change事件過程。如復(fù)合框的顯示值不是“選擇修改尺寸方式”,即發(fā)生了變化,這時(shí)顯示輸入提示信息標(biāo)簽以及文本框。當(dāng)選擇的方式為“按比例修改尺寸”時(shí),后面的提示內(nèi)容為“%”。當(dāng)選擇的方式為“長(zhǎng)邊固定尺寸”或“短邊固定尺寸”時(shí),后面的提示內(nèi)容為“像素”,文本框可輸入數(shù)值。當(dāng)復(fù)合框的顯示值為“選擇修改尺寸方式”時(shí),隱藏提示信息標(biāo)簽和文本框。自定義修改尺寸的文本框可輸入數(shù)值。當(dāng)輸入時(shí)復(fù)合框的顯示值復(fù)原為“選擇修改尺寸方式”下面的提示信息和文本框隱藏,文本框的值為空。
(6)圖像壓縮功能復(fù)合框控件change事件過程。如復(fù)合框的顯示值不是“選擇壓縮方式”,這時(shí)顯示輸入提示信息標(biāo)簽以及文本框。當(dāng)選擇的方式為“按比例壓縮”時(shí),后面的提示內(nèi)容為“%”。當(dāng)選擇的方式為“壓縮至指定大小”時(shí),后面的提示內(nèi)容為“KB”,文本框可輸入數(shù)值。當(dāng)復(fù)合框的顯示值為“選擇壓縮方式”時(shí),隱藏提示信息標(biāo)簽和文本框。
(7)“重設(shè)參數(shù)”命令按鈕的click事件過程[9]。這一過程將功能區(qū)所有參數(shù)初始化,保留選擇的數(shù)據(jù)文件、查找目錄和保存文件夾信息。調(diào)用窗體的activate事件過程,再將公共變量的值重新顯示在文本框中。
(8)“執(zhí)行”命令按鈕的click事件過程[9]。這一過程是最終的執(zhí)行過程,是最主要的過程。這一過程首先需要檢查是否選擇了數(shù)據(jù)文件、查找位置以及保存位置,其次檢查功能設(shè)置數(shù)據(jù)填寫是否完整。如果選擇了調(diào)整尺寸方式或壓縮方式,而沒有填寫相應(yīng)的數(shù)值,則會(huì)提示補(bǔ)充數(shù)據(jù)。如果選定了重命名功能,還需檢查數(shù)據(jù)文件中數(shù)據(jù)的完整性。如果數(shù)據(jù)文件中第一列查找的圖片名不為空,第二列相應(yīng)的重命名名稱也不能為空。
選擇的保存位置文件夾必須是空文件夾,當(dāng)所有數(shù)據(jù)檢查完后,將會(huì)清空保存文件夾下所有文件,包括子文件夾,在清空前會(huì)提示是否繼續(xù)操作。如果設(shè)定壓縮功能,通過fso對(duì)象的createfolder方法在保存文件夾下創(chuàng)建一個(gè)名為“壓縮”的子文件夾。
下一步將根據(jù)數(shù)據(jù)文件中的圖片名從查找位置中逐個(gè)查找同名的圖片文件,通過調(diào)用自定義函數(shù)cfpath()可以遍歷查找文件夾下所有的文件,包括子文件夾下的文件。本研究需要的照片可能存在于查找目錄下不同的文件夾中。自定義函數(shù)cfpath()采用遞歸方法遍歷所有圖片文件。如果查找到圖片,則返回圖片文件的絕對(duì)路徑,否則返回為空。
在VBA中可以創(chuàng)建WIA(Windows數(shù)字圖像獲取服務(wù))的imageFile對(duì)象來獲取圖像文件的相關(guān)屬性,通過ImageProcess對(duì)象來處理圖像。在功能實(shí)現(xiàn)上,可以將ImageProcess對(duì)象處理圖像的不同功能封裝成不同的自定義函數(shù),這樣可以簡(jiǎn)化主程序的編寫過程。
對(duì)于圖像的處理過程,采用流程化設(shè)計(jì),既按照“調(diào)整尺寸”——“旋轉(zhuǎn)”——“轉(zhuǎn)換格式”——“重命名”——“壓縮”的步驟來處理。當(dāng)沒有選擇某一功能時(shí),則跳到下一步驟。這樣可實(shí)現(xiàn)不同功能的自由組合。所有功能都不選擇時(shí),則只將查找到的圖片復(fù)制到保存文件夾里。主過程設(shè)計(jì)流程如圖3所示。
4 結(jié)語(yǔ)
總結(jié)學(xué)籍照片管理中存在的問題,基于VBA技術(shù)結(jié)合Excel二次開發(fā)的簡(jiǎn)易圖像處理系統(tǒng),采用流程化設(shè)計(jì)思路,可方便不同的處理需求任意組合,實(shí)現(xiàn)了圖像處理的自動(dòng)化。在信息化時(shí)代,提高工作人員信息化工作水平,實(shí)現(xiàn)辦公自動(dòng)化是管理的重點(diǎn)要求。實(shí)踐表明,簡(jiǎn)易圖像處理系統(tǒng)的開發(fā)極大地提高了管理質(zhì)量和效率,有效緩解了管理人員工作強(qiáng)度。
參考文獻(xiàn)
[1]王白英.鐵塔放樣及角鋼優(yōu)化下料軟件設(shè)計(jì)[D].武漢:湖北工業(yè)大學(xué),2007.
[2]王慶華,耿豪劼,沈華.ExcelVBA在鋼筋算量中的應(yīng)用[J].南通職業(yè)大學(xué)學(xué)報(bào),2016(3):100-104.
[3]仝海燕,呂洪善,秦春影,等.基于VBA的交互性習(xí)題的設(shè)計(jì)[J].韶關(guān)學(xué)院學(xué)報(bào),2014(6):24-29.
[4]印金國(guó).Matlab可視化界面設(shè)計(jì)與控件使用[J].電腦編程技巧與維護(hù),2007(1):30-35.
[5]秦曉明,趙建功.VB窗體加載過程中有關(guān)事件的特點(diǎn)和應(yīng)用分析[J].漯河職業(yè)技術(shù)學(xué)院學(xué)報(bào),2005(1):8-9,18.
[6]戴維斯.VBA從入門到精通[M].楊密,楊樂,柯樹森,譯.北京:電子工業(yè)出版社,2008.
[7]章銳.VB技術(shù)在教學(xué)中的應(yīng)用[J].上海電機(jī)技術(shù)高等??茖W(xué)校學(xué)報(bào),2000(3):3.
[8]龍馬高新教育.VBAOffice從新手到高手[M].北京:人民郵電出版社,2015.
[9]郭剛.ExcelVBA入門與應(yīng)用典型實(shí)例[M].北京:科學(xué)出版社,2009.
(編輯 王永超)
Design and implementation of simple image processing system based on Excel VBA technology
Zhang Wanchang, Li Xumin, Huang Ning
(Gansu Open University, Lanzhou 730030, China)
Abstract: In the management of college student information, the management of student image information is very important. In this paper, according to the problems of image processing in the management of student status, such as difficulties in retrieval, large number of processing, and many demands for image inspection and adjustment, a simple image processing system is developed by using Excel VBA programming, which can realize various processing functions such as image file retrieval, renaming, size modification, automatic rotation, format conversion, image compression, etc. In the programming process, the flow design method is adopted. Different functions can be combined at will according to the image file processing requirements, and the final processed image file can be saved to the specified location. The development of the system realizes the automation of image file management and greatly improves the work efficiency.
Key words: student information management; excel VBA; image processing; automation