C#實現略縮圖

來源:互聯網
上載者:User

標籤:style   blog   color   io   os   ar   for   sp   檔案   


 public class GenerateThumbnail    {        private Image imageFrom;        /// <summary>        /// 源圖的路徑(含檔案名稱及副檔名        /// </summary>        /// <param name="pathImageFrom">源圖的路徑(含檔案名稱及副檔名</param>        public GenerateThumbnail(string pathImageFrom)        {            imageFrom = Image.FromFile(pathImageFrom);        }        /// <summary>        /// 產生縮圖 靜態方法         /// </summary>        /// <param name="pathImageTo">產生的縮圖所儲存的路徑(含檔案名稱及副檔名)注意:副檔名一定要與產生的縮圖格式相對應</param>        /// <param name="Percent">比例 例如 0.8...</param>        public void GenThumbnail(string pathImageTo, double Percent)        {            GenThumbnail(pathImageTo, Convert.ToInt32(imageFrom.Width * Percent), Convert.ToInt32(imageFrom.Height * Percent));        }        /**/        /// <summary>         ///  產生縮圖 靜態方法            /// </summary>         /// <param name="pathImageTo"> 產生的縮圖所儲存的路徑(含檔案名稱及副檔名)         ///                            注意:副檔名一定要與產生的縮圖格式相對應 </param>         /// <param name="width"> 欲產生的縮圖 "畫布" 的寬度(像素值) </param>         /// <param name="height"> 欲產生的縮圖 "畫布" 的高度(像素值) </param>         public void GenThumbnail(string pathImageTo, int width, int height)        {            Bitmap bmp = new Bitmap(width, height);            Graphics g = Graphics.FromImage(bmp);            g.InterpolationMode = InterpolationMode.HighQualityBicubic;            g.SmoothingMode = SmoothingMode.HighQuality;            g.DrawImage(imageFrom, new Rectangle(0, 0, width, height), new Rectangle(0, 0, imageFrom.Width, imageFrom.Height), GraphicsUnit.Pixel);            try            {                if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))                    bmp.Save(pathImageTo, ImageFormat.Jpeg);                else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png))                    bmp.Save(pathImageTo, ImageFormat.Png);                else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif))                    bmp.Save(pathImageTo, ImageFormat.Gif);                else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Icon))                    bmp.Save(pathImageTo, ImageFormat.Icon);                else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Tiff))                    bmp.Save(pathImageTo, ImageFormat.Tiff);                else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Wmf))                    bmp.Save(pathImageTo, ImageFormat.Wmf);                else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp))                    bmp.Save(pathImageTo, ImageFormat.Bmp);                else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Emf))                    bmp.Save(pathImageTo, ImageFormat.Emf);                else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Exif))                    bmp.Save(pathImageTo, ImageFormat.Exif);                else                    throw new Exception("無此類型圖片");            }            finally            {                //顯示釋放資源                 imageFrom.Dispose();                bmp.Dispose();                g.Dispose();            }        }    }

 

C#實現略縮圖

聯繫我們

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