C#減少圖片檔案大小和尺寸

來源:互聯網
上載者:User

有一個員工管理,需要在資料庫欄位中儲存員工的照片,但已有的照片非常巨大,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左右,程式效率得到提高。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.