C#減少圖片文件大小和尺寸(轉)

有一個員工管理,需要在數據庫字段中保存員工的照片,但已有的照片非常巨大,1024*768, 2M左右,這麼大的數據存入數據庫,不管是對管理或是傳輸都是問題,而實際上登記照只要很小就行了,下面進行減肥(C#):


//可以讀取一些常用的格式,如jpg,bmp等
Bitmap myBitmap = new Bitmap("c:\\t.bmp");

//生成80*100的縮略圖
Image myThumbnail = myBitmap.GetThumbnailImage(80, 100, null, IntPtr.Zero);
System.IO.MemoryStream ms = new System.IO.MemoryStream();

//把生成的縮略圖按jpg格式寫入到流ms,把這個流轉到byte[]並寫到數據庫就行了,
//如果有需要,也可以把ms流寫入到文件
myThumbnail.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

另外:從數據庫中讀取的照片也可以不存到文件,而直接與Windows控件PictureBox直接綁定顯示
//PictureBox控件可以直接顯示從數據庫中讀取byte[]的圖片, 見下例
System.IO.MemoryStream ms_p = new System.IO.MemoryStream(byte[] b);
Bitmap bmp = new Bitmap(ms_p);
this.pictureBox1.Image = bmp;

經過以上減肥後,一張照片只有5K左右,程序效率得到提高。

C#獲得圖片尺寸像素值什麼東西神通廣大?能獲得1個圖片的尺寸像素值呢?這就是C#的System.Drawing.Image類。廢話少說,看代碼:
Image pic=Image.FromFile(strFilePath);//strFilePath是該圖片的絕對路徑
int intWidth=pic.Width;//長度像素值
int intHeight=pic.Height;//高度像素值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章