摘要:隨著電腦應用的深入和普及,在計算機人事信息管理過程中,多媒體信息的處理方法和手段已經成為計算機信息處理的一個熱門話題。該文探討了數據庫圖像存儲、處理以及在程序設計中如何還原和再現的一系列問題,對于學習數據庫編程具有非常重要的參考和借鑒意義。
關鍵詞:相片的存儲;編輯處理;多媒體數據類型;相片文件與鏈接法
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)23-1040-03
The Database Image Processing Methods
JIANG Shu-hua
(Senior Technical School in Dongguan of Guangdong, Dongguan 523000, China)
Abstract: With the deepening of computer application and popularization of information in the computer and personnel management process, the multimedia information processing method and means of dealing with computer information has become a hot topic. This paper discusses the database image storage, processing, as well as in the process of reproduction and how to restore a range of issues, the study database programming is very important reference and learn.
Key words: A photo of the store; edit processing; multimedia data types; photos documents and links
1 引言
通俗地講,計算機多媒體信息一般指除文字、字符外的聲音,圖形、圖像和視頻流等信息。當今計算機能夠處理多媒體信息,使人機交流大大地向前跨出了一大步,也使電子檔案能夠完全取代傳統(手工記錄)的人事檔案奠定了基礎。
當然多媒體信息的處理需要用到很多相關軟件,甚至還要用到一些硬件設備。軟件方面有圖形圖像處理軟件如:PhotoShop,AcdSee,CoreDraw及掃描,音頻、視頻播放編輯軟件等;硬件方面有數碼相機、掃描儀、攝像頭、攝像機、視頻解壓卡等。由于篇幅所限,本文僅討論常見電子檔案中的相片處理方法和技巧,供大家參考。
2 如何將相片存儲到計算機。
要將個人相片存儲到計算機,目前最為常見的有如下三種方法:
1)直接將普通相片進行掃描錄入,這種方法效率高、速度快。提示:掃描時一次可以擺放多張(如16或20張,視掃描儀幅度而定),掃描結束后存盤保存,再用PhotoShop圖形處理軟件進行編輯,將相片單張分別存放。要注意的是存盤的文件名一定要有規律,以便編程時方便處理,如以編號或學號命名等,擴展名以JPG為佳(因為它文件小,效果好,格式通用)。
2)用數碼相機現照現錄,這種方法可以統一格式和要求。但要布置場地和,安排時間和場次等,操作起來稍為復雜些,比如有的單位幾個月都照不完相,更不用說建立檔案了。
3)通過攝像頭利用互聯網的功能進行圖片上傳,如今的第二代居民身份證、一些網絡學院學生的學籍、商業領域中的會員等的相片就是這樣處理的,它適合于分布范圍廣、批量特大型、時間不確定等場合。
不論用上述何種方法請分門別類建立文件夾,文件名也應有一定的數字規律,這樣編輯修改或編程處理才能方便、快捷。
在圖中,相片按專業、班級和學號分門別類,井井有條,多而不繁,處理起來較為方便。
3 相片的編輯處理
由于相片掃描時是整版處理的,所以相片掃描結束后,啟動PhotoShop圖形處理軟件,打開原先掃描好的文件,先選取一張相片,采用復制或剪切的方法存入剪貼板,再新建一個圖形文件,計算機會自動按剪貼板內容的多少來決定這個文件的大小,然后用粘貼的方法將剪貼板上存儲的圖片貼入到這個新建的文件之中去,這樣就基本完成了一張圖片的處理,當然也可以根據需要調節這張相片的亮度和對比度,因為不是每張相片都是非常標準的。下面的界面說明了部分處理過程,還應該注意的是文件存盤時應用另存為(Save as…)同時文件存盤的擴展名應選取jpg格式,在文件存盤的對話框中有一項關于圖片文件存盤大小的選項,您應該選取小文件格式,因為這樣既可以滿足用戶對分辨率的要求,又可以提高計算機的運行速度,要知道計算機處理圖形的速度是很慢的。
4 建立相片與數據的聯系
在關系數據庫中,個人資料信息是按行記錄順序存取的,由于存儲的內容不同,數據庫表結構就用不同的字段和數據類型來表示,比如:編號、姓名用字符型,出生年月用日期型,考試成績或基本工資用數值型等。那么在數據庫表中我們是如何存儲和再現相片的呢?一般來說,可以采取如下兩種方法:
4.1 在定義表結構時直接定義為多媒體數據類型
VFP數據庫在定義表結構字段的數據類型時,其中有一種叫“通用型”的數據類型,這種數據類型就是專門用來處理圖相和聲音等多媒體數據的。
如圖1所示:我們將“相片”字段的數據類型定義為“通用型”。
在瀏覽這張表的狀態下,我們觀察這張表,相片字段(通用型)所有記錄都有\"gen\"這個標志,但是要注意,\"gen\"中的\"g\"為小寫字母時表示它的內容為空,即還沒有插入相片,如果記錄中的\"gen\"顯示為\"Gen\"即表示該字段已經插入了圖片。
那么我們是如何編輯通用型字段的內容呢?首先我們將指針定位在需要插入圖片的記錄,然后將鼠標指向該記錄所對應的相片字段內雙擊,就可以打開編輯框,如果其原來是有圖片的則直接顯示出來,如果沒有則顯示空白,用戶即可在此貼入相片,圖2是打開了一個有圖片的2號記錄。
如果要修改或刪除這張相片則首先雙擊打開這張相片,然后選擇VFP主菜單中“編輯”菜單下的“清除”命令即將其刪除,然后重新貼入一張新的相片即可。
為了將相片內容貼入到相關記錄的“通用型”字段又有若干種方法:
① 在依次選取桌面的“開始”->“程序”->“附件”-> “畫圖”程序,在繪圖程序中打開一張相片,用選擇圖片范圍工具框選所需要的圖片內容,再將其復制到剪貼板,切換到VFP主窗口,將相片貼入到打開的字段即可。
② 啟動ACDSee打開圖片(可以多張),定位所需一張,選擇“編輯”菜單中的“復制圖像”命令或按“Ctrl+C”命令,切換到VFP主窗口,將相片貼入到打開的字段即可。建議采用這種方法因為它操作即簡單又方便。
③ 在VFP主窗口中選擇“編輯”菜單的“插入對象”命令,但這種方法插入的圖片不能直接打開,需要雙擊或進一步編程,因此建議最好不要采用這種方法。
這樣您在建立表單制作用戶界面時就可以把相片當作一般的字段進行處理了,但是提醒讀者,相片對象在表單上有一個Strenth屬性,它有默認的值是“剪裁”這時相片由于分辨率的不同往往不能完全顯示,為了達到比較理想的效果,應將其設置為“等比填充”或“變比填充”才行。
還有一點應該注意的是:采用這種方法建立記錄信息以后與原圖無關,也即原圖移動或刪除均不會影響或破壞數據記錄。但它會生成一個較大的(FPT)文件來存儲這些多媒體信息,所以請不要移動或刪除這個文件。
4.2 用文件路徑鏈接法
這種方法利用數據庫表中的一個字段(字符型)來存儲每張相片的絕對路徑,通過編程的方法使記錄移動時,圖片對象指向相應的圖片文件,從而實現相對應相片的顯示。
采用這種方法處理或顯示相片,應在表單設計中加以編程控制,主要是在表單初始化和命令按扭的相關事件中寫入圖片控制命令即可。
請看下面相關的控制命令:
① 在表單的初始化中,讓圖片對象的Pictuer屬性指向表中第一條記錄的相片字段(名稱為:Pictpath),觀察圖3命令中的第7行。
② 圖4是列表框(List1)控件對象的單擊事件命令,讓圖片對象的Pictuer屬性指向表中當前記錄的相片字段。
使用這種方法,表字段存儲的是相片文件的存盤路徑,所以表文件相對較小,且不會產生額外的文件,不用專門編輯和處理圖片文件,使用比較簡單方便,但原文件既不能隨意移動也不能刪除,否則就會出現圖片不能正確顯示的錯誤。
5 大批量相片的快速處理方法
不論采用上述哪種方法,只能在記錄數少、圖片量也不多的情況下進行的,如果要處理的記錄數有成千上萬或更多,上述方法顯然既費時又費力。那么我們如何解決這個問題呢?答案只有一個:那就是編程!下面談談這方面的問題。
1)對于前面講的第一種方法(通用字段法)使用下面的命令:
appe gene 字段名 from“文件名”
在實際使用中您可以編寫一段代碼,首先打開一個表,利用Count命令統計表記錄的總條數,并以此作為執行循環的次數,在循環中放入上述語句,后面跟一條Skip命令就可以實現圖片的自動添加了,正如前面所說,您還要注意圖片文件名的數字號與記錄的對應順序關系。
下面假設有1000張相片要添加到表中的“相片”字段上去,圖片文件已按順序編號存盤,即“1.jpg~1000.jpg”,文件路徑為\"D:\\picture\"編寫代碼代碼如下:
Use 表名
Count to X
Go top
For i=1 to x
Xp=\"D:\\picture\"+allt(str(i))+\".jpg\"
appe gene 相片 fromXp
Skip
Endfor
2)對于上面講的第二種方法(文件路徑鏈接法)可以用下面的命令加以解決:
Repl 字段 with “文件路徑”,同樣的問題,編程如下:
Use 表名
Count to X
Go top
For i=1 to x
Xp=\"D:\\picture\"+allt(str(i))+\".jpg\"
Repl Pictpath with Xp
Skip
Endfor
注意:其中Pictpath是表中的一個字段,為字符型類型,用于存儲相片文件的絕對路徑。
6 結束語
該文探討了VFP數據庫程序設計中多媒體信息的相片類型數據的編輯處理方法和編程技巧,在具體的應用中應根據不同的實際情況選用不同的方法,一般的參考方法是:根據問題的規模大小而定,如果記錄數相對少(幾百條)使用粘貼復制的方法也是很方便的;反之,如果記錄數特多(幾千條以上),就應該采用編程的方法加以解決,這樣才能達到快速和高效,當然您也完全可以利用VFP的\"Getfile\"函數,在表單界面上設置一個“選取相片…”的命令按扭,在程序的運行中單擊打開一個文件對話框,由用戶自己挑選需要的相片(見上述所示)。由于篇幅所限,不作詳細討論。
參考文獻:
[1] 吳迪.VFP6.0中文版程序設計指南[M].北京:清華大學出版社,2006.
[2] 程玉民.VFP6.0程序設計[M].北京:中國水利水電出版社,2006.
[3] 王磊,黃興友.可共享的跨平臺的網絡數字圖像處理技術[J].電腦知識與技術(學術交流),2007,(8):236-238.