有一個員工管理,需要在數據庫字段中保存員工的照片,但已有的照片非常巨大,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左右,程序效率得到提高。
新聞熱點
疑難解答