您好,登錄后才能下訂單哦!
在網(wǎng)站建設(shè)中,關(guān)于圖片是必不可少的,后臺管理中往往需要上傳圖片,大的圖片在網(wǎng)絡(luò)中傳輸速率很慢,很不理想,因此解決辦法是,用戶上傳圖片時候,保存一個圖片的縮略圖,在網(wǎng)頁顯示用縮略圖,用戶下載,使用原圖,下面是通過搜索資料,整理的c#關(guān)于保存圖片縮略圖的方法,用戶只需要傳入適當(dāng)參數(shù),調(diào)用此方法就可以生成縮略圖。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; public partial class upload : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } } /// <summary> /// 圖片等比縮放 /// </summary> /// <param name="postedfile">原圖地址加名稱</param> /// <param name="savepath">縮略圖存放地址</param> /// <param name="smallname">縮略圖名稱</param> /// <param name="targetwidth">指定的最大寬度</param> /// <param name="targetheight">指定的最大高度</param> public static void zoomauto(string initpath, string savepath,string smallname, double targetwidth, double targetheight) { //虛擬路徑轉(zhuǎn)絕對路徑 initpath = System.Web.HttpContext.Current.Server.MapPath(initpath); savepath = System.Web.HttpContext.Current.Server.MapPath(savepath); //創(chuàng)建目錄 string dir = Path.GetDirectoryName(savepath); if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); //原始圖片(獲取原始圖片創(chuàng)建對象,并使用流中嵌入的顏色管理信息) System.Drawing.Image initp_w_picpath = System.Drawing.Image.FromFile(initpath); //原圖寬高均小于模版,不作處理,直接保存 if (initp_w_picpath.Width <= targetwidth && initp_w_picpath.Height <= targetheight) { //保存 initp_w_picpath.Save(savepath + smallname, System.Drawing.Imaging.ImageFormat.Jpeg); } else { //縮略圖寬、高計算 double newwidth = initp_w_picpath.Width; double newheight = initp_w_picpath.Height; //寬大于高或?qū)挼扔诟撸M圖或正方) if (initp_w_picpath.Width > initp_w_picpath.Height || initp_w_picpath.Width == initp_w_picpath.Height) { //如果寬大于模版 if (initp_w_picpath.Width > targetwidth) { //寬按模版,高按比例縮放 newwidth = targetwidth; newheight = initp_w_picpath.Height * (targetwidth / initp_w_picpath.Width); } } //高大于寬(豎圖) else { //如果高大于模版 if (initp_w_picpath.Height > targetheight) { //高按模版,寬按比例縮放 newheight = targetheight; newwidth = initp_w_picpath.Width * (targetheight / initp_w_picpath.Height); } } //生成新圖 //新建一個bmp圖片 System.Drawing.Image newp_w_picpath = new System.Drawing.Bitmap((int)newwidth, (int)newheight); //新建一個畫板 System.Drawing.Graphics newg = System.Drawing.Graphics.FromImage(newp_w_picpath); //設(shè)置質(zhì)量 newg.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; newg.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //置背景色 newg.Clear(System.Drawing.Color.White); //畫圖 newg.DrawImage(initp_w_picpath, new System.Drawing.Rectangle(0, 0, newp_w_picpath.Width, newp_w_picpath.Height), new System.Drawing.Rectangle(0, 0, initp_w_picpath.Width, initp_w_picpath.Height), System.Drawing.GraphicsUnit.Pixel); //保存縮略圖 newp_w_picpath.Save(savepath + smallname, System.Drawing.Imaging.ImageFormat.Jpeg); //釋放資源 newg.Dispose(); newp_w_picpath.Dispose(); initp_w_picpath.Dispose(); } } }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。