• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Shuffy

            不斷的學(xué)習(xí),不斷的思考,才能不斷的進(jìn)步.Let's do better together!
            posts - 102, comments - 43, trackbacks - 0, articles - 19

            在網(wǎng)站開發(fā)中,經(jīng)常會使用一些文本編輯控件,如CuteEditor。這些控件一般都能同時輸入文本和圖片,并進(jìn)行圖文混排。如何讀取該文本框中的圖片路徑,并生成縮略圖,是很多開發(fā)者頭疼的事情。本文根據(jù)網(wǎng)絡(luò)資料進(jìn)行整理,現(xiàn)將完整代碼呈現(xiàn)如下:
             
            1、獲取圖片地址:
             
                   /// <summary>
                    /// 通過正則表達(dá)式獲取圖片地址。
                    /// </summary>
                    /// <param name="RegExpress">正則表達(dá)式</param>
                    /// <param name="InputString">源字符串</param>
                    /// <returns></returns>
                    //RegExpress為要匹配的正則表達(dá)式,InputString為源字符串。
                    public string GetImageUrl(string RegExpress, string InputString)
                    {
                        //RegExpress為正則表達(dá)式,例如,獲取圖片URL的正則表達(dá)式為: regstring ="(?<=src=\").+?\\.(gif|jpg|bmp|png)(?=\")"
                        Regex re = new Regex(RegExpress, RegexOptions.IgnoreCase|RegexOptions.Compiled);
                       
                        Match ma = re.Match(InputString);
                        if (ma.Success)
                        {
                            return  ma.Value.Substring(1);
                        }
                        else
                        {
                            return "";
                        }
                    }
             
            2、生成縮略圖
             
                    /// <summary>
                    /// 生成縮略圖
                    /// </summary>
                    /// <param name="originalImagePath">源圖路徑(物理路徑)</param>
                    /// <param name="thumbnailPath">縮略圖路徑(物理路徑)</param>
                    /// <param name="width">縮略圖寬度</param>
                    /// <param name="height">縮略圖高度</param>
                    /// <param name="mode">生成縮略圖的方式</param>   
                    public void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
                    {
                        Image originalImage = Image.FromFile(originalImagePath);
             
                        int towidth = width;
                        int toheight = height;
             
                        int x = 0;
                        int y = 0;
                        int ow = originalImage.Width;
                        int oh = originalImage.Height;
             
                        switch (mode)
                        {
                            case "HW"://指定高寬縮放(可能變形)               
                                break;
                            case "W"://指定寬,高按比例                   
                                toheight = originalImage.Height * width / originalImage.Width;
                                break;
                            case "H"://指定高,寬按比例
                                towidth = originalImage.Width * height / originalImage.Height;
                                break;
                            case "Cut"://指定高寬裁減(不變形)               
                                if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
                                {
                                    oh = originalImage.Height;
                                    ow = originalImage.Height * towidth / toheight;
                                    y = 0;
                                    x = (originalImage.Width - ow) / 2;
                                }
                                else
                                {
                                    ow = originalImage.Width;
                                    oh = originalImage.Width * height / towidth;
                                    x = 0;
                                    y = (originalImage.Height - oh) / 2;
                                }
                                break;
                            default:
                                break;
                        }
             
                        //新建一個bmp圖片
                        Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
             
                        //新建一個畫板
                        Graphics g = System.Drawing.Graphics.FromImage(bitmap);
             
                        //設(shè)置高質(zhì)量插值法
                        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
             
                        //設(shè)置高質(zhì)量,低速度呈現(xiàn)平滑程度
                        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
             
                        //清空畫布并以透明背景色填充
                        g.Clear(Color.Transparent);
             
                        //在指定位置并且按指定大小繪制原圖片的指定部分
                        g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),
                            new Rectangle(x, y, ow, oh),
                            GraphicsUnit.Pixel);
             
                        try
                        {
                            //以jpg格式保存縮略圖
                            bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
                        }
                        //catch (System.Exception e)
                        //{
                        //    throw e;
                        //}
                        finally
                        {
                            originalImage.Dispose();
                            bitmap.Dispose();
                            g.Dispose();
                        }
                    }
             
            3、獲取縮略圖相對路徑
             
                    /// <summary>
                    /// 獲取縮略圖路徑.
                    /// </summary>
                    /// <param name="InputString">帶有圖像標(biāo)簽的文本</param>
                    /// <returns>縮略圖全路徑</returns>
                    public string GetTitleImageUrl(string InputString)
                    {
                        string RegString = "(?<=src=\").+?\\.(gif|jpg|bmp)(?=\")";
                        string ImageUrl = GetImageUrl(RegString, InputString);
                        string ImageDirectory = System.IO.Path.GetDirectoryName(ImageUrl);
                        string ImageFileName = System.IO.Path.GetFileName(ImageUrl);
                        string ReturnImageUrl = ImageDirectory + "/t" + ImageFileName;//返回的縮略圖的相對路徑
                        string InputImageUrl = System.Web.HttpContext.Current.Server.MapPath("~/"+ImageUrl);//源圖物理路徑
                        string OutputImageUrl = System.Web.HttpContext.Current.Server.MapPath("~/"+ImageDirectory+"/t"+ImageFileName);//縮略圖物理路徑
                        int width = 160;//縮略圖寬
                        int height = 190;//縮略圖高
                        string mode = "H";//縮放模式
                        MakeThumbnail(InputImageUrl, OutputImageUrl, width, height, mode);
                        return ReturnImageUrl;
                    }

             

            本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/z365days/archive/2007/04/26/1585726.aspx

            欧美粉嫩小泬久久久久久久 | 婷婷久久综合九色综合98| 久久综合狠狠综合久久| 国产精品99久久久久久人| 国产精品嫩草影院久久| 久久婷婷五月综合成人D啪| 国产午夜精品久久久久免费视| 成人亚洲欧美久久久久| 狠狠色综合网站久久久久久久高清| 久久亚洲国产欧洲精品一| 久久中文字幕人妻丝袜| 久久精品亚洲欧美日韩久久| 亚洲欧美成人综合久久久| 久久精品国产第一区二区| 粉嫩小泬无遮挡久久久久久| 中文字幕无码久久人妻| 91精品国产综合久久四虎久久无码一级| 久久av高潮av无码av喷吹| 国产综合久久久久| 久久九九精品99国产精品| 伊人久久一区二区三区无码| 香蕉久久夜色精品国产小说| 色偷偷久久一区二区三区| 久久久久亚洲AV无码专区首JN | 久久99精品久久久久久齐齐| 久久久久久久久久久久中文字幕| 2021国产精品久久精品| 久久久久久毛片免费看| 久久久久国产精品麻豆AR影院 | 无码AV中文字幕久久专区| 18禁黄久久久AAA片| 久久久久亚洲AV综合波多野结衣| 久久福利青草精品资源站免费| 无码久久精品国产亚洲Av影片 | 久久免费视频观看| 91精品国产91久久综合| 1000部精品久久久久久久久| 91精品国产91久久综合| 2020最新久久久视精品爱| 国产精品亚洲综合专区片高清久久久 | 色偷偷偷久久伊人大杳蕉|