溫馨提示×

溫馨提示×

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

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

asp.net如何實現(xiàn)圖片超過指定大小后等比例壓縮圖片功能

發(fā)布時間:2021-10-13 10:03:26 來源:億速云 閱讀:115 作者:小新 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關asp.net如何實現(xiàn)圖片超過指定大小后等比例壓縮圖片功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

代碼如下:


/// <summary>
        /// 壓縮圖片
        /// </summary>
        /// <returns></returns>
        public string ResizePic()
        {
            #region 壓縮圖片開始
            bool IsImgFile = true;  //判斷是否為圖片文件
            string filePathName = "123";   //文件存儲的路徑(文件夾名稱)
            string fileName = "a.jpg";   //上傳文件的原始名稱
            string fileSysName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "_" + fileName;  //修改后的文件名稱
            string filePath = "";   //文件路徑
            string strImgPath = "/fileupload/";   //上傳路徑
            if (IsImgFile)
            {
                int maxWidth = 600;   //圖片寬度最大限制
                int maxHeight = 400;  //圖片高度最大限制
                System.Drawing.Image imgPhoto =
                    System.Drawing.Image.FromFile(Server.MapPath(strImgPath) + filePathName + "/" + fileSysName);
                int imgWidth = imgPhoto.Width;
                int imgHeight = imgPhoto.Height;
                if (imgWidth > imgHeight)  //如果寬度超過高度以寬度為準來壓縮
                {
                    if (imgWidth > maxWidth)  //如果圖片寬度超過限制
                    {
                        float toImgWidth = maxWidth;   //圖片壓縮后的寬度
                        float toImgHeight = imgHeight / (float)(imgWidth / toImgWidth); //圖片壓縮后的高度

                        System.Drawing.Bitmap img = new System.Drawing.Bitmap(imgPhoto,
                                                                              int.Parse(toImgWidth.ToString()),
                                                                              int.Parse(toImgHeight.ToString()));
                        string strResizePicName = Server.MapPath(strImgPath) + filePathName + "/_small_" + fileSysName;
                        img.Save(strResizePicName);  //保存壓縮后的圖片
                        filePath = strImgPath + filePathName + "/_small_" + fileSysName;  //返回壓縮后的圖片路徑
                    }
                }
                else
                {
                    if (imgHeight > maxHeight)
                    {
                        float toImgHeight1 = maxHeight;
                        float toImgWidth2 = imgWidth / (float)(imgHeight / toImgHeight1);

                        System.Drawing.Bitmap img = new System.Drawing.Bitmap(imgPhoto,
                                                                              int.Parse(toImgWidth2.ToString()),
                                                                              int.Parse(toImgHeight1.ToString()));
                        string strResizePicName = Server.MapPath(strImgPath) + filePathName + "/_small_" + fileSysName;
                        img.Save(strResizePicName);
                        filePath = strImgPath + filePathName + "/_small_" + fileSysName;
                    }
                }
            }
            return filePath;
            #endregion
        }

關于“asp.net如何實現(xiàn)圖片超過指定大小后等比例壓縮圖片功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI