摘 要: 本文作者主要以教師在多校區教學時,需要利用很多圖片資源的實際需求出發,為了幫助教師方便管理并利用好這些圖片資源,采用ASP.NET設計Web圖片教學管理系統來解決這一問題,利用ASP.NET提供的圖像處理函數,在上傳圖片的同時自動生成縮略圖并添加標志水印。
關鍵詞: ASP.NET 圖像處理 縮略圖 水a印
很多專業在教學過程中教師需要使用很多示例作品,學生在學習過程中也有很多設計作品,而這些作品都是圖片的形式。以前都是零散的存放這些資料,沒有很好地組織和分類,現在利用計算機軟件技術開發管理系統對這些圖片資料進行有序管理,可提高利用價值,讓教師有豐富的教學資源,讓學生有充分的展示平臺。采用ASP.NET技術開發,基于B/S模式的Web圖片管理系統由此而生。
一、開發環境
很多學校都有多校區,并且相距很遠,上課使用的圖片資料需要在校區之間頻繁地拷貝,這樣不但操作繁瑣,而且丟失數據的危險很大,不能保證資料的安全。為此利用計算機軟件技術開發管理系統進行管理,采用B/S結構的系統可以不受地區的限制,使用瀏覽器就能使用系統,方便系統的部署和使用。所以采用微軟的.NET架構,ASP.NET平臺開發。ASP.Net是建立在微軟新一代.Net平臺架構上,利用普通語言運行時(Common Language Runtime)在服務器后端為用戶提供建立強大的企業級Web應用服務的編程框架。
二、功能需求
Web圖片管理系統應能實現以下主要功能,圖片上傳到服務器并按照圖片類別儲存在數據中,可以按照圖片的類別、名稱、上傳時間、內容、關鍵字等對圖片進行添加、查詢、修改、刪除,還包括圖片的檢索與瀏覽等功能。
為保證系統的高效、科學、合理,系統應實現以下目標。
(1)系統能夠穩定可靠運行,具有良好的可維護性、可擴展性、可移植性。在數據組織、系統功能、系統結構上保留足夠的擴充余地,便于今后的擴充。
(2)系統能簡化管理和提高效率,能夠提供流暢的數據信息處理、快速方便的信息查詢。
(3)系統具有良好的安全、版權保護性能。
三、系統的開發與實現
1.功能模塊的設計
該系統的主要功能模塊包括:用戶管理、圖片數據管理、圖片類別管理、圖片數據檢索等模塊。用戶管理模塊實現用戶信息的注冊、修改、注銷等操作;圖片類別管理模塊實現圖片數據的類別添加、類別修改、類別刪除等操作;圖片數據管理模塊實現上傳圖片并生成縮略圖和加水印、編輯圖片、刪除圖片等操作,以及將與圖片相關的信息保存到數據庫等重要細節;圖片數據檢索模塊實現按關鍵字檢索,本模塊提供按圖片名稱、關鍵字、類別、內容等作為關鍵字的圖片查詢,對檢索結果采用列表和縮略圖兩種方式顯示。系統功能模塊如圖1。
圖1 系統功能模塊圖
2.程序設計
下面將對上傳圖片和加水印模塊設計進行介紹。為了服務器的安全,對上傳圖片的類型進行限制,系統設定只能上傳.BMP、.JPG、.PNG等允許的類型,這樣避免了上傳病毒腳本帶來的危害;上傳的圖片都比較大,為了提高瀏覽速度,同時生成縮略圖,并且給原圖片加上水印,保護資料的版權。
縮略圖的生成:利用ASP.NET提供的Drawing.Graphics圖像處理函數,配合網站對上傳圖片的基本要求,在上傳圖片的同時自動生成縮略圖,并給圖片添加標志水印。首先判斷上傳文件格式是否是允許處理的圖片格式,如果不是,就拒絕上傳;如果是允許的圖片格式,那將使用自定義函數來對圖片進行處理后上傳到指定目錄。為確保文件名的惟一性,文件上傳時以上傳時間為名字對文件重新命名。要生成縮略圖首先要用Drawing.Graphics函數新創建一個指定大小的空白畫板,然后使用DrawImage函數將原圖繪制到新圖形上,再通過Save函數保存到指定目錄。而給原圖添加水印,則是使用Graphics.DrawString函數將水印文字寫到原圖指定位置,再通過Image.Save函數保存到指定目錄。
生成縮略圖函數。參數說明:original Image Path源圖路徑(物理路徑),thumbnail Path縮略圖路徑(物理路徑)縮略圖寬度height縮略圖高度,Content Type縮略格式,mode生成縮略圖的方式。
public void MakeThumbnailImage(string originalImagePath,string thumbnailPath,int width,int height,string ContentType,string mode)
{......
//新建一個bmp圖片
System.Drawing.Image bitmap=new System.Drawing.Bitmap(towidth,toheight);
//新建一個畫板
System.Drawing.Graphics g=System.Drawing.Graphics.FromImage(bitmap);
//設置高質量插值法
g.InterpolationMode=System.Drawing.Drawing2D.InterpolationMode.High;
//設置高質量,低速度呈現平滑程度
g.SmoothingMode=System.Drawing.Drawing2D.Smoothing Mode.HighQuality;
//清空畫布并以透明背景色填充
g.Clear(System.Drawing.Color.Transparent);
//在指定位置并且按指定大小繪制原圖片的指定部分
g.DrawImage(originalImage,new System.Drawing.Rectangle(0,0,towidth,toheight),new System.Drawing.Rectangle(x,y,ow,oh),System.Drawing.GraphicsUnit.Pixel);
bitmap.Save(thumbnailPath,GetImageType(ContentType));
...... }
//圖片加水印函數。參數說明:str水印字符串,filePath原圖片位置,savePath水印加入后的位置。
public static string CreateBackImage(System.Web.UI.Page pageCurrent,string str,string filePath,string savePath,int x,int y)
{ System.Drawing.Image img=System.Drawing.Image.FromFile(pageCurrent.MapPath(filePath));
//創建圖片
System.Drawing.Graphics graphics=System.Drawing.Graphics.FromImage(img);
//指定要繪制的面積
graphics.DrawImage(img,0,0,img.Width,img.Height);
//定義字段和畫筆
System.Drawing.Font font=new System.Drawing.Font(“黑體”,16);
System.Drawing.Brush brush=new System.Drawing.SolidBrush(System.Drawing.Color.Yellow);
graphics.DrawString(str,font,brush,x,y);
//保存并輸出圖片
img.Save(pageCurrent.MapPath(savePath),System.Drawing.Imaging.ImageFormat.Jpeg);
return savePath;}
由于網絡技術的發展,基于傳統的文件整理、保存、使用方式的局限性和不足逐漸顯現出來。于是,基于B/S結構的圖片管理信息系統逐漸呈現出更大的優勢和生命力,B/S結構的圖片管理信息系統是建立在ASP.NET技術上的,這樣大大簡化了開發進程和程序設計難度,同時B/S結構使得用戶不需要額外安裝客戶端就能靈活的使用系統,順利地將資料管理過程和計算機技術有機地結合起來,使得管理流程更加清晰,管理更加簡潔、靈活,是資料管理信息化不可缺少的一個重要組成部分。教師可以在任何地方包括家里進行課件資料的整理,在不同地域通過網絡使用,消除了不同地方都要拷貝資料的繁瑣事情,而且給教師提供了一個豐富的網絡教學資料庫,為學校重點學科建設提供了教學建設成果展示。
參考文獻:
[1]胡海璐.網絡系統開發(ASP.NET版)北京:電子工業出版社.
[2]楊得國,門維江.大學公共計算機資源共享平臺的構想[J].教育信息化,2006,(10).
[3]戰仁軍,張明書.圖像文件在數據庫中的存取[J].西安工程科技學院學報,2003,17(4).