.net 缩略图 高品质

C#生成缩略图

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/archive/2009/02/23/2231688.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值