C#生成缩略图

来源:互联网 发布:乐高淘宝旗舰店 编辑:程序博客网 时间:2024/06/11 00:08
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Drawing;using System.Drawing.Imaging;namespace 生成缩略图{    class ImageClass    {        public bool ThumbnailCallback()        {            return false;        }        /// <summary>        /// 创建缩略图方法        /// </summary>        /// <param name="oldfile">原始图片路径</param>        /// <param name="newfile">生成新图片路径</param>        /// <param name="white">新图片宽</param>        /// <param name="height">新图片高</param>        /// <param name="isZoomByScale">是否按比例尺缩放</param>        public void ShowThumbnail(string oldfile, string newfile, int white, int height, bool isZoomByScale)        {            System.Drawing.Image image = System.Drawing.Image.FromFile(oldfile);            //获取原图高度和宽度            int oldh = image.Height;            int oldw = image.Width;            int neww, newh;            neww = white; newh = height;   //直接设定新图的高宽,,            if (isZoomByScale)            {                newh = (oldh / oldw) * neww;            }            try            {                System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);                System.Drawing.Image bt = new System.Drawing.Bitmap(neww, newh);                System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bt);                gr.Clear(Color.White);                gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;                gr.DrawImage(image, new Rectangle(0, 0, neww, newh), 0, 0, oldw, oldh, GraphicsUnit.Pixel);                switch (oldfile.Substring(oldfile.Length - 3).ToUpper())                {                    case "JPG":                        bt.Save(newfile, ImageFormat.Jpeg);                        break;                    case "GIF":                        bt.Save(newfile, ImageFormat.Gif);                        break;                    case "PNG":                        bt.Save(newfile, ImageFormat.Png);                        break;                    default:                        bt.Save(newfile, ImageFormat.Jpeg);                        break;                }                gr.Dispose();                bt.Dispose();                image.Dispose();            }            catch             {            }        }    }}

原创粉丝点击