前台:
<asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="Button1" runat="server" Text="上传" onclick="Button1_Click" />
后台:
using System.Drawing;
using System.IO;
/// <summary>
    /// 生成缩略图的方法
    /// </summary>
    /// <param name="Path">原始图片路径</param>
    /// <param name="StPath">生成图片存放的路径</param>
    /// <param name="width">生成图片的宽度</param>
    /// <param name="height">生成图片的高度</param>
    /// <param name="mode">生成的模式( "HW":指定高宽缩放;"W"://指定宽度,计算缩略图;"H":指定高度,计算缩略图;"CUT":)</param>
    /// <returns></returns>
    public static string MakeThumbImage(string Path, string StPath, int width, int height, string mode)
    {
        string messages = string.Empty;
        System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
        int tw = width;
        int th = height;
        //原始图片的宽度和高度
        int sw = image.Width;
        int sh = image.Height;
        int x = 0, y = 0;
        switch (mode)
        {
            case "HW"://指定高宽缩放
                break;
            case "W"://按比例缩放,指定宽度,计算缩略图的高度
                th = image.Height * width / image.Width;
                break;
            case "H"://按比例缩放,指定高度,计算缩略图的高度
                tw = image.Width * height / image.Height;
                break;
            case "CUT":
                if ((double)tw / (double)th < (double)width / (double)height)
                {
                    sw = image.Width;
                    sh = image.Width * height / tw;
                    x = 0;
                    y = (image.Height - sh) / 2;
                }
                else
                {
                    sh = image.Height;
                    sw = image.Height * width / th;
                    y = 0;
                    x = (image.Width - sw) / 2;
                }
                break;
            default: break;
        }
        System.Drawing.Image bitmap = new System.Drawing.Bitmap(tw, th);
        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
        g.Clear(System.Drawing.Color.Transparent);
        g.DrawImage(image,
            new System.Drawing.Rectangle(x, y, tw, th),
            new System.Drawing.Rectangle(x, y, sw, sh),
            System.Drawing.GraphicsUnit.Pixel);
        try
        {
            bitmap.Save(StPath, System.Drawing.Imaging.ImageFormat.Jpeg);
        }
        catch (Exception ex)
        {
            messages = ex.Message;
        }
        finally
        {
            image.Dispose();
            bitmap.Dispose();
            g.Dispose();
            if (messages == string.Empty)
            {
                messages = "成功生成!";
            }
}
        return messages;
    }
- 本文标题: 生成缩略图片 ASP.NET
- 文章分类:【.NET/Web】
- 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.