.net 缩略图 高品质

public static void myGetThumbnailImage(string SourceFile, string strSavePathFile, int ThumbWidth, int ThumbHeight, string BgColor) 
    { 
        System.Drawing.Image oImg = System.Drawing.Image.FromFile(SourceFile); 
        //小图 
        int intwidth, intheight; 
        if (oImg.Width > oImg.Height) 
        { 
            if (oImg.Width > ThumbWidth) 
            { 
                intwidth = ThumbWidth; 
                intheight = (oImg.Height * ThumbWidth) / oImg.Width; 
            } 
            else 
            { 
                intwidth = oImg.Width; 
                intheight = oImg.Height; 
            } 
        } 
        else 
        { 
            if (oImg.Height > ThumbHeight) 
            { 
                intwidth = (oImg.Width * ThumbHeight) / oImg.Height; 
                intheight = ThumbHeight; 
            } 
            else 
            { 
                intwidth = oImg.Width; 
                intheight = oImg.Height; 
            } 
        } 
        //构造一个指定宽高的Bitmap 
        Bitmap bitmay = new Bitmap(intwidth, intheight); 
        Graphics g = Graphics.FromImage(bitmay); 
        Color myColor; 
        if (BgColor == null) 
            myColor = Color.FromName("white"); 
        else 
            myColor = Color.FromName(BgColor); 
        //用指定的颜色填充Bitmap 
        g.Clear(myColor); 
        g.InterpolationMode = InterpolationMode.HighQualityBicubic;  
        //开始画图 
        g.DrawImage(oImg, new Rectangle(0, 0, intwidth, intheight), new Rectangle(0, 0, oImg.Width, oImg.Height), GraphicsUnit.Pixel); 
        bitmay.Save(strSavePathFile, System.Drawing.Imaging.ImageFormat.Jpeg); 
        g.Dispose(); 
        bitmay.Dispose(); 
        oImg.Dispose(); 
        //删除源图 
        try 
        { 
            File.Delete(SourceFile); 
        } 
        catch 
        { 
        } 
    } 

原文地址:https://www.cnblogs.com/yeye518/p/2231688.html