溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

關(guān)于圖片縮放的c#方法

發(fā)布時間:2020-07-10 20:33:47 來源:網(wǎng)絡(luò) 閱讀:1653 作者:逆光翱翔 欄目:編程語言

  在網(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(); 
        
        }     
    }  
}


向AI問一下細(xì)節(jié)
推薦閱讀:
  1. PHP圖片縮放
  2. 圖片縮放

免責(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)容。

AI