Reset Image Size 2

來源:互聯網
上載者:User

你會留意到Insus.NET在前一次的寫了Reset Image Size的功能http://www.cnblogs.com/insus/articles/1909037.html,這個功能是在圖片顯示時去做圖片縮減,有網友向Insus.NET提及,這樣做有點不好,就是每run一次,系統就要縮減產生一次,這樣會有損效能,希望能改善一下。為了改善效能,哪只有在圖片上傳時或在圖片管理時,實現一個功能儲存一份縮圖在目錄中。

下面是代碼(部分),請參考:

View Code

 System.Drawing.Image imgOriginal = System.Drawing.Image.FromFile(originalImagePath);
        //擷取原圖片的的寬度與高度
        int originalWidth = imgOriginal.Width;
        int originalHeight = imgOriginal.Height;        

       //定義縮圖片寬度和高度  
        int thumbnailWidth, thumbnailHeight;

        //如果原圖片的寬度與高度都小於縮圖片尺寸
        if (originalWidth < thumbnailSize && originalHeight < thumbnailSize)
        {
            thumbnailWidth = originalWidth;  //寬度等於原寬度
            thumbnailHeight = originalHeight;//高度等於原高度
        }
        //如果原圖片寬度大於原圖片的高度              
        else if (originalWidth > originalHeight)
        {
            thumbnailWidth = thumbnailSize;  //寬度等於縮圖片尺寸
            thumbnailHeight = originalHeight * thumbnailSize / originalWidth;  //高度做相應比例縮小
        }
        //如果原圖片高度大於原圖片的寬度
        else
        {
            thumbnailWidth = originalWidth * thumbnailSize / originalHeight; //寬度做相應比例縮小
            thumbnailHeight = thumbnailSize; //高度等於縮圖片尺寸
        }

        System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(thumbnailWidth, thumbnailHeight);
        System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap);

        //設定縮圖片品質
        graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
        graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
        graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
        
        graphics.DrawImage(imgOriginal, 0, 0, thumbnailWidth, thumbnailHeight);
       
        // 儲存縮圖片
        bitmap.Save(imageSavePath);

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.