亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#圖片按比例縮放的實現代碼

2020-01-24 02:56:07
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;

namespace Publics
{
    public class ImgHelper
    {
        public static void AdjustPhoto(int toWidth, int toHeight, string filePath, string fromFileName, string toFileName, int maxWidth, int maxHeight)
        {
            Image originalImage = Image.FromFile(filePath + "/" + fromFileName);
            //如果尺寸不夠返回保存原圖
            if (originalImage.Width < toWidth && originalImage.Height < toHeight)
            {
                originalImage.Save(filePath + "/" + toFileName);
                originalImage.Dispose();
                return;
            }

            //根據圖片大小獲取新圖片從原圖片截取的區域
            int x, y, w, h;
            if (toHeight > 0)
            {
                if (toWidth > 0)
                {
                    if (originalImage.Width > toWidth && originalImage.Height > toHeight)
                    {
                        w = toWidth;
                        h = toWidth * originalImage.Height / originalImage.Width;

                        if (h > toHeight)
                        {
                            h = toHeight;
                            w = toHeight * originalImage.Width / originalImage.Height;
                            x = (toWidth - w) / 2;
                            y = 0;
                        }
                        else
                        {
                            x = 0;
                            y = (toHeight - h) / 2;
                        }
                    }
                    else if (originalImage.Width > toWidth)
                    {
                        w = toWidth;
                        h = toWidth * originalImage.Height / originalImage.Width;
                        x = 0;
                        y = (toHeight - h) / 2;
                    }
                    else if (originalImage.Height > toHeight)
                    {
                        h = toHeight;
                        w = toHeight * originalImage.Width / originalImage.Height;
                        x = (toWidth - w) / 2;
                        y = 0;
                    }
                    else
                    {
                        w = originalImage.Width;
                        h = originalImage.Height;
                        x = (toWidth - w) / 2;
                        y = (toHeight - h) / 2;
                    }
                }
                else
                {
                    if (originalImage.Height > maxHeight)
                    {
                        toWidth = toHeight * originalImage.Width / originalImage.Height;
                        x = 0;
                        y = 0;
                        w = toWidth;
                        h = toHeight;

                    }
                    else
                    {
                        x = 0;
                        y = 0;
                        w = originalImage.Width;
                        h = originalImage.Height;
                        toWidth = originalImage.Width;
                        toHeight = originalImage.Height;
                    }
                }
            }
            else
            {
                if (originalImage.Width > maxWidth)
                {
                    toHeight = toWidth * originalImage.Height / originalImage.Width;
                    x = 0;
                    y = 0;
                    w = toWidth;
                    h = toHeight;

                }
                else
                {
                    x = 0;
                    y = 0;
                    w = originalImage.Width;
                    h = originalImage.Height;
                    toWidth = originalImage.Width;
                    toHeight = originalImage.Height;
                }
            }
            Bitmap bm = new Bitmap(toWidth, toHeight);
            Graphics g = Graphics.FromImage(bm);

            g.SmoothingMode = SmoothingMode.HighQuality;
            g.InterpolationMode = InterpolationMode.HighQualityBicubic;

            g.Clear(Color.White);
            g.DrawImage(originalImage, new Rectangle(x, y, w, h), 0, 0, originalImage.Width, originalImage.Height, GraphicsUnit.Pixel);

            long[] quality = new long[1];
            quality[0] = 80;

            EncoderParameters encoderParams = new EncoderParameters();
            EncoderParameter encoderParam = new EncoderParameter(Encoder.Quality, quality);
            encoderParams.Param[0] = encoderParam;
            ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();//獲得包含有關內置圖像編碼解碼器的信息的ImageCodecInfo 對象。
            ImageCodecInfo jpegICI = null;
            for (int i = 0; i < arrayICI.Length; i++)
            {
                if (arrayICI[i].FormatDescription.Equals("JPEG"))
                {
                    jpegICI = arrayICI[i];//設置JPEG編碼
                    break;
                }
            }
            if (jpegICI != null)
            {

                //bm.Save(Server.MapPath(path + "/thumb_" + filename), jpegICI, encoderParams);
                bm.Save(filePath + "/" + toFileName, jpegICI, encoderParams);
            }

            bm.Dispose();
            originalImage.Dispose();
            g.Dispose();
        }

        /// <summary>
        /// 保持比例圖像縮放簡易算法
        /// </summary>
        /// <param name="spcWidth"></param>
        /// <param name="spcHeight"></param>
        /// <param name="orgWidth"></param>
        /// <param name="orgHeight"></param>
        /// <returns></returns>
        public static Dictionary<string, int> AdjustSize(int spcWidth, int spcHeight, int orgWidth, int orgHeight)
        {
            Dictionary<string, int> size = new Dictionary<string, int>();
            // 原始寬高在指定寬高范圍內,不作任何處理 
            if (orgWidth <= spcWidth && orgHeight <= spcHeight)
            {
                size["Width"] = orgWidth;
                size["Height"] = orgHeight;
            }
            else
            {
                // 取得比例系數 
                float w = orgWidth / (float)spcWidth;
                float h = orgHeight / (float)spcHeight;
                // 寬度比大于高度比 
                if (w > h)
                {
                    size["Width"] = spcWidth;
                    size["Height"] = (int)(w >= 1 ? Math.Round(orgHeight / w) : Math.Round(orgHeight * w));
                }
                // 寬度比小于高度比 
                else if (w < h)
                {
                    size["Height"] = spcHeight;
                    size["Width"] = (int)(h >= 1 ? Math.Round(orgWidth / h) : Math.Round(orgWidth * h));
                }
                // 寬度比等于高度比 
                else
                {
                    size["Width"] = spcWidth;
                    size["Height"] = spcHeight;
                }
            }
            return size;
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品日韩丝袜精品| 日韩亚洲欧美中文在线| 亚洲人成在线免费观看| 亚洲精品自拍视频| 欧美一区二区色| 久久激情五月丁香伊人| 91日本在线观看| 国产成人精品国内自产拍免费看| 国产日韩欧美夫妻视频在线观看| 欧美一级片在线播放| 国产精品日韩精品| 日韩美女在线观看| 日韩精品一区二区三区第95| 7m第一福利500精品视频| 亚洲人成免费电影| 日韩男女性生活视频| 欧美国产日韩免费| 国产精品爱久久久久久久| 尤物yw午夜国产精品视频| 久久久国产精彩视频美女艺术照福利| 日韩精品免费一线在线观看| 在线亚洲欧美视频| 欧美亚洲一级片| 国产日产欧美精品| 久久色精品视频| 91sa在线看| 成人写真视频福利网| 性欧美激情精品| 性色av香蕉一区二区| 视频在线观看一区二区| 欧美一区二区.| 国外成人在线直播| 在线免费观看羞羞视频一区二区| 一本大道亚洲视频| 色系列之999| 欧美视频在线免费| 在线电影欧美日韩一区二区私密| 久久国产精品久久久久久| 国产精品三级在线| 日韩电影视频免费| 久久久久久有精品国产| 国产精品中文久久久久久久| 国产精品久久网| 亚洲欧美一区二区三区久久| 国产亚洲精品久久久优势| 91视频国产高清| 国产精品久久久久77777| 国产综合久久久久| 久久福利视频网| 91精品在线一区| 日韩高清av在线| 欧美日韩第一页| 国产精品第二页| 国产精品高潮呻吟久久av无限| 日韩精品极品在线观看| 欧美电影在线免费观看网站| 国产精品自产拍高潮在线观看| 午夜精品久久久久久久99热浪潮| 欧美极品少妇xxxxx| 国产美女精品视频| 亚洲综合最新在线| 日韩av电影手机在线观看| 777国产偷窥盗摄精品视频| 久久91亚洲人成电影网站| 亚洲精品国偷自产在线99热| 九色精品美女在线| 久久综合伊人77777蜜臀| 欧美日产国产成人免费图片| 亚洲网站在线看| 亚洲在线免费看| 黄色一区二区三区| 精品呦交小u女在线| 国产精品久久一区主播| 人人爽久久涩噜噜噜网站| www高清在线视频日韩欧美| 亚洲国内高清视频| 自拍亚洲一区欧美另类| 国产一区二区三区直播精品电影| 九九热最新视频//这里只有精品| 亚洲欧洲视频在线| 日韩在线观看电影| 精品久久久久久久久久久久久久| 国产日韩亚洲欧美| 国产精品扒开腿做| 久久久精品2019中文字幕神马| 亚洲精品第一国产综合精品| 性欧美长视频免费观看不卡| 国外成人在线播放| 影音先锋日韩有码| 久久综合久中文字幕青草| 欧美日韩激情视频8区| 亚洲缚视频在线观看| 欧美国产精品人人做人人爱| 亚洲精品国产欧美| 亚洲欧美中文日韩v在线观看| 久久人人爽人人爽人人片av高请| 亚洲精品欧美日韩| 久久久久久久久91| 精品国产91久久久久久| 国产香蕉一区二区三区在线视频| 国产成人拍精品视频午夜网站| 精品国产一区二区三区久久狼黑人| 国产成人综合一区二区三区| 国产精品爱啪在线线免费观看| 91免费高清视频| 国产高清视频一区三区| 亚洲free性xxxx护士hd| 国产人妖伪娘一区91| 欧美成人精品在线播放| 亚洲国产欧美精品| 欧美激情一二三| 久久国产精品免费视频| 日韩欧美国产高清91| 欧美xxxx综合视频| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲性日韩精品一区二区| 国产aⅴ夜夜欢一区二区三区| 精品久久久久久国产91| 国产一区二区三区三区在线观看| 亚洲精品在线91| 91精品国产自产在线老师啪| 欧美高清视频在线播放| 美女av一区二区| 欧美日韩亚洲天堂| 久久手机免费视频| 国产午夜精品一区理论片飘花| 在线亚洲国产精品网| 欧美裸体xxxx| 久久久久久免费精品| 亚洲最大成人在线| 日韩精品电影网| 色无极亚洲影院| 久久成人综合视频| 日韩免费高清在线观看| 亚洲aa中文字幕| 国产在线999| 欧美大片在线看| 欧美老少配视频| 亚洲欧美另类在线观看| 久久久99免费视频| 国产精品一区二区三区毛片淫片| 欧美大片大片在线播放| 亚洲人成啪啪网站| 一级做a爰片久久毛片美女图片| 亚洲一区999| 日韩精品免费看| 亚洲精品美女在线观看播放| 97在线观看视频| 国产精品久久久久秋霞鲁丝| 国产日韩欧美日韩| 亚洲精品v欧美精品v日韩精品| 欧美视频不卡中文| 久久久久久久一| 91中文精品字幕在线视频| 中文字幕国产精品| 最近中文字幕mv在线一区二区三区四区| 91精品在线一区| 国产精品va在线播放我和闺蜜| 亚洲欧美激情另类校园| 精品国产31久久久久久| 亚洲91精品在线观看| 丝袜一区二区三区| 亚洲综合色av| 欧美成人合集magnet|